From 19f92d731aca686b1365db9b032f5ca961f5be26 Mon Sep 17 00:00:00 2001 From: Xaver Hugl Date: Tue, 8 Jun 2021 16:07:57 +0200 Subject: [PATCH] platforms/drm: fix modifiers detection CCBUG: 437893 --- src/plugins/platforms/drm/drm_gpu.cpp | 2 +- src/plugins/platforms/drm/egl_gbm_backend.cpp | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/plugins/platforms/drm/drm_gpu.cpp b/src/plugins/platforms/drm/drm_gpu.cpp index 4e153ea04c..03a5cab28f 100644 --- a/src/plugins/platforms/drm/drm_gpu.cpp +++ b/src/plugins/platforms/drm/drm_gpu.cpp @@ -66,7 +66,7 @@ DrmGpu::DrmGpu(DrmBackend *backend, const QString &devNode, int fd, dev_t device } if (!qEnvironmentVariableIsSet("KWIN_DRM_NO_MODIFIERS")) { - m_addFB2ModifiersSupported = drmGetCap(fd, DRM_CAP_ADDFB2_MODIFIERS, &capability) && capability == 1; + m_addFB2ModifiersSupported = drmGetCap(fd, DRM_CAP_ADDFB2_MODIFIERS, &capability) == 0 && capability == 1; qCDebug(KWIN_DRM) << "drmModeAddFB2WithModifiers is" << (m_addFB2ModifiersSupported ? "supported" : "not supported"); } diff --git a/src/plugins/platforms/drm/egl_gbm_backend.cpp b/src/plugins/platforms/drm/egl_gbm_backend.cpp index 8948a33a21..233093ed6a 100644 --- a/src/plugins/platforms/drm/egl_gbm_backend.cpp +++ b/src/plugins/platforms/drm/egl_gbm_backend.cpp @@ -783,6 +783,9 @@ bool EglGbmBackend::scanout(int screenId, SurfaceItem *surfaceItem) if (dmabuf->planes()[0].modifier != DRM_FORMAT_MOD_INVALID || dmabuf->planes()[0].offset > 0 || dmabuf->planes().size() > 1) { + if (!m_gpu->addFB2ModifiersSupported()) { + return false; + } gbm_import_fd_modifier_data data = {}; data.format = dmabuf->format(); data.width = (uint32_t) dmabuf->size().width();