| From: |
| Chaitanya Kumar Borah <chaitanya.kumar.borah-AT-intel.com> |
| To: |
| dri-devel-AT-lists.freedesktop.org, intel-gfx-AT-lists.freedesktop.org, intel-xe-AT-lists.freedesktop.org |
| Subject: |
| [v3 00/14] drm/i915/color: Enable SDR plane color pipeline |
| Date: |
| Wed, 17 Jun 2026 14:38:05 +0530 |
| Message-ID: |
| <20260617090819.1735153-1-chaitanya.kumar.borah@intel.com> |
| Cc: |
| Chaitanya Kumar Borah <chaitanya.kumar.borah-AT-intel.com>, Harry Wentland <harry.wentland-AT-amd.com>, Louis Chauvet <louis.chauvet-AT-bootlin.com>, Melissa Wen <mwen-AT-igalia.com>, Simon Ser <contact-AT-emersion.fr>, Alex Hung <alex.hung-AT-amd.com>, Daniel Stone <daniels-AT-collabora.com>, Uma Shankar <uma.shankar-AT-intel.com>, Maarten Lankhorst <maarten.lankhorst-AT-intel.com>, Pekka Paalanen <pekka.paalanen-AT-collabora.com>, Pranay Samala <pranay.samala-AT-intel.com>, Swati Sharma <swati2.sharma-AT-intel.com>, Naveen Kumar <naveen1.kumar-AT-intel.com> |
| Archive-link: |
| Article |
This series adds color pipeline support for SDR planes in i915 and
exposes the functionality to userspace through the DRM colorop
framework.
In contrast to HDR planes, SDR planes have LUTs with smaller sizes
and a fixed function CSC block in contrast to a programmable CTM.
The series first introduces a new DRM colorop type,
DRM_COLOROP_FIXED_MATRIX, which represents fixed-function CSC blocks where
userspace selects predefined hardware conversion modes instead of
programming arbitrary matrices. It also adds the YUV correction HW block.
With this the color pipeline can accept both limited range and full range
YUV framebuffers.
With that, the SDR plane color pipeline looks like.
[YUV Range Correct] -> [1D LUT] -> [CSC] -> [1D LUT]
v2:
- Naming changes [Pekka]
- Adds YUV color range correct block
v3:
- Fix NC matrix enum name and string [Melissa]
- Extract and simplify glk_plane_color_ctl_input_csc into
helpers (new prep patches)
- Restructure SDR pre/post-CSC LUT loops to match HDR function
pattern
- Drop HDR pre-CSC LUT clamping fix (submitted separately)
- Rebase
IGT series (needs update): https://patchwork.freedesktop.org/series/165021/
A rough updated IGT implementation with some additional test can be found here.
https://github.com/ckborah/igt-sandbox/tree/color/sdr-sw-ref
Cc: Harry Wentland <harry.wentland@amd.com>
Cc: Louis Chauvet <louis.chauvet@bootlin.com>
Cc: Melissa Wen <mwen@igalia.com>
Cc: Simon Ser <contact@emersion.fr>
Cc: Alex Hung <alex.hung@amd.com>
Cc: Daniel Stone <daniels@collabora.com>
Cc: Uma Shankar <uma.shankar@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@intel.com>
Cc: Pekka Paalanen <pekka.paalanen@collabora.com>
Cc: Pranay Samala <pranay.samala@intel.com>
Cc: Swati Sharma <swati2.sharma@intel.com>
Cc: Naveen Kumar <naveen1.kumar@intel.com>
Chaitanya Kumar Borah (10):
drm/colorop: Add DRM_COLOROP_FIXED_MATRIX
drm/i915/color: Add CSC on SDR plane color pipeline
drm/i915/display: extract glk_plane_color_ctl_input_csc helper
drm/i915/display: simplify glk_plane_color_ctl_input_csc
drm/i915/display: Track CSC mode in intel plane state
drm/i915/display: Program input CSC on SDR planes
drm/i915/color: Add YCbCr limited-to-full range color block support
drm/i915/color: Add YUV range correction to SDR plane pipeline
drm/i915/color: Add support for 1D LUT in SDR planes
drm/i915/color: Add color pipeline support for SDR planes
Pranay Samala (4):
drm/i915/color: Extract HDR pre-CSC LUT programming to helper function
drm/i915/color: Program Pre-CSC registers for SDR
drm/i915/color: Extract HDR post-CSC LUT programming to helper
function
drm/i915/color: Program Plane Post CSC registers for SDR planes
drivers/gpu/drm/drm_atomic.c | 4 +
drivers/gpu/drm/drm_atomic_uapi.c | 7 +
drivers/gpu/drm/drm_colorop.c | 106 +++++++++++++
drivers/gpu/drm/i915/display/intel_color.c | 140 +++++++++++++++---
.../drm/i915/display/intel_color_pipeline.c | 43 +++++-
.../drm/i915/display/intel_display_limits.h | 2 +
.../drm/i915/display/intel_display_types.h | 3 +
drivers/gpu/drm/i915/display/intel_plane.c | 15 +-
.../drm/i915/display/skl_universal_plane.c | 84 ++++++++---
include/drm/drm_colorop.h | 84 +++++++++++
include/uapi/drm/drm_mode.h | 12 ++
11 files changed, 447 insertions(+), 53 deletions(-)
--
2.25.1