Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/amd/display: Disable 10-bit truncation and dithering on DCE 6.x

DCE 6.x doesn't support 10-bit truncation and 10-bit dithering
because the following fields are 1-bit only:
FMT_TEMPORAL_DITHER_DEPTH
FMT_SPATIAL_DITHER_DEPTH
FMT_TRUNCATE_DEPTH
Programming these fields to "2" will program them as if the
dithering option was 6-bit, resulting in sub-par picture
quality and an ugly "color banding" effect.

Note that a recent commit changed the default 10-bit dithering
option to DITHER_OPTION_SPATIAL10 which improves the picture
quality because it happens to look better, but is still not
actually supported by DCE 6.x versions.

When the color depth is 10-bit or more, just disable
any kind of dithering options on DCE 6.x.

Closes: https://gitlab.freedesktop.org/drm/amd/-/work_items/5151
Fixes: 529cad0f945c ("drm/amd/display: Add function to set dither option")
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 6be8ced880dfe29ce38c2d5e74489822da5c250e)

authored by

Timur Kristóf and committed by
Alex Deucher
11b31549 778bf584

+6
+6
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
··· 5069 5069 } 5070 5070 } 5071 5071 5072 + if (stream->ctx->dce_version < DCE_VERSION_8_0 && 5073 + stream->timing.display_color_depth >= COLOR_DEPTH_101010) { 5074 + /* DCE 6.x doesn't support 10-bit truncation or dither options. */ 5075 + option = DITHER_OPTION_DISABLE; 5076 + } 5077 + 5072 5078 if (option == DITHER_OPTION_DISABLE) 5073 5079 return; 5074 5080