dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 1/2] drm/i915/color: Fix step discontinuity in Post-CSC Gamma LUT
@ 2026-05-28 23:07 Sean Paul
  2026-05-28 23:07 ` [PATCH v3 2/2] drm/i915/color: Fix step discontinuity in Pre-CSC " Sean Paul
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Sean Paul @ 2026-05-28 23:07 UTC (permalink / raw)
  To: intel-gfx, jani.nikula, chaitanya.kumar.borah
  Cc: Sean Paul, Rodrigo Vivi, Joonas Lahtinen, Tvrtko Ursulin,
	David Airlie, Simona Vetter, intel-xe, dri-devel

From: Sean Paul <seanpaul@google.com>

Fix a step discontinuity in the Post-CSC Gamma LUT when SDR dimming
is active by clamping Segment 2 to the last user-provided LUT entry
value instead of hardcoding it to 1.0 (1 << 24).

Signed-off-by: Sean Paul <seanpaul@google.com>
Link: https://lore.kernel.org/intel-gfx/20260521180143.2143262-1-sean@poorly.run/ #v1
Link: https://lore.kernel.org/intel-gfx/20260525135730.1122696-1-sean@poorly.run/ #v2

Changes in v2:
- Split out into separate patches for pre/post csc fixes
- Dropped loop bounds fix in favor of [1]
Changes in v3:
- None

[1]- https://lore.kernel.org/r/20260519075245.383864-1-pranay.samala@intel.com
---
 drivers/gpu/drm/i915/display/intel_color.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_color.c b/drivers/gpu/drm/i915/display/intel_color.c
index 7ef870cd9a16..7185f3628dcf 100644
--- a/drivers/gpu/drm/i915/display/intel_color.c
+++ b/drivers/gpu/drm/i915/display/intel_color.c
@@ -4038,11 +4038,11 @@ xelpd_program_plane_post_csc_lut(struct intel_dsb *dsb,
 						   lut_val);
 			}
 
-			/* Segment 2 */
+			/* Segment 2 - clamp to the last LUT value to prevent step discontinuity */
 			do {
 				intel_de_write_dsb(display, dsb,
 						   PLANE_POST_CSC_GAMC_DATA_ENH(pipe, plane, 0),
-						   (1 << 24));
+						   lut_val);
 			} while (i++ < 34);
 		} else {
 			/*TODO: Add for segment 0 */
-- 
Sean Paul, Software Engineer, Google / Chromium OS


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v3 2/2] drm/i915/color: Fix step discontinuity in Pre-CSC Gamma LUT
  2026-05-28 23:07 [PATCH v3 1/2] drm/i915/color: Fix step discontinuity in Post-CSC Gamma LUT Sean Paul
@ 2026-05-28 23:07 ` Sean Paul
  2026-05-31 18:41   ` Shankar, Uma
  2026-06-01  6:04   ` Borah, Chaitanya Kumar
  2026-05-31 18:39 ` [PATCH v3 1/2] drm/i915/color: Fix step discontinuity in Post-CSC " Shankar, Uma
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 7+ messages in thread
From: Sean Paul @ 2026-05-28 23:07 UTC (permalink / raw)
  To: intel-gfx, jani.nikula, chaitanya.kumar.borah
  Cc: Sean Paul, Rodrigo Vivi, Joonas Lahtinen, Tvrtko Ursulin,
	David Airlie, Simona Vetter, intel-xe, dri-devel

From: Sean Paul <seanpaul@google.com>

Clamp Segment 2 to the last user-provided LUT entry value instead of
hardcoding it to 1.0 (1 << 24) to fix a step discontinuity.

Signed-off-by: Sean Paul <seanpaul@google.com>
Link: https://lore.kernel.org/intel-gfx/20260521180143.2143262-1-sean@poorly.run/ #v1
Link: https://lore.kernel.org/intel-gfx/20260525135730.1122696-2-sean@poorly.run/ #v2

Changes in v2:
- Split out into separate patches for pre/post csc fixes
- Dropped loop bounds fix in favor of [1]
Changes in v3:
- Fix stale commit message

[1]- https://lore.kernel.org/r/20260519075245.383864-1-pranay.samala@intel.com
---
 drivers/gpu/drm/i915/display/intel_color.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_color.c b/drivers/gpu/drm/i915/display/intel_color.c
index 7185f3628dcf..458508bcf1f4 100644
--- a/drivers/gpu/drm/i915/display/intel_color.c
+++ b/drivers/gpu/drm/i915/display/intel_color.c
@@ -3968,6 +3968,7 @@ xelpd_program_plane_pre_csc_lut(struct intel_dsb *dsb,
 	enum plane_id plane = to_intel_plane(state->plane)->id;
 	const struct drm_color_lut32 *pre_csc_lut = plane_state->hw.degamma_lut->data;
 	u32 i, lut_size;
+	u32 lut_val = 1 << 24;
 
 	if (icl_is_hdr_plane(display, plane)) {
 		lut_size = 128;
@@ -3978,7 +3979,7 @@ xelpd_program_plane_pre_csc_lut(struct intel_dsb *dsb,
 
 		if (pre_csc_lut) {
 			for (i = 0; i < lut_size; i++) {
-				u32 lut_val = drm_color_lut32_extract(pre_csc_lut[i].green, 24);
+				lut_val = drm_color_lut32_extract(pre_csc_lut[i].green, 24);
 
 				intel_de_write_dsb(display, dsb,
 						   PLANE_PRE_CSC_GAMC_DATA_ENH(pipe, plane, 0),
@@ -3990,7 +3991,7 @@ xelpd_program_plane_pre_csc_lut(struct intel_dsb *dsb,
 			do {
 				intel_de_write_dsb(display, dsb,
 						   PLANE_PRE_CSC_GAMC_DATA_ENH(pipe, plane, 0),
-						   (1 << 24));
+						   lut_val);
 			} while (i++ < 130);
 		} else {
 			for (i = 0; i < lut_size; i++) {
-- 
Sean Paul, Software Engineer, Google / Chromium OS


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* RE: [PATCH v3 1/2] drm/i915/color: Fix step discontinuity in Post-CSC Gamma LUT
  2026-05-28 23:07 [PATCH v3 1/2] drm/i915/color: Fix step discontinuity in Post-CSC Gamma LUT Sean Paul
  2026-05-28 23:07 ` [PATCH v3 2/2] drm/i915/color: Fix step discontinuity in Pre-CSC " Sean Paul
