[PATCH v2] drm/amd/display: enable cursor degamma for DCN3+ DRM legacy gamma

Alex Deucher alexdeucher at gmail.com
Thu Aug 31 19:41:59 UTC 2023


Applied.  Thanks!

Alex

On Thu, Aug 31, 2023 at 12:12 PM Melissa Wen <mwen at igalia.com> wrote:
>
> For DRM legacy gamma, AMD display manager applies implicit sRGB degamma
> using a pre-defined sRGB transfer function. It works fine for DCN2
> family where degamma ROM and custom curves go to the same color block.
> But, on DCN3+, degamma is split into two blocks: degamma ROM for
> pre-defined TFs and `gamma correction` for user/custom curves and
> degamma ROM settings doesn't apply to cursor plane. To get DRM legacy
> gamma working as expected, enable cursor degamma ROM for implict sRGB
> degamma on HW with this configuration.
>
> Cc: stable at vger.kernel.org
> Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2803
> Fixes: 96b020e2163f ("drm/amd/display: check attr flag before set cursor degamma on DCN3+")
> Signed-off-by: Melissa Wen <mwen at igalia.com>
> ---
> v2: cc'ing stable
> ---
>  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> index df568a7cd005..b97cbc4e5477 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> @@ -1270,6 +1270,13 @@ void amdgpu_dm_plane_handle_cursor_update(struct drm_plane *plane,
>         attributes.rotation_angle    = 0;
>         attributes.attribute_flags.value = 0;
>
> +       /* Enable cursor degamma ROM on DCN3+ for implicit sRGB degamma in DRM
> +        * legacy gamma setup.
> +        */
> +       if (crtc_state->cm_is_degamma_srgb &&
> +           adev->dm.dc->caps.color.dpp.gamma_corr)
> +               attributes.attribute_flags.bits.ENABLE_CURSOR_DEGAMMA = 1;
> +
>         attributes.pitch = afb->base.pitches[0] / afb->base.format->cpp[0];
>
>         if (crtc_state->stream) {
> --
> 2.40.1
>


More information about the amd-gfx mailing list