Re: [PATCH v2 31/34] drm/amd/display: set stream gamut remap matrix to MPC for DCN301

From: Pekka Paalanen
Date: Mon Aug 28 2023 - 04:21:34 EST


On Fri, 25 Aug 2023 13:37:08 -0100
Melissa Wen <mwen@xxxxxxxxxx> wrote:

> On 08/22, Pekka Paalanen wrote:
> > On Thu, 10 Aug 2023 15:03:11 -0100
> > Melissa Wen <mwen@xxxxxxxxxx> wrote:
> >
> > > dc->caps.color.mpc.gamut_remap says there is a post-blending color block
> > > for gamut remap matrix for DCN3 HW family and newer versions. However,
> > > those drivers still follow DCN10 programming that remap stream
> > > gamut_remap_matrix to DPP (pre-blending).
> >
> > That's ok only as long as CRTC degamma is pass-through. Blending itself
> > is a linear operation, so it doesn't matter if a matrix is applied to
> > the blending result or to all blending inputs. But you cannot move a
> > matrix operation to the other side of a non-linear operation, and you
> > cannot move a non-linear operation across blending.
>
> Oh, I'm not moving it, what I'm doing here is the opposite and fixing
> it. This patch puts each pre- and post-blending CTM in their right
> place, since we have the HW caps for it on DCN3+... Or are you just
> pointing out the implementation mistake on old driver versions?

It's just the old mistake.

I hope no-one complains, forcing you to revert this fix as a regression.


Thanks,
pq


> > > To enable pre-blending and post-blending gamut_remap matrix supports at
> > > the same time, set stream gamut_remap to MPC and plane gamut_remap to
> > > DPP for DCN301 that support both.
> > >
> > > It was tested using IGT KMS color tests for DRM CRTC CTM property and it
> > > preserves test results.
> > >
> > > Signed-off-by: Melissa Wen <mwen@xxxxxxxxxx>
> > > ---
> > > .../drm/amd/display/dc/dcn30/dcn30_hwseq.c | 37 +++++++++++++++++++
> > > .../drm/amd/display/dc/dcn30/dcn30_hwseq.h | 3 ++
> > > .../drm/amd/display/dc/dcn301/dcn301_init.c | 2 +-
> > > 3 files changed, 41 insertions(+), 1 deletion(-)

Attachment: pgpjWXS0CimGy.pgp
Description: OpenPGP digital signature