When we merged the drm_plane color pipeline API the major gap that existed was the lack of a YUV to RGB conversion colorop. We deprecated any legacy drm_plane color properties, which means that the COLOR_RANGE and COLOR_ENCODING properties can't be used with the COLOR_PIPELINE property on a drm_plane. In practice this means that we can't use a COLOR_PIPELINE on YCbCr encoded framebuffers.
This patchset expands on the CSC_FF colorop proposed by Chaitanya and adds limited range variants of the YCbCr to RGB conversions. His full patchset can be found at https://patchwork.freedesktop.org/patch/709860 This code has been tested with IGT and an experimental KWin branch. IGT branch: https://gitlab.freedesktop.org/hwentland/igt-gpu-tools/-/tree/csc-ff-colorop KWin branch: https://invent.kde.org/hwentlan/kwin/-/tree/csc-3dlut The kernel branch containing these changes, based on drm-misc-next can be found at: https://gitlab.freedesktop.org/hwentland/linux/-/tree/csc-ff-colorop In order to successfully use this branch you might need a few bugfixes. The kernel tree containing those fixes plus these patches can be found at: https://gitlab.freedesktop.org/hwentland/linux/-/tree/csc-ff-colorop-all Further background on this work can be found at: https://hwentland.github.io/2026/03/10/plane-color-pipeline-csc-3d-lut-kwin.html v2: - use Chaitanya's CSC_FF block for named matrices Cc: Alex Hung <[email protected]> Cc: Daniel Stone <[email protected]> Cc: Chaitanya Kumar Borah <[email protected]> Cc: Uma Shankar <[email protected]> Cc: Louis Chauvet <[email protected]> Cc: Melissa Wen <[email protected]> Cc: Simon Ser <[email protected]> Chaitanya Kumar Borah (1): drm/colorop: Add DRM_COLOROP_CSC_FF Harry Wentland (8): drm/colorop: Add limited-range YUV-to-RGB CSC FF enum values drm/vkms: Add CSC FF colorop to color pipeline drm/vkms: Add atomic check and matrix handling for CSC FF colorop drm/amd/display: Add CSC FF colorop to color pipeline drm/amd/display: Implement CSC FF colorop color space mapping drm/amd/display: Use GAMCOR for first TF if CSC is used drm/amd/display: Check actual state during commit_tail drm/amd/display: Set color_space to plane_infos .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 14 ++- .../amd/display/amdgpu_dm/amdgpu_dm_color.c | 102 ++++++++++++++++- .../amd/display/amdgpu_dm/amdgpu_dm_colorop.c | 27 ++++- .../amd/display/amdgpu_dm/amdgpu_dm_colorop.h | 1 + drivers/gpu/drm/drm_atomic.c | 4 + drivers/gpu/drm/drm_atomic_uapi.c | 4 + drivers/gpu/drm/drm_colorop.c | 108 ++++++++++++++++++ drivers/gpu/drm/vkms/vkms_colorop.c | 66 +++++++---- drivers/gpu/drm/vkms/vkms_composer.c | 6 + drivers/gpu/drm/vkms/vkms_plane.c | 70 +++++++++++- include/drm/drm_colorop.h | 102 +++++++++++++++++ include/uapi/drm/drm_mode.h | 13 +++ 12 files changed, 487 insertions(+), 30 deletions(-) -- 2.53.0