@ 2026-05-31 18:39 ` Shankar, Uma
  2026-06-01  6:21 ` Borah, Chaitanya Kumar
  2026-06-02 16:27 ` Shankar, Uma
  3 siblings, 0 replies; 7+ messages in thread
From: Shankar, Uma @ 2026-05-31 18:39 UTC (permalink / raw)
  To: Sean Paul, intel-gfx@lists.freedesktop.org,
	jani.nikula@linux.intel.com, Borah, Chaitanya Kumar
  Cc: Sean Paul, Vivi, Rodrigo, Joonas Lahtinen, Tvrtko Ursulin,
	David Airlie, Simona Vetter, intel-xe@lists.freedesktop.org,
	dri-devel@lists.freedesktop.org



> -----Original Message-----
> From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Sean Paul
> Sent: Friday, May 29, 2026 4:38 AM
> To: intel-gfx@lists.freedesktop.org; jani.nikula@linux.intel.com; Borah, Chaitanya
> Kumar <chaitanya.kumar.borah@intel.com>
> Cc: Sean Paul <seanpaul@google.com>; Vivi, Rodrigo <rodrigo.vivi@intel.com>;
> Joonas Lahtinen <joonas.lahtinen@linux.intel.com>; Tvrtko Ursulin
> <tursulin@ursulin.net>; David Airlie <airlied@gmail.com>; Simona Vetter
> <simona@ffwll.ch>; intel-xe@lists.freedesktop.org; dri-
> devel@lists.freedesktop.org
> Subject: [PATCH v3 1/2] drm/i915/color: Fix step discontinuity in Post-CSC
> Gamma LUT
> 
> From: Sean Paul <seanpaul@google.com>
> 
> Fix a step discontinuity in the Post-CSC Gamma LUT when SDR dimming is
> active by clamping Segment 2 to the last user-provided LUT entry value instead of
> hardcoding it to 1.0 (1 << 24).
> 

Hi Sean,
Yeah it was done as UAPI was limited to 0.16 format and hence 1.0 value was
Not possible through UAPI. Expectation was that userspace will send LUTs in range
Of 0 to 1.0 but agree it can limit the end point, so we can go with the whatever highest
value userspace provides. We are planning a new LUT type to represent segmented LUTS,
We can make this better including precision reporting and LUT caps. 
But till then, ok to go with your change.

Reviewed-by: Uma Shankar <uma.shankar@intel.com>

> Signed-off-by: Sean Paul <seanpaul@google.com>
> Link: https://lore.kernel.org/intel-gfx/20260521180143.2143262-1-
> sean@poorly.run/ #v1
> Link: https://lore.kernel.org/intel-gfx/20260525135730.1122696-1-
> sean@poorly.run/ #v2
> 
> Changes in v2:
> - Split out into separate patches for pre/post csc fixes
> - Dropped loop bounds fix in favor of [1] Changes in v3:
> - None
> 
> [1]- https://lore.kernel.org/r/20260519075245.383864-1-pranay.samala@intel.com
> ---
>  drivers/gpu/drm/i915/display/intel_color.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_color.c
> b/drivers/gpu/drm/i915/display/intel_color.c
> index 7ef870cd9a16..7185f3628dcf 100644
> --- a/drivers/gpu/drm/i915/display/intel_color.c
> +++ b/drivers/gpu/drm/i915/display/intel_color.c
> @@ -4038,11 +4038,11 @@ xelpd_program_plane_post_csc_lut(struct intel_dsb
> *dsb,
>  						   lut_val);
>  			}
> 
> -			/* Segment 2 */
> +			/* Segment 2 - clamp to the last LUT value to prevent step
> +discontinuity */
>  			do {
>  				intel_de_write_dsb(display, dsb,
> 
> PLANE_POST_CSC_GAMC_DATA_ENH(pipe, plane, 0),
> -						   (1 << 24));
> +						   lut_val);
>  			} while (i++ < 34);
>  		} else {
>  			/*TODO: Add for segment 0 */
> --
> Sean Paul, Software Engineer, Google / Chromium OS


^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [PATCH v3 2/2] drm/i915/color: Fix step discontinuity in Pre-CSC Gamma LUT
  2026-05-28 23:07 ` [PATCH v3 2/2] drm/i915/color: Fix step discontinuity in Pre-CSC " Sean Paul
