A new property to control YCC and subsampling would be the more complete path here. If we actually want to fix this in the short-term though, we should handle the YCC and RGB Colorspace values as equivalent, everywhere. Technically we're breaking the user space API here so it should be documented on the KMS property and other drivers must be adjusted accordingly as well.
On Fri, Jan 13, 2023 at 5:26 PM Harry Wentland <harry.wentl...@amd.com> wrote: > > From: Joshua Ashton <jos...@froggi.es> > > Userspace might not aware whether we're sending RGB or YCbCr > data to the display. If COLOR_SPACE_2020_RGB_FULLRANGE is > requested but the output encoding is YCbCr we should > send COLOR_SPACE_2020_YCBCR. > > Signed-off-by: Joshua Ashton <jos...@froggi.es> > Signed-off-by: Harry Wentland <harry.wentl...@amd.com> > Cc: Pekka Paalanen <ppaala...@gmail.com> > Cc: Sebastian Wick <sebastian.w...@redhat.com> > Cc: vitaly.pros...@amd.com > Cc: Joshua Ashton <jos...@froggi.es> > Cc: dri-de...@lists.freedesktop.org > Cc: amd-gfx@lists.freedesktop.org > Reviewed-by: Harry Wentland <harry.wentl...@amd.com> > --- > drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > index f74b125af31f..16940ea61b59 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > @@ -5184,7 +5184,10 @@ get_output_color_space(const struct dc_crtc_timing > *dc_crtc_timing, > color_space = COLOR_SPACE_ADOBERGB; > break; > case DRM_MODE_COLORIMETRY_BT2020_RGB: > - color_space = COLOR_SPACE_2020_RGB_FULLRANGE; > + if (dc_crtc_timing->pixel_encoding == PIXEL_ENCODING_RGB) > + color_space = COLOR_SPACE_2020_RGB_FULLRANGE; > + else > + color_space = COLOR_SPACE_2020_YCBCR; > break; > case DRM_MODE_COLORIMETRY_BT2020_YCC: > color_space = COLOR_SPACE_2020_YCBCR; > -- > 2.39.0 >