diff --git a/src/backends/drm/drm_plane.cpp b/src/backends/drm/drm_plane.cpp index 99da63b40c..4e211a8562 100644 --- a/src/backends/drm/drm_plane.cpp +++ b/src/backends/drm/drm_plane.cpp @@ -95,7 +95,8 @@ bool DrmPlane::updateProperties() m_supportedFormats[iterator.fmt].push_back(iterator.mod); } } else { - const QVector modifiers = {DRM_FORMAT_MOD_INVALID}; + // if we don't have modifier support, assume the cursor needs a linear buffer + const QVector modifiers = {type.enumValue() == TypeIndex::Cursor ? DRM_FORMAT_MOD_LINEAR : DRM_FORMAT_MOD_INVALID}; for (uint32_t i = 0; i < p->count_formats; i++) { m_supportedFormats.insert(p->formats[i], modifiers); }