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