@ 2026-05-31 18:41   ` Shankar, Uma
  2026-06-01  6:04   ` Borah, Chaitanya Kumar
  1 sibling, 0 replies; 7+ messages in thread
From: Shankar, Uma @ 2026-05-31 18:41 UTC (permalink / raw)
  To: Sean Paul, intel-gfx@lists.freedesktop.org,
	jani.nikula@linux.intel.com, Borah, Chaitanya Kumar
  Cc: Sean Paul, Vivi, Rodrigo, Joonas Lahtinen, Tvrtko Ursulin,
	David Airlie, Simona Vetter, intel-xe@lists.freedesktop.org,
	dri-devel@lists.freedesktop.org



> -----Original Message-----
> From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Sean Paul
> Sent: Friday, May 29, 2026 4:38 AM
> To: intel-gfx@lists.freedesktop.org; jani.nikula@linux.intel.com; Borah, Chaitanya
> Kumar <chaitanya.kumar.borah@intel.com>
> Cc: Sean Paul <seanpaul@google.com>; Vivi, Rodrigo <rodrigo.vivi@intel.com>;
> Joonas Lahtinen <joonas.lahtinen@linux.intel.com>; Tvrtko Ursulin
> <tursulin@ursulin.net>; David Airlie <airlied@gmail.com>; Simona Vetter
> <simona@ffwll.ch>; intel-xe@lists.freedesktop.org; dri-
> devel@lists.freedesktop.org
> Subject: [PATCH v3 2/2] drm/i915/color: Fix step discontinuity in Pre-CSC
> Gamma LUT
> 
> From: Sean Paul <seanpaul@google.com>
> 
> Clamp Segment 2 to the last user-provided LUT entry value instead of hardcoding
> it to 1.0 (1 << 24) to fix a step discontinuity.

