backends/drm: disable the hardware cursor with color management

Blending needs to happen in linear space, which is not the case if the
inverse EOTF and VCGT are applied before blending
wilder/Plasma/6.2
Xaver Hugl 2 years ago
parent 4582276cf8
commit 6e05314739
  1. 4
      src/backends/drm/drm_egl_cursor_layer.cpp

@ -47,6 +47,10 @@ EglGbmCursorLayer::EglGbmCursorLayer(EglGbmBackend *eglBackend, DrmPipeline *pip
std::optional<OutputLayerBeginFrameInfo> EglGbmCursorLayer::beginFrame()
{
if (m_pipeline->output()->needsColormanagement()) {
// TODO for hardware cursors to work with color management, KWin needs to offload post-blending color management steps to KMS
return std::nullopt;
}
return m_surface.startRendering(m_pipeline->gpu()->cursorSize(), drmToTextureRotation(m_pipeline) | TextureTransform::MirrorY, m_pipeline->cursorFormats(), m_pipeline->colorDescription(), m_pipeline->output()->channelFactors(), m_pipeline->output()->needsColormanagement());
}

Loading…
Cancel
Save