display regression on Carrizo

StDenis, Tom Tom.StDenis at amd.com
Tue Jun 1 16:50:33 UTC 2021


[AMD Official Use Only]

Hi Mario,

Yes, this diff fixes the display on my Carrizo:

[root at carrizo linux]# git diff
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
index cd864cc83539..ca7739c9f6cb 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
@@ -1044,7 +1044,7 @@ bool resource_build_scaling_params(struct pipe_ctx *pipe_ctx)
         * SURFACE_PIXEL_FORMAT_GRPH_ABGR16161616 with actual > 10 bpc
         * precision on at least DCN display engines.
         */
-       pipe_ctx->plane_res.scl_data.lb_params.depth = LB_PIXEL_DEPTH_36BPP;
+       pipe_ctx->plane_res.scl_data.lb_params.depth = LB_PIXEL_DEPTH_30BPP;
        pipe_ctx->plane_res.scl_data.lb_params.alpha_en = plane_state->per_pixel_alpha;

        if (pipe_ctx->plane_res.xfm != NULL)

Tom

________________________________________
From: Mario Kleiner <mario.kleiner.de at gmail.com>
Sent: Tuesday, June 1, 2021 09:17
To: StDenis, Tom
Cc: amd-gfx list; Deucher, Alexander
Subject: Re: display regression on Carrizo

On Mon, May 31, 2021 at 4:14 PM StDenis, Tom <Tom.StDenis at amd.com> wrote:
>
> [AMD Official Use Only]
>
> Hi Mario,
>

Hi Tom,

> The following commit causes a display regression on my Carrizo when booting linux into a console (e.g. no WM).  When the driver inits the display goes green and is unusable.  The commit prior to this one on amd-staging-drm-next results in a clean init.
>

That's sad. What happens if you only revert the change to
drivers/gpu/drm/amd/display/dc/core/dc_resource.c in this commit,ie.
change the assignment in resource_build_scaling_params() back to:

pipe_ctx->plane_res.scl_data.lb_params.depth = LB_PIXEL_DEPTH_30BPP;

As my testing on Polaris / DCE11.2 showed, for some reason the change
in linebuffer pixeldepth was not required for my Polaris11 to get
12bpc output, only for my Raven Ridge / DCN-1. Maybe I could make a
followup patch to make it conditional on asic? Either only increase lb
depth on DCN-1+, leave it off for DCE, or just exclude DCE-11.0 from
the change, as Carrizo is DCE-11? I seem to remember there were some
other DCE-11 specific restrictions wrt. 64bpp fp16 and the scaler.
Maybe something similar happens here?

-mario

> commit b1114ddd63be03825182d6162ff25fa3492cd6f5
> Author: Mario Kleiner <mario.kleiner.de at gmail.com>
> Date:   Fri Mar 19 22:03:15 2021 +0100
>
>     drm/amd/display: Increase linebuffer pixel depth to 36bpp.
>
>     Testing with the photometer shows that at least Raven Ridge DCN-1.0
>     does not achieve more than 10 bpc effective output precision with a
>     16 bpc unorm surface of type SURFACE_PIXEL_FORMAT_GRPH_ABGR16161616,
>     unless linebuffer depth is increased from LB_PIXEL_DEPTH_30BPP to
>     LB_PIXEL_DEPTH_36BPP. Otherwise precision gets truncated somewhere
>     to 10 bpc effective depth.
>
>     Strangely this increase was not needed on Polaris11 DCE-11.2 during
>     testing to get 12 bpc effective precision. It also is not needed for
>     fp16 framebuffers.
>
>     Tested on DCN-1.0 and DCE-11.2.
>
>     Signed-off-by: Mario Kleiner <mario.kleiner.de at gmail.com>
>     Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
>
>  drivers/gpu/drm/amd/display/dc/core/dc_resource.c          | 7 +++++--
>  drivers/gpu/drm/amd/display/dc/dce/dce_transform.c         | 6 ++++--
>  drivers/gpu/drm/amd/display/dc/dce110/dce110_transform_v.c | 3 ++-
>  drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp.c           | 3 ++-
>  drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c  | 2 +-
>  drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dpp.c           | 3 ++-
>  drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c         | 2 +-
>  drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dpp.c           | 3 ++-
>  8 files changed, 19 insertions(+), 10 deletions(-)
>
> Tom


More information about the amd-gfx mailing list