mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Pekka Paalanen <pekka.paalanen@collabora.com>
To: Harry Wentland <harry.wentland@amd.com>
Cc: Melissa Wen <mwen@igalia.com>,
	amd-gfx@lists.freedesktop.org,
	Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>,
	sunpeng.li@amd.com, Alex Deucher <alexander.deucher@amd.com>,
	dri-devel@lists.freedesktop.org, christian.koenig@amd.com,
	Xinhui.Pan@amd.com, airlied@gmail.com, daniel@ffwll.ch,
	Joshua Ashton <joshua@froggi.es>,
	Sebastian Wick <sebastian.wick@redhat.com>,
	Xaver Hugl <xaver.hugl@gmail.com>,
	Shashank Sharma <Shashank.Sharma@amd.com>,
	Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>,
	sungjoon.kim@amd.com, Alex Hung <alex.hung@amd.com>,
	Simon Ser <contact@emersion.fr>,
	kernel-dev@igalia.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 07/34] drm/amd/display: explicitly define EOTF and inverse EOTF
Date: Fri, 8 Sep 2023 10:45:42 +0300	[thread overview]
Message-ID: <20230908104542.2ffa4845.pekka.paalanen@collabora.com> (raw)
In-Reply-To: <b8d1e0b8-61b5-4e6a-a95c-3095f97bb376@amd.com>

