]> Git Repo - linux.git/commit
drm/i915/display: Prevent double YUV range correction on HDR planes
authorAndres Calderon Jaramillo <[email protected]>
Tue, 2 Feb 2021 08:45:53 +0000 (10:45 +0200)
committerJani Nikula <[email protected]>
Tue, 2 Feb 2021 10:40:47 +0000 (12:40 +0200)
commit00f9a08fbc3c703b71842a5425c1eb82053c8a70
treea95965ced1859b53e7b90110b2493ec86cf05f4c
parentfad9bae9ee5d578afbe6380c82e4715efaddf118
drm/i915/display: Prevent double YUV range correction on HDR planes

Prevent the ICL HDR plane pipeline from performing YUV color range
correction twice when the input is in limited range. This is done by
removing the limited-range code from icl_program_input_csc().

Before this patch the following could happen: user space gives us a YUV
buffer in limited range; per the pipeline in [1], the plane would first
go through a "YUV Range correct" stage that expands the range; the plane
would then go through the "Input CSC" stage which would also expand the
range because icl_program_input_csc() would use a matrix and an offset
that assume limited-range input; this would ultimately cause dark and
light colors to appear darker and lighter than they should respectively.

This is an issue because if a buffer switches between being scanned out
and being composited with the GPU, the user will see a color difference.
If this switching happens quickly and frequently, the user will perceive
this as a flickering.

[1] https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-icllp-vol12-displayengine_0.pdf#page=281

Cc: [email protected]
Signed-off-by: Andres Calderon Jaramillo <[email protected]>
Signed-off-by: Ville Syrjälä <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
(cherry picked from commit fed387572040e84ead53852a7820e30a30e515d0)
Signed-off-by: Jani Nikula <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
drivers/gpu/drm/i915/display/intel_display.c
drivers/gpu/drm/i915/display/intel_sprite.c
This page took 0.080948 seconds and 4 git commands to generate.