All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pekka Paalanen <ppaalanen@gmail.com>
To: Harry Wentland <harry.wentland@amd.com>
Cc: Mukunda Pramodh Kumar <mukunda.pramodh.kumar@intel.com>,
	dri-devel@lists.freedesktop.org, igt-dev@lists.freedesktop.org
Subject: Re: [igt-dev] [i-g-t 00/14] Add IGT support for plane color management
Date: Mon, 29 Nov 2021 11:20:33 +0200	[thread overview]
Message-ID: <20211129112033.770d1c2a@eldfell> (raw)
In-Reply-To: <26abc3eb-c50e-8f89-ccc9-ad96f1177987@amd.com>

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

On Fri, 26 Nov 2021 11:54:55 -0500
Harry Wentland <harry.wentland@amd.com> wrote:

> On 2021-11-18 04:50, Pekka Paalanen wrote:
> > On Mon, 15 Nov 2021 15:17:45 +0530
> > Bhanuprakash Modem <bhanuprakash.modem@intel.com> wrote:
> >   
> >> From the Plane Color Management feature design, userspace can
> >> take the smart blending decisions based on hardware supported
> >> plane color features to obtain an accurate color profile.
> >>
> >> These IGT patches extend the existing pipe color management
> >> tests to the plane level.
> >>
> >> Kernel implementation:
> >> https://patchwork.freedesktop.org/series/90825/  

...

> > I also found some things that looked hardware-specific in this code
> > that to my understanding is supposed to be generic, and some concerns
> > about UAPI as well.
> >   
> 
> I left some comments on intellisms in these patches.
> 
> Do you have any specifics about your concerns about UAPI?

Yeah, the comments I left in the patches:

patch 3:

> Having to explicitly special-case index zero feels odd to me. Why does
> it need explicit special-casing?
> 
> To me it's a hint that the definitions of .start and .end are somehow
> inconsistent.

patch 4 and 8:

> > +static bool is_hdr_plane(const igt_plane_t *plane)
> > +{
> > +	return plane->index >= 0 && plane->index < SDR_PLANE_BASE;  
> 
> How can this be right for all KMS drivers?
> 
> What is a HDR plane?

patch 12:

> > +struct drm_color_lut *coeffs_to_logarithmic_lut(data_t *data,
> > +						const gamma_lut_t *gamma,
> > +						uint32_t color_depth,
> > +						int off)
> > +{
> > +	struct drm_color_lut *lut;
> > +	int i, lut_size = gamma->size;
> > +	/* This is the maximum value due to 16 bit precision in hardware. */  
> 
> In whose hardware?
> 
> Are igt tests not supposed to be generic for everything that exposes
> the particular KMS properties?
> 
> This also hints that the UAPI design is lacking, because userspace
> needs to know hardware specific things out of thin air. Display servers
> are not going to have hardware-specific code. They specialise based on
> the existence of KMS properties instead.

...

> > +void set_advance_gamma(data_t *data, igt_pipe_t *pipe, enum gamma_type type)
> > +{
> > +	igt_display_t *display = &data->display;
> > +	gamma_lut_t *gamma_log;
> > +	drmModePropertyPtr gamma_mode = NULL;
> > +	segment_data_t *segment_info = NULL;
> > +	struct drm_color_lut *lut = NULL;
> > +	int lut_size = 0;
> > +
> > +	drmSetClientCap(data->drm_fd, DRM_CLIENT_CAP_ADVANCE_GAMMA_MODES, 1);  
> 
> Is this how we are going to do cross-software DRM-master hand-over or
> switching compatibility in general?
> 
> Add a new client cap for every new KMS property, and if the KMS client
> does not set the property, the kernel will magically reset it to ensure
> the client's expectations are met? Is that how it works?
> 
> Or why does this exist?

...

> > +	drmSetClientCap(data->drm_fd, DRM_CLIENT_CAP_ADVANCE_GAMMA_MODES, 0);  
> 
> I've never seen this done before. I did not know client caps could be
> reset.


So, patch 12 has the biggest UAPI questions, and patch 3 may need a
UAPI change as well. The comments in patches 4 and 8 could be addressed
with just removing that code since the concept of HDR/SDR planes does
not exist in UAPI. Or, if that concept is needed then it's another UAPI
problem.


Thanks,
pq

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

WARNING: multiple messages have this Message-ID (diff)
From: Pekka Paalanen <ppaalanen@gmail.com>
To: Harry Wentland <harry.wentland@amd.com>
Cc: Mukunda Pramodh Kumar <mukunda.pramodh.kumar@intel.com>,
	Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>,
	dri-devel@lists.freedesktop.org, igt-dev@lists.freedesktop.org,
	Uma Shankar <uma.shankar@intel.com>,
	Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Subject: Re: [i-g-t 00/14] Add IGT support for plane color management
Date: Mon, 29 Nov 2021 11:20:33 +0200	[thread overview]
Message-ID: <20211129112033.770d1c2a@eldfell> (raw)
In-Reply-To: <26abc3eb-c50e-8f89-ccc9-ad96f1177987@amd.com>

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

On Fri, 26 Nov 2021 11:54:55 -0500
Harry Wentland <harry.wentland@amd.com> wrote:

> On 2021-11-18 04:50, Pekka Paalanen wrote:
> > On Mon, 15 Nov 2021 15:17:45 +0530
> > Bhanuprakash Modem <bhanuprakash.modem@intel.com> wrote:
> >   
> >> From the Plane Color Management feature design, userspace can
> >> take the smart blending decisions based on hardware supported
> >> plane color features to obtain an accurate color profile.
> >>
> >> These IGT patches extend the existing pipe color management
> >> tests to the plane level.
> >>
> >> Kernel implementation:
> >> https://patchwork.freedesktop.org/series/90825/  

...

> > I also found some things that looked hardware-specific in this code
> > that to my understanding is supposed to be generic, and some concerns
> > about UAPI as well.
> >   
> 
> I left some comments on intellisms in these patches.
> 
> Do you have any specifics about your concerns about UAPI?

Yeah, the comments I left in the patches:

patch 3:

> Having to explicitly special-case index zero feels odd to me. Why does
> it need explicit special-casing?
> 
> To me it's a hint that the definitions of .start and .end are somehow
> inconsistent.

patch 4 and 8:

> > +static bool is_hdr_plane(const igt_plane_t *plane)
> > +{
> > +	return plane->index >= 0 && plane->index < SDR_PLANE_BASE;  
> 
> How can this be right for all KMS drivers?
> 
> What is a HDR plane?

patch 12:

> > +struct drm_color_lut *coeffs_to_logarithmic_lut(data_t *data,
> > +						const gamma_lut_t *gamma,
> > +						uint32_t color_depth,
> > +						int off)
> > +{
> > +	struct drm_color_lut *lut;
> > +	int i, lut_size = gamma->size;
> > +	/* This is the maximum value due to 16 bit precision in hardware. */  
> 
> In whose hardware?
> 
> Are igt tests not supposed to be generic for everything that exposes
> the particular KMS properties?
> 
> This also hints that the UAPI design is lacking, because userspace
> needs to know hardware specific things out of thin air. Display servers
> are not going to have hardware-specific code. They specialise based on
> the existence of KMS properties instead.

...

> > +void set_advance_gamma(data_t *data, igt_pipe_t *pipe, enum gamma_type type)
> > +{
> > +	igt_display_t *display = &data->display;
> > +	gamma_lut_t *gamma_log;
> > +	drmModePropertyPtr gamma_mode = NULL;
> > +	segment_data_t *segment_info = NULL;
> > +	struct drm_color_lut *lut = NULL;
> > +	int lut_size = 0;
> > +
> > +	drmSetClientCap(data->drm_fd, DRM_CLIENT_CAP_ADVANCE_GAMMA_MODES, 1);  
> 
> Is this how we are going to do cross-software DRM-master hand-over or
> switching compatibility in general?
> 
> Add a new client cap for every new KMS property, and if the KMS client
> does not set the property, the kernel will magically reset it to ensure
> the client's expectations are met? Is that how it works?
> 
> Or why does this exist?

...

> > +	drmSetClientCap(data->drm_fd, DRM_CLIENT_CAP_ADVANCE_GAMMA_MODES, 0);  
> 
> I've never seen this done before. I did not know client caps could be
> reset.


So, patch 12 has the biggest UAPI questions, and patch 3 may need a
UAPI change as well. The comments in patches 4 and 8 could be addressed
with just removing that code since the concept of HDR/SDR planes does
not exist in UAPI. Or, if that concept is needed then it's another UAPI
problem.


Thanks,
pq

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

  reply	other threads:[~2021-11-29  9:20 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-15  9:47 [igt-dev] [i-g-t 00/14] Add IGT support for plane color management Bhanuprakash Modem
2021-11-15  9:47 ` Bhanuprakash Modem
2021-11-15  9:47 ` [i-g-t 01/14] HAX: Get uapi headers to compile the IGT Bhanuprakash Modem
2021-11-15  9:47 ` [igt-dev] [i-g-t 02/14] lib/igt_kms: Add plane color mgmt properties Bhanuprakash Modem
2021-11-15  9:47   ` Bhanuprakash Modem
2021-11-15  9:47 ` [igt-dev] [i-g-t 03/14] kms_color_helper: Add helper functions for plane color mgmt Bhanuprakash Modem
2021-11-15  9:47   ` Bhanuprakash Modem
2021-11-18  8:41   ` [igt-dev] " Pekka Paalanen
2021-11-18  8:41     ` Pekka Paalanen
2022-01-03  4:02     ` [igt-dev] " Modem, Bhanuprakash
2022-01-03  4:02       ` Modem, Bhanuprakash
2021-11-26 16:54   ` [igt-dev] " Harry Wentland
2021-11-26 16:54     ` Harry Wentland
2022-01-03  4:02     ` [igt-dev] " Modem, Bhanuprakash
2022-01-03  4:02       ` Modem, Bhanuprakash
2021-11-15  9:47 ` [igt-dev] [i-g-t 04/14] tests/kms_color: New subtests for Plane gamma Bhanuprakash Modem
2021-11-15  9:47   ` Bhanuprakash Modem
2021-11-18  9:02   ` [igt-dev] " Pekka Paalanen
2021-11-18  9:02     ` Pekka Paalanen
2022-01-03  4:09     ` [igt-dev] " Modem, Bhanuprakash
2022-01-03  4:09       ` Modem, Bhanuprakash
2021-11-26 16:55   ` [igt-dev] " Harry Wentland
2021-11-26 16:55     ` Harry Wentland
2022-01-03  4:05     ` [igt-dev] " Modem, Bhanuprakash
2022-01-03  4:05       ` Modem, Bhanuprakash
2022-01-04 21:19       ` Harry Wentland
2022-01-05 11:21         ` [igt-dev] " Modem, Bhanuprakash
2022-01-05 11:21           ` Modem, Bhanuprakash
2022-01-05 22:13           ` Harry Wentland
2021-11-15  9:47 ` [igt-dev] [i-g-t 05/14] tests/kms_color: New subtests for Plane degamma Bhanuprakash Modem
2021-11-15  9:47   ` Bhanuprakash Modem
2021-11-15  9:47 ` [igt-dev] [i-g-t 06/14] tests/kms_color: New subtests for Plane CTM Bhanuprakash Modem
2021-11-15  9:47   ` Bhanuprakash Modem
2021-11-26 16:55   ` Harry Wentland
2021-11-15  9:47 ` [igt-dev] [i-g-t 07/14] tests/kms_color: New negative tests for plane level color mgmt Bhanuprakash Modem
2021-11-15  9:47   ` Bhanuprakash Modem
2021-11-18  9:19   ` [igt-dev] " Pekka Paalanen
2021-11-18  9:19     ` Pekka Paalanen
2021-11-29 14:56     ` [igt-dev] " Harry Wentland
2022-01-03  4:05     ` Modem, Bhanuprakash
2022-01-03  4:05       ` Modem, Bhanuprakash
2021-11-15  9:47 ` [igt-dev] [i-g-t 08/14] tests/kms_color_chamelium: New subtests for Plane gamma Bhanuprakash Modem
2021-11-15  9:47   ` Bhanuprakash Modem
2021-11-18  9:32   ` [igt-dev] " Pekka Paalanen
2021-11-18  9:32     ` Pekka Paalanen
2022-01-03  4:06     ` [igt-dev] " Modem, Bhanuprakash
2022-01-03  4:06       ` Modem, Bhanuprakash
2021-11-15  9:47 ` [igt-dev] [i-g-t 09/14] tests/kms_color_chamelium: New subtests for Plane degamma Bhanuprakash Modem
2021-11-15  9:47   ` Bhanuprakash Modem
2021-11-15  9:47 ` [igt-dev] [i-g-t 10/14] tests/kms_color_chamelium: New subtests for Plane CTM Bhanuprakash Modem
2021-11-15  9:47   ` Bhanuprakash Modem
2021-11-15  9:47 ` [igt-dev] [i-g-t 11/14] lib/igt_kms: Add pipe color mgmt properties Bhanuprakash Modem
2021-11-15  9:47   ` Bhanuprakash Modem
2021-11-18  9:34   ` [igt-dev] " Pekka Paalanen
2021-11-18  9:34     ` Pekka Paalanen
2021-11-15  9:47 ` [igt-dev] [i-g-t 12/14] kms_color_helper: Add helper functions to support logarithmic gamma mode Bhanuprakash Modem
2021-11-15  9:47   ` Bhanuprakash Modem
2021-11-18  9:45   ` [igt-dev] " Pekka Paalanen
2021-11-18  9:45     ` Pekka Paalanen
2022-01-03  4:07     ` [igt-dev] " Modem, Bhanuprakash
2022-01-03  4:07       ` Modem, Bhanuprakash
2021-11-26 16:55   ` [igt-dev] " Harry Wentland
2021-11-26 16:55     ` Harry Wentland
2022-01-03  4:08     ` [igt-dev] " Modem, Bhanuprakash
2022-01-03  4:08       ` Modem, Bhanuprakash
2021-11-15  9:47 ` [igt-dev] [i-g-t 13/14] tests/kms_color: Extended IGT tests " Bhanuprakash Modem
2021-11-15  9:47   ` Bhanuprakash Modem
2021-11-15  9:47 ` [igt-dev] [i-g-t 14/14] tests/kms_color_chamelium: " Bhanuprakash Modem
2021-11-15  9:47   ` Bhanuprakash Modem
2021-11-15 11:14 ` [igt-dev] ✓ Fi.CI.BAT: success for Add IGT support for plane color management Patchwork
2021-11-15 13:36 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2021-11-18  9:50 ` [igt-dev] [i-g-t 00/14] " Pekka Paalanen
2021-11-18  9:50   ` Pekka Paalanen
2021-11-26 16:54   ` Harry Wentland
2021-11-29  9:20     ` Pekka Paalanen [this message]
2021-11-29  9:20       ` Pekka Paalanen
2021-11-29 15:20       ` Harry Wentland
2022-01-03  4:11         ` [igt-dev] " Modem, Bhanuprakash
2022-01-03  4:11           ` Modem, Bhanuprakash
2022-01-04 22:01           ` Harry Wentland
2022-01-04  7:57 ` [igt-dev] [v2 i-g-t 00/15] " Bhanuprakash Modem
2022-01-04  7:57   ` [igt-dev] [v2 i-g-t 01/15] HAX: Get uapi headers to compile the IGT Bhanuprakash Modem
2022-01-04  7:57   ` [igt-dev] [v2 i-g-t 02/15] lib/igt_kms: Add plane color mgmt properties Bhanuprakash Modem
2022-01-04  7:57   ` [igt-dev] [v2 i-g-t 03/15] kms_color_helper: Add helper functions for plane color mgmt Bhanuprakash Modem
2022-01-04  7:57   ` [igt-dev] [v2 i-g-t 04/15] tests/kms_color: New subtests for Plane gamma Bhanuprakash Modem
2022-01-04  7:57   ` [igt-dev] [v2 i-g-t 05/15] tests/kms_color: New subtests for Plane degamma Bhanuprakash Modem
2022-01-04  7:57   ` [igt-dev] [v2 i-g-t 06/15] tests/kms_color: New subtests for Plane CTM Bhanuprakash Modem
2022-01-04  7:57   ` [igt-dev] [v2 i-g-t 07/15] tests/kms_color: New negative tests for plane level color mgmt Bhanuprakash Modem
2022-01-04  7:57   ` [igt-dev] [v2 i-g-t 08/15] tests/kms_color_chamelium: New subtests for Plane gamma Bhanuprakash Modem
2022-01-04  7:57   ` [igt-dev] [v2 i-g-t 09/15] tests/kms_color_chamelium: New subtests for Plane degamma Bhanuprakash Modem
2022-01-04  7:57   ` [igt-dev] [v2 i-g-t 10/15] tests/kms_color_chamelium: New subtests for Plane CTM Bhanuprakash Modem
2022-01-04  7:57   ` [igt-dev] [v2 i-g-t 11/15] lib/igt_kms: Add pipe color mgmt properties Bhanuprakash Modem
2022-01-04  7:57   ` [igt-dev] [v2 i-g-t 12/15] kms_color_helper: Add helper functions to support logarithmic gamma mode Bhanuprakash Modem
2022-01-04  7:57   ` [igt-dev] [v2 i-g-t 13/15] tests/kms_color: Extended IGT tests " Bhanuprakash Modem
2022-01-04  7:57   ` [igt-dev] [v2 i-g-t 14/15] tests/kms_color_chamelium: " Bhanuprakash Modem
2022-01-04  7:57   ` [igt-dev] [v2 i-g-t 15/15] HAX: Add color mgmt tests to BAT Bhanuprakash Modem

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=20211129112033.770d1c2a@eldfell \
    --to=ppaalanen@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=harry.wentland@amd.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=mukunda.pramodh.kumar@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.