[-- Attachment #1: Type: text/plain, Size: 4437 bytes --]

On Thu, 7 Sep 2023 10:10:50 -0400
Harry Wentland <harry.wentland@amd.com> wrote:

> On 2023-09-07 03:49, Pekka Paalanen wrote:
> > On Wed, 6 Sep 2023 16:15:10 -0400
> > Harry Wentland <harry.wentland@amd.com> wrote:
> >   
> >> On 2023-08-25 10:18, Melissa Wen wrote:  
> >>> On 08/22, Pekka Paalanen wrote:    
> >>>> On Thu, 10 Aug 2023 15:02:47 -0100
> >>>> Melissa Wen <mwen@igalia.com> wrote:
> >>>>    
> >>>>> Instead of relying on color block names to get the transfer function
> >>>>> intention regarding encoding pixel's luminance, define supported
> >>>>> Electro-Optical Transfer Functions (EOTFs) and inverse EOTFs, that
> >>>>> includes pure gamma or standardized transfer functions.
> >>>>>
> >>>>> Suggested-by: Harry Wentland <harry.wentland@amd.com>
> >>>>> Signed-off-by: Melissa Wen <mwen@igalia.com>
> >>>>> ---
> >>>>>  .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 19 +++--
> >>>>>  .../amd/display/amdgpu_dm/amdgpu_dm_color.c   | 69 +++++++++++++++----
> >>>>>  2 files changed, 67 insertions(+), 21 deletions(-)

...

> >> While I'm okay to move ahead with these AMD driver-specific properties
> >> without IGT tests (since they're not enabled and not UABI) we really
> >> need IGT tests once they become UABI with the Color Pipeline API. And we
> >> need more than just CRC testing. We'll need to do pixel-by-pixel comparison
> >> so we can verify that the KMS driver behaves exactly how we expect for a
> >> large range of values.  
> > 
> > Yes, please, very much, about the generic color UAPI.
> > 
> > I believe IGT should contain the reference curve for all named fixed
> > curves computed with standard libc math functions in double precision,
> > and compute error statistics between that and hardware results.
> > The actual test image would iterate through e.g. 1024 (all 10-bit
> > values for integer format framebuffer) different values - 1024 is
> > nothing as a number of pixels. Then we decide on acceptable error
> > thresholds.
> >   
> 
> 1024 isn't a lot of values and fine if we test R, G, and B independently.
> Unfortunately 1024^3 is about a billion pixels, so for testing 3DLUTs
> (or other cases where we need to test the combination of RGB together)
> we won't be able to cover all inputs with a single framebuffer.

Of course, runtimes need to be practical. That idea was for 1D curves,
and 3D mappings need a different distribution.

> > It should also be tested with a floating-point framebuffer format, FP16
> > or FP32, with a value distribution designed to be sensitive to typical
> > numerical problems. For example, an inverse EOTF should be carefully
> > tested with values near zero, since those are the most problematic and
> > likely cause the most visible errors.
> > 
> > Once all that is done, we can be very sure of what curve any hardware
> > actually implements.
> > 
> > I might even go far enough to suggest that any generic color UAPI with
> > named fixed curves cannot land without such tests.
> >   
> 
> I tend to agree, though I think the same should on some level apply to
> custom LUTs or other custom transforms.
> 
> The IGT tests I'm writing will each have a "transform" function that does
> the transform in CPU as reference.

Sounds good!

For testing optical-to-electrical kind of operations, one idea is to
sample the electrical target space, and reverse the reference transform
to come up with the test input values. That way one can test if the
output space is sufficiently covered, and the rounding behavior as well.

Electrical space usually tends to be integer encoded with not too many
bits, making even exhaustive sampling feasible for 1D curves.


Thanks,
pq


> >>> Then EOTF and inverse EOTF for PQ [2], and OETF and it seems an inverse
> >>> OETF but called EOTF for HLG[3]. But I'm an external dev, better if
> >>> Harry can confirm.
> >>>
> >>> Thank you for pointing it out.
> >>>
> >>> [1] https://cgit.freedesktop.org/drm/drm-misc/tree/drivers/gpu/drm/amd/display/modules/color/color_gamma.c#n55
> >>> [2] https://cgit.freedesktop.org/drm/drm-misc/tree/drivers/gpu/drm/amd/display/modules/color/color_gamma.c#n106
> >>> [3] https://cgit.freedesktop.org/drm/drm-misc/tree/drivers/gpu/drm/amd/display/modules/color/color_gamma.c#n174
> >>>     
> >>>>
> >>>> The others seem fine to me.
> >>>>
> >>>>
> >>>> Thanks,
> >>>> pq  
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2023-09-08  7:46 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-10 16:02 [PATCH v2 00/34] drm/amd/display: add AMD driver-specific properties for color mgmt Melissa Wen
2023-08-10 16:02 ` [PATCH v2 01/34] drm/amd/display: fix segment distribution for linear LUTs Melissa Wen
2023-09-06 19:15   ` Harry Wentland
2023-09-08 14:11     ` Melissa Wen
2023-09-08 14:40       ` Harry Wentland
2023-08-10 16:02 ` [PATCH v2 02/34] drm/drm_mode_object: increase max objects to accommodate new color props Melissa Wen
2023-08-10 16:02 ` [PATCH v2 03/34] drm/drm_property: make replace_property_blob_from_id a DRM helper Melissa Wen
2023-08-10 16:02 ` [PATCH v2 04/34] drm/drm_plane: track color mgmt changes per plane Melissa Wen
2023-08-10 16:02 ` [PATCH v2 05/34] drm/amd/display: add driver-specific property for plane degamma LUT Melissa Wen
2023-08-10 16:02 ` [PATCH v2 06/34] drm/amd/display: add plane degamma TF driver-specific property Melissa Wen
2023-08-10 16:02 ` [PATCH v2 07/34] drm/amd/display: explicitly define EOTF and inverse EOTF Melissa Wen
2023-08-22 11:02   ` Pekka Paalanen
2023-08-25 14:18     ` Melissa Wen
2023-09-06 20:15       ` Harry Wentland
2023-09-07  7:49         ` Pekka Paalanen
2023-09-07 14:10           ` Harry Wentland
2023-09-08  7:45             ` Pekka Paalanen [this message]
2023-09-08 14:14         ` Melissa Wen
2023-08-10 16:02 ` [PATCH v2 08/34] drm/amd/display: document AMDGPU pre-defined transfer functions Melissa Wen
2023-08-22 11:45   ` Pekka Paalanen
2023-08-10 16:02 ` [PATCH v2 09/34] drm/amd/display: add plane HDR multiplier driver-specific property Melissa Wen
2023-08-22 11:54   ` Pekka Paalanen
2023-08-10 16:02 ` [PATCH v2 10/34] drm/amd/display: add plane 3D LUT driver-specific properties Melissa Wen
2023-09-06 19:30   ` Harry Wentland
2023-09-07  7:57     ` Pekka Paalanen
2023-09-08 14:19       ` Melissa Wen
2023-08-10 16:02 ` [PATCH v2 11/34] drm/amd/display: add plane shaper LUT and TF " Melissa Wen
2023-09-06 19:33   ` Harry Wentland
2023-09-08 14:21     ` Melissa Wen
2023-08-10 16:02 ` [PATCH v2 12/34] drm/amd/display: add plane blend " Melissa Wen
2023-08-10 16:02 ` [PATCH v2 13/34] drm/amd/display: add CRTC gamma TF driver-specific property Melissa Wen
2023-08-10 16:02 ` [PATCH v2 14/34] drm/amd/display: add comments to describe DM crtc color mgmt behavior Melissa Wen
2023-08-10 16:02 ` [PATCH v2 15/34] drm/amd/display: encapsulate atomic regamma operation Melissa Wen
2023-08-10 16:02 ` [PATCH v2 16/34] drm/amd/display: add CRTC gamma TF support Melissa Wen
2023-08-10 16:02 ` [PATCH v2 17/34] drm/amd/display: set sdr_ref_white_level to 80 for out_transfer_func Melissa Wen
2023-08-10 16:02 ` [PATCH v2 18/34] drm/amd/display: mark plane as needing reset if color props change Melissa Wen
2023-08-10 16:02 ` [PATCH v2 19/34] drm/amd/display: decouple steps for mapping CRTC degamma to DC plane Melissa Wen
2023-08-22 12:11   ` Pekka Paalanen
2023-08-25 14:29     ` Melissa Wen
2023-08-28  8:17       ` Pekka Paalanen
2023-08-30 10:59         ` Michel Dänzer
2023-09-06 14:46         ` Harry Wentland
     [not found]     ` <CAEZNXZCfvc909iFZQMdNEz=P_T=rYEYKq1Tdrt+8RNQpBSNt_g@mail.gmail.com>
2023-08-28 10:23       ` Pekka Paalanen
2023-08-28 13:56         ` Melissa Wen
2023-08-29  8:51           ` Pekka Paalanen
2023-09-06 14:52             ` Harry Wentland
2023-08-10 16:03 ` [PATCH v2 20/34] drm/amd/display: add plane degamma TF and LUT support Melissa Wen
2023-08-10 16:03 ` [PATCH v2 21/34] drm/amd/display: reject atomic commit if setting both plane and CRTC degamma Melissa Wen
2023-08-10 16:03 ` [PATCH v2 22/34] drm/amd/display: add dc_fixpt_from_s3132 helper Melissa Wen
2023-08-10 16:03 ` [PATCH v2 23/34] drm/amd/display: add HDR multiplier support Melissa Wen
2023-08-10 16:03 ` [PATCH v2 24/34] drm/amd/display: add plane shaper LUT support Melissa Wen
2023-08-10 16:03 ` [PATCH v2 25/34] drm/amd/display: add plane shaper TF support Melissa Wen
2023-08-10 16:03 ` [PATCH v2 26/34] drm/amd/display: add plane 3D LUT support Melissa Wen
2023-08-10 16:03 ` [PATCH v2 27/34] drm/amd/display: handle empty LUTs in __set_input_tf Melissa Wen
2023-08-10 16:03 ` [PATCH v2 28/34] drm/amd/display: add plane blend LUT and TF support Melissa Wen
2023-08-10 16:03 ` [PATCH v2 29/34] drm/amd/display: allow newer DC hardware to use degamma ROM for PQ/HLG Melissa Wen
2023-09-06 18:01   ` Harry Wentland
2023-09-08 14:28     ` Melissa Wen
2023-08-10 16:03 ` [PATCH v2 30/34] drm/amd/display: copy 3D LUT settings from crtc state to stream_update Melissa Wen
2023-08-10 16:03 ` [PATCH v2 31/34] drm/amd/display: set stream gamut remap matrix to MPC for DCN301 Melissa Wen
2023-08-22 12:30   ` Pekka Paalanen
2023-08-25 14:37     ` Melissa Wen
2023-08-28  8:20       ` Pekka Paalanen
2023-09-06 18:10         ` Harry Wentland
2023-08-10 16:03 ` [PATCH v2 32/34] drm/amd/display: add plane CTM driver-specific property Melissa Wen
2023-09-06 18:14   ` Harry Wentland
2023-09-08 14:41     ` Melissa Wen
2023-09-08 14:42       ` Harry Wentland
2023-08-10 16:03 ` [PATCH v2 33/34] drm/amd/display: add plane CTM support Melissa Wen
2023-09-06 18:18   ` Harry Wentland
2023-09-08 14:49     ` Melissa Wen
2023-08-10 16:03 ` [PATCH v2 34/34] drm/amd/display: Use 3x4 CTM for plane CTM Melissa Wen
2023-09-06 18:28   ` Harry Wentland
2023-09-06 19:33 ` [PATCH v2 00/34] drm/amd/display: add AMD driver-specific properties for color mgmt Harry Wentland
2023-09-08 14:52   ` Melissa Wen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230908104542.2ffa4845.pekka.paalanen@collabora.com \
    --to=pekka.paalanen@collabora.com \
    --cc=Rodrigo.Siqueira@amd.com \
    --cc=Shashank.Sharma@amd.com \
    --cc=Xinhui.Pan@amd.com \
    --cc=airlied@gmail.com \
    --cc=alex.hung@amd.com \
    --cc=alexander.deucher@amd.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=christian.koenig@amd.com \
    --cc=contact@emersion.fr \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=harry.wentland@amd.com \
    --cc=joshua@froggi.es \
    --cc=kernel-dev@igalia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mwen@igalia.com \
    --cc=nicholas.kazlauskas@amd.com \
    --cc=sebastian.wick@redhat.com \
    --cc=sungjoon.kim@amd.com \
    --cc=sunpeng.li@amd.com \
    --cc=xaver.hugl@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®