public inbox for linux-mediatek@lists.infradead.org
 help / color / mirror / Atom feed
From: Harry Wentland <harry.wentland@amd.com>
To: "Sebastian Wick" <sebastian@sebastianwick.net>,
	"Daniel Stone" <daniel@fooishbar.org>,
	"Nícolas F. R. A. Prado" <nfraprado@collabora.com>
Cc: Xaver Hugl <xaver.hugl@gmail.com>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
	Chun-Kuang Hu <chunkuang.hu@kernel.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>,
	Alex Hung <alex.hung@amd.com>,
	wayland-devel@lists.freedesktop.org, leo.liu@amd.com,
	ville.syrjala@linux.intel.com, pekka.paalanen@collabora.com,
	mwen@igalia.com, jadahl@redhat.com, sebastian.wick@redhat.com,
	shashank.sharma@amd.com, agoins@nvidia.com, joshua@froggi.es,
	mdaenzer@redhat.com, aleixpol@kde.org, victoria@system76.com,
	uma.shankar@intel.com, quic_naseer@quicinc.com,
	quic_cbraga@quicinc.com, quic_abhinavk@quicinc.com,
	marcan@marcan.st, Liviu.Dudau@arm.com, sashamcintosh@google.com,
	chaitanya.kumar.borah@intel.com, louis.chauvet@bootlin.com,
	mcanal@igalia.com, kernel@collabora.com, daniels@collabora.com,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	linux-mediatek@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	Simona Vetter <simona.vetter@ffwll.ch>
Subject: Re: [PATCH RFC 1/5] drm: Support post-blend color pipeline API
Date: Mon, 29 Sep 2025 06:33:03 -0400	[thread overview]
Message-ID: <35328505-8e2c-48df-840d-25e1a7521442@amd.com> (raw)
In-Reply-To: <7a25beb8-6b81-4652-b509-b6410ae1dec1@app.fastmail.com>



On 2025-09-26 09:51, Sebastian Wick wrote:
> (Sorry for re-sending; used a web mail client which send html)
> 
> On Mon, Sep 15, 2025, at 2:31 PM, Daniel Stone wrote:
>> Hi Nícolas,
>>
>> On Wed, 3 Sept 2025 at 19:43, Nícolas F. R. A. Prado
>> <nfraprado@collabora.com> wrote:
>>> On Tue, 2025-08-26 at 13:25 +0100, Daniel Stone wrote:
>>> Based on this discussion, this is my understanding for the changes
>>> desired on the series and their reasonings:
>>>
>>> 1. Add a driver cap, DRM_CAP_POST_BLEND_COLOR_PIPELINE, which drivers
>>> will use to signal they support post-blend color pipelines.
>>>    - Reason: Allow userspace to figure out that the driver doesn't
>>> support post-blend color pipelines and choose to not set the client
>>> cap, DRM_CLIENT_CAP_POST_BLEND_COLOR_PIPELINE, so it can use legacy
>>> color management instead.
>>> 2. Make it so setting the client cap,
>>> DRM_CLIENT_CAP_POST_BLEND_COLOR_PIPELINE, fails if the driver cap,
>>> DRM_CAP_POST_BLEND_COLOR_PIPELINE, isn't set
>>>    - Reason: Prevent userspace from making color management unusable if
>>> the driver doesn't support post-blend color pipelines, as the legacy
>>> color-management properties (GAMMA_LUT, DEGAMMA_LUT, CTM) would be
>>> unwriteable with the client cap set.
>>
>> Definitely.
>>
>>> 3. Make legacy color-management properties (GAMMA_LUT, DEGAMMA_LUT,
>>> CTM) read-only if the client cap,
>>> DRM_CLIENT_CAP_POST_BLEND_COLOR_PIPELINE, is set
>>>    - Reason: Allow drm_info to print legacy color management
>>> configuration while still enabling post-blend color pipelines through
>>> the client cap. Also to allow smooth handover from pre-colorop
>>> userspace client to colorop-ready userspace client, as the latter can
>>> now replicate the legacy color configuration through the colorops.
>>
>> I think yes, but I don't really feel strongly about this. If others
>> involved have stronger opinions, I'm happy to yield.
> 
> So I'm going to argue that making the properties read-only or read-write is useless.
> 
> The only case where knowing the color pipeline of the previous user would be useful is if you want to re-use the framebuffer of said user. Otherwise, the color pipeline and the generated framebuffer have to somehow just match to produce the desired output and that does not require any previous state, making the legacy properties useless.
> 
> If we genuinely believe that this is something to be supported, then my question is why the new color pipeline should not be able to accurate reflect the state of the previous user, even if they used the legacy props?
> 
> The hardware was able to get into some state based on the legacy props, so it will be able to get into the same state with the color pipeline props; it's "just" a matter of exposing the right pipeline.
> 
> If we are not able to accurate reflect the previous state with the pipeline props, then use space will see inconsistent state between the legacy and color pipeline props. Which state is the right one? We cannot know. The previous user could have used either one. So having the legacy props does not help because we don't know if we should use them or the pipeline state.
> 
> So, I would argue that we should *remove* the legacy props if DRM_CLIENT_CAP_POST_BLEND_COLOR_PIPELINE is set. If the handover is relevant for a driver, they should ensure the legacy props state translates to the correct color pipeline state.

I tend to agree. The DRM driver cap seems to complicate the handling for 
userspace and drivers, which makes the whole mechanism more fragile, all 
to work around a commonly known short-coming of DRM/KMS, which is the 
default state problem when transitioning between userspace clients.

Harry

> 
>>> Side note: Smooth handover back to pre-colorop userspace after tweaking
>>> the colorops to something else would not be possible without making the
>>> legacy properties writable too, so that the client could update them to
>>> match the colorops setting before switching back. I don't imagine this
>>> would be a common use case, and colorops are a superset of the legacy
>>> properties so there are cases where it wouldn't even be possible to
>>> replicate the colorop setting on the legacy properties, but thought I'd
>>> mention this limitation for completeness' sake.
>>
>> That's a totally acceptable tradeoff. We don't have a standard
>> inter-client capability handshake, so if downgrading from a
>> newer/more-capable to an older/less-capable client is a bit janky,
>> that's OK. There's only so much we can do given the original design
>> decision for the KMS core to not be opinionated about a 'golden state'
>> that could be used as a reference for userspace to work from as a
>> base.
>>
>>> Also, as Xaver noted, this feedback also applies to pre-blend pipelines
>>> and its legacy color-management properties (COLOR_ENCODING,
>>> COLOR_RANGE), so the same changes would be desirable there for the same
>>> reasons. So we should share this feedback on that series as well.
>>
>> Yep.
>>
>> Cheers,
>> Daniel
>>



  reply	other threads:[~2025-09-29 10:33 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-22 18:36 [PATCH RFC 0/5] Introduce support for post-blend color pipeline Nícolas F. R. A. Prado
2025-08-22 18:36 ` [PATCH RFC 1/5] drm: Support post-blend color pipeline API Nícolas F. R. A. Prado
2025-08-25 13:34   ` Daniel Stone
2025-08-25 18:45     ` Xaver Hugl
2025-08-26 12:25       ` Daniel Stone
2025-09-03 18:42         ` Nícolas F. R. A. Prado
2025-09-15 12:31           ` Daniel Stone
2025-09-26 13:51             ` Sebastian Wick
2025-09-29 10:33               ` Harry Wentland [this message]
     [not found]             ` <2a985767-0fe1-40fc-b45e-921bbf201e07@app.fastmail.com>
2025-09-30 12:20               ` Daniel Stone
2025-10-02  8:00                 ` Pekka Paalanen
2025-08-27 11:17   ` Sebastian Wick
2025-08-27 11:32     ` Daniel Stone
2025-09-05 17:55   ` Louis Chauvet
2025-09-09 19:31     ` Nícolas F. R. A. Prado
2025-08-22 18:36 ` [PATCH RFC 2/5] drm/colorop: Export drm_colorop_cleanup() so drivers can extend it Nícolas F. R. A. Prado
2025-09-05 17:55   ` Louis Chauvet
2025-08-22 18:36 ` [PATCH RFC 3/5] drm/mediatek: Support post-blend colorops for gamma and ctm Nícolas F. R. A. Prado
2025-09-05 17:55   ` Louis Chauvet
2025-08-22 18:36 ` [PATCH RFC 4/5] drm/mediatek: ccorr: Support post-blend color pipeline API Nícolas F. R. A. Prado
2025-08-22 18:36 ` [PATCH RFC 5/5] drm/mediatek: gamma: " Nícolas F. R. A. Prado

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=35328505-8e2c-48df-840d-25e1a7521442@amd.com \
    --to=harry.wentland@amd.com \
    --cc=Liviu.Dudau@arm.com \
    --cc=agoins@nvidia.com \
    --cc=airlied@gmail.com \
    --cc=aleixpol@kde.org \
    --cc=alex.hung@amd.com \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=chaitanya.kumar.borah@intel.com \
    --cc=chunkuang.hu@kernel.org \
    --cc=daniel@fooishbar.org \
    --cc=daniels@collabora.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jadahl@redhat.com \
    --cc=joshua@froggi.es \
    --cc=kernel@collabora.com \
    --cc=leo.liu@amd.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=louis.chauvet@bootlin.com \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=marcan@marcan.st \
    --cc=matthias.bgg@gmail.com \
    --cc=mcanal@igalia.com \
    --cc=mdaenzer@redhat.com \
    --cc=mripard@kernel.org \
    --cc=mwen@igalia.com \
    --cc=nfraprado@collabora.com \
    --cc=p.zabel@pengutronix.de \
    --cc=pekka.paalanen@collabora.com \
    --cc=quic_abhinavk@quicinc.com \
    --cc=quic_cbraga@quicinc.com \
    --cc=quic_naseer@quicinc.com \
    --cc=sashamcintosh@google.com \
    --cc=sebastian.wick@redhat.com \
    --cc=sebastian@sebastianwick.net \
    --cc=shashank.sharma@amd.com \
    --cc=simona.vetter@ffwll.ch \
    --cc=simona@ffwll.ch \
    --cc=tzimmermann@suse.de \
    --cc=uma.shankar@intel.com \
    --cc=victoria@system76.com \
    --cc=ville.syrjala@linux.intel.com \
    --cc=wayland-devel@lists.freedesktop.org \
    --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