一、问题背景
在学习研究libdrm和DRM的时候,为了了解和研究KWin中Compositor::composite核心中的图像帧绘制机制,在最终调用到的DrmFramebuffer::createFramebuffer函数中加入了以下代码:
std::shared_ptr<DrmFramebuffer> DrmFramebuffer::createFramebuffer1(const std::shared_ptr<DrmGpuBuffer> &buffer, const std::shared_ptr<DbmBuffer> &gbmbuffer)
{
const auto size = buffer->size();
const auto handles = buffer->handles();
const auto strides = buffer->strides();
const auto offsets = buffer->offsets();
struct gbm_bo *bobo = gbmbuffer->bo(); //phph1
uint32_t framebufferId = 0;
int ret;
if (buffer->gpu()->addFB2ModifiersSupported() && buffer->modifier() != DRM_FORMAT_MOD_INVALID) {
//qCCritical(KWIN_DRM, "daozhelile