Looks Good to me.
Reviewed-by: Uma Shankar <uma.shankar@intel.com.

> Signed-off-by: Sean Paul <seanpaul@google.com>
> Link: https://lore.kernel.org/intel-gfx/20260521180143.2143262-1-
> sean@poorly.run/ #v1
> Link: https://lore.kernel.org/intel-gfx/20260525135730.1122696-2-
> sean@poorly.run/ #v2
> 
> Changes in v2:
> - Split out into separate patches for pre/post csc fixes
> - Dropped loop bounds fix in favor of [1] Changes in v3:
> - Fix stale commit message
> 
> [1]- https://lore.kernel.org/r/20260519075245.383864-1-pranay.samala@intel.com
> ---
>  drivers/gpu/drm/i915/display/intel_color.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_color.c
> b/drivers/gpu/drm/i915/display/intel_color.c
> index 7185f3628dcf..458508bcf1f4 100644
> --- a/drivers/gpu/drm/i915/display/intel_color.c
> +++ b/drivers/gpu/drm/i915/display/intel_color.c
> @@ -3968,6 +3968,7 @@ xelpd_program_plane_pre_csc_lut(struct intel_dsb
> *dsb,
>  	enum plane_id plane = to_intel_plane(state->plane)->id;
>  	const struct drm_color_lut32 *pre_csc_lut = plane_state-
> >hw.degamma_lut->data;
>  	u32 i, lut_size;
> +	u32 lut_val = 1 << 24;
> 
>  	if (icl_is_hdr_plane(display, plane)) {
>  		lut_size = 128;
> @@ -3978,7 +3979,7 @@ xelpd_program_plane_pre_csc_lut(struct intel_dsb
> *dsb,
> 
>  		if (pre_csc_lut) {
>  			for (i = 0; i < lut_size; i++) {
> -				u32 lut_val =
> drm_color_lut32_extract(pre_csc_lut[i].green, 24);
> +				lut_val =
> drm_color_lut32_extract(pre_csc_lut[i].green, 24);
> 
>  				intel_de_write_dsb(display, dsb,
> 
> PLANE_PRE_CSC_GAMC_DATA_ENH(pipe, plane, 0), @@ -3990,7 +3991,7
> @@ xelpd_program_plane_pre_csc_lut(struct intel_dsb *dsb,
>  			do {
>  				intel_de_write_dsb(display, dsb,
> 
> PLANE_PRE_CSC_GAMC_DATA_ENH(pipe, plane, 0),
> -						   (1 << 24));
> +						   lut_val);
>  			} while (i++ < 130);
>  		} else {
>  			for (i = 0; i < lut_size; i++) {
> --
> Sean Paul, Software Engineer, Google / Chromium OS


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 2/2] drm/i915/color: Fix step discontinuity in Pre-CSC Gamma LUT
  2026-05-28 23:07 ` [PATCH v3 2/2] drm/i915/color: Fix step discontinuity in Pre-CSC " Sean Paul
  2026-05-31 18:41   ` Shankar, Uma
@ 2026-06-01  6:04   ` Borah, Chaitanya Kumar
  1 sibling, 0 replies; 7+ messages in thread
From: Borah, Chaitanya Kumar @ 2026-06-01  6:04 UTC (permalink / raw)
  To: Sean Paul, intel-gfx, jani.nikula
  Cc: Sean Paul, Rodrigo Vivi, Joonas Lahtinen, Tvrtko Ursulin,
	David Airlie, Simona Vetter, intel-xe, dri-devel



On 5/29/2026 4:37 AM, Sean Paul wrote:
> From: Sean Paul <seanpaul@google.com>
> 
> Clamp Segment 2 to the last user-provided LUT entry value instead of
> hardcoding it to 1.0 (1 << 24) to fix a step discontinuity.
> 

It defintely make sense to me that the point corresponding to 1.0 should 
be programmed to the max lut value that user-space provide. I am not 
quite sure what should be the case for 3.0 and 7.0, however, I presume 
it should be harmless for now. So as of now LGTM.

Reviewed-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>

> Signed-off-by: Sean Paul <seanpaul@google.com>
> Link: https://lore.kernel.org/intel-gfx/20260521180143.2143262-1-sean@poorly.run/ #v1
> Link: https://lore.kernel.org/intel-gfx/20260525135730.1122696-2-sean@poorly.run/ #v2
> 
> Changes in v2:
> - Split out into separate patches for pre/post csc fixes
> - Dropped loop bounds fix in favor of [1]
> Changes in v3:
> - Fix stale commit message
> 
> [1]- https://lore.kernel.org/r/20260519075245.383864-1-pranay.samala@intel.com
> ---
>   drivers/gpu/drm/i915/display/intel_color.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_color.c b/drivers/gpu/drm/i915/display/intel_color.c
> index 7185f3628dcf..458508bcf1f4 100644
> --- a/drivers/gpu/drm/i915/display/intel_color.c
> +++ b/drivers/gpu/drm/i915/display/intel_color.c
> @@ -3968,6 +3968,7 @@ xelpd_program_plane_pre_csc_lut(struct intel_dsb *dsb,
>   	enum plane_id plane = to_intel_plane(state->plane)->id;
>   	const struct drm_color_lut32 *pre_csc_lut = plane_state->hw.degamma_lut->data;
>   	u32 i, lut_size;
> +	u32 lut_val = 1 << 24;
>   
>   	if (icl_is_hdr_plane(display, plane)) {
>   		lut_size = 128;
> @@ -3978,7 +3979,7 @@ xelpd_program_plane_pre_csc_lut(struct intel_dsb *dsb,
>   
>   		if (pre_csc_lut) {
>   			for (i = 0; i < lut_size; i++) {
> -				u32 lut_val = drm_color_lut32_extract(pre_csc_lut[i].green, 24);
> +				lut_val = drm_color_lut32_extract(pre_csc_lut[i].green, 24);
>   
>   				intel_de_write_dsb(display, dsb,
>   						   PLANE_PRE_CSC_GAMC_DATA_ENH(pipe, plane, 0),
> @@ -3990,7 +3991,7 @@ xelpd_program_plane_pre_csc_lut(struct intel_dsb *dsb,
>   			do {
>   				intel_de_write_dsb(display, dsb,
>   						   PLANE_PRE_CSC_GAMC_DATA_ENH(pipe, plane, 0),
> -						   (1 << 24));
> +						   lut_val);
>   			} while (i++ < 130);
>   		} else {
>   			for (i = 0; i < lut_size; i++) {


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 1/2] drm/i915/color: Fix step discontinuity in Post-CSC Gamma LUT
  2026-05-28 23:07 [PATCH v3 1/2] drm/i915/color: Fix step discontinuity in Post-CSC Gamma LUT Sean Paul
  2026-05-28 23:07 ` [PATCH v3 2/2] drm/i915/color: Fix step discontinuity in Pre-CSC " Sean Paul
  2026-05-31 18:39 ` [PATCH v3 1/2] drm/i915/color: Fix step discontinuity in Post-CSC " Shankar, Uma
@ 2026-06-01  6:21 ` Borah, Chaitanya Kumar
  2026-06-02 16:27 ` Shankar, Uma
  3 siblings, 0 replies; 7+ messages in thread
From: Borah, Chaitanya Kumar @ 2026-06-01  6:21 UTC (permalink / raw)
  To: Sean Paul, intel-gfx, jani.nikula
  Cc: Sean Paul, Rodrigo Vivi, Joonas Lahtinen, Tvrtko Ursulin,
	David Airlie, Simona Vetter, intel-xe, dri-devel

Hi Sean,

On 5/29/2026 4:37 AM, Sean Paul wrote:
> From: Sean Paul <seanpaul@google.com>
> 
> Fix a step discontinuity in the Post-CSC Gamma LUT when SDR dimming
> is active by clamping Segment 2 to the last user-provided LUT entry
> value instead of hardcoding it to 1.0 (1 << 24).
> 
> Signed-off-by: Sean Paul <seanpaul@google.com>
> Link: https://lore.kernel.org/intel-gfx/20260521180143.2143262-1-sean@poorly.run/ #v1
> Link: https://lore.kernel.org/intel-gfx/20260525135730.1122696-1-sean@poorly.run/ #v2
> 

We might need to trigger a CI run on intel-xe/intel-gfx since your 
"poorly.run" e-mail id (unlike your google.com id) is not part of the 
"allow-list".

Otherwise, with the assumption made in [1], LGTM

Reviewed-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>

[1] 
https://lore.kernel.org/intel-gfx/DM4PR11MB636049BA2E517A22FB43A404F4142@DM4PR11MB6360.namprd11.prod.outlook.com/T/#t

> Changes in v2:
> - Split out into separate patches for pre/post csc fixes
> - Dropped loop bounds fix in favor of [1]
> Changes in v3:
> - None
> 
> [1]- https://lore.kernel.org/r/20260519075245.383864-1-pranay.samala@intel.com
> ---
>   drivers/gpu/drm/i915/display/intel_color.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_color.c b/drivers/gpu/drm/i915/display/intel_color.c
> index 7ef870cd9a16..7185f3628dcf 100644
> --- a/drivers/gpu/drm/i915/display/intel_color.c
> +++ b/drivers/gpu/drm/i915/display/intel_color.c
> @@ -4038,11 +4038,11 @@ xelpd_program_plane_post_csc_lut(struct intel_dsb *dsb,
>   						   lut_val);
>   			}
>   
> -			/* Segment 2 */
> +			/* Segment 2 - clamp to the last LUT value to prevent step discontinuity */
>   			do {
>   				intel_de_write_dsb(display, dsb,
>   						   PLANE_POST_CSC_GAMC_DATA_ENH(pipe, plane, 0),
> -						   (1 << 24));
> +						   lut_val);
>   			} while (i++ < 34);
>   		} else {
>   			/*TODO: Add for segment 0 */


^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [PATCH v3 1/2] drm/i915/color: Fix step discontinuity in Post-CSC Gamma LUT
  2026-05-28 23:07 [PATCH v3 1/2] drm/i915/color: Fix step discontinuity in Post-CSC Gamma LUT Sean Paul
                   ` (2 preceding siblings ...)
  2026-06-01  6:21 ` Borah, Chaitanya Kumar
@ 2026-06-02 16:27 ` Shankar, Uma
  3 siblings, 0 replies; 7+ messages in thread
From: Shankar, Uma @ 2026-06-02 16:27 UTC (permalink / raw)
  To: Sean Paul, intel-gfx@lists.freedesktop.org,
	jani.nikula@linux.intel.com, Borah, Chaitanya Kumar
  Cc: Sean Paul, Vivi, Rodrigo, Joonas Lahtinen, Tvrtko Ursulin,
	David Airlie, Simona Vetter, intel-xe@lists.freedesktop.org,
	dri-devel@lists.freedesktop.org



> -----Original Message-----
> From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Sean Paul
> Sent: Friday, May 29, 2026 4:38 AM
> To: intel-gfx@lists.freedesktop.org; jani.nikula@linux.intel.com; Borah, Chaitanya
> Kumar <chaitanya.kumar.borah@intel.com>
> Cc: Sean Paul <seanpaul@google.com>; Vivi, Rodrigo <rodrigo.vivi@intel.com>;
> Joonas Lahtinen <joonas.lahtinen@linux.intel.com>; Tvrtko Ursulin
> <tursulin@ursulin.net>; David Airlie <airlied@gmail.com>; Simona Vetter
> <simona@ffwll.ch>; intel-xe@lists.freedesktop.org; dri-
> devel@lists.freedesktop.org
> Subject: [PATCH v3 1/2] drm/i915/color: Fix step discontinuity in Post-CSC
> Gamma LUT
> 
> From: Sean Paul <seanpaul@google.com>
> 
> Fix a step discontinuity in the Post-CSC Gamma LUT when SDR dimming is
> active by clamping Segment 2 to the last user-provided LUT entry value instead of
> hardcoding it to 1.0 (1 << 24).
> 
> Signed-off-by: Sean Paul <seanpaul@google.com>
> Link: https://lore.kernel.org/intel-gfx/20260521180143.2143262-1-
> sean@poorly.run/ #v1
> Link: https://lore.kernel.org/intel-gfx/20260525135730.1122696-1-
> sean@poorly.run/ #v2
> 
> Changes in v2:
> - Split out into separate patches for pre/post csc fixes
> - Dropped loop bounds fix in favor of [1] Changes in v3:
> - None

Patches in series pushed to drm-intel-next. Thanks for the fixes.

Regards,
Uma Shankar

> [1]- https://lore.kernel.org/r/20260519075245.383864-1-pranay.samala@intel.com
> ---
>  drivers/gpu/drm/i915/display/intel_color.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_color.c
> b/drivers/gpu/drm/i915/display/intel_color.c
> index 7ef870cd9a16..7185f3628dcf 100644
> --- a/drivers/gpu/drm/i915/display/intel_color.c
> +++ b/drivers/gpu/drm/i915/display/intel_color.c
> @@ -4038,11 +4038,11 @@ xelpd_program_plane_post_csc_lut(struct intel_dsb
> *dsb,
>  						   lut_val);
>  			}
> 
> -			/* Segment 2 */
> +			/* Segment 2 - clamp to the last LUT value to prevent step
> +discontinuity */
>  			do {
>  				intel_de_write_dsb(display, dsb,
> 
> PLANE_POST_CSC_GAMC_DATA_ENH(pipe, plane, 0),
> -						   (1 << 24));
> +						   lut_val);
>  			} while (i++ < 34);
>  		} else {
>  			/*TODO: Add for segment 0 */
> --
> Sean Paul, Software Engineer, Google / Chromium OS


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-06-02 16:27 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-28 23:07 [PATCH v3 1/2] drm/i915/color: Fix step discontinuity in Post-CSC Gamma LUT Sean Paul
2026-05-28 23:07 ` [PATCH v3 2/2] drm/i915/color: Fix step discontinuity in Pre-CSC " Sean Paul
2026-05-31 18:41   ` Shankar, Uma
2026-06-01  6:04   ` Borah, Chaitanya Kumar
2026-05-31 18:39 ` [PATCH v3 1/2] drm/i915/color: Fix step discontinuity in Post-CSC " Shankar, Uma
2026-06-01  6:21 ` Borah, Chaitanya Kumar
2026-06-02 16:27 ` Shankar, Uma

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox