public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
To: Harry Wentland <harry.wentland@amd.com>,
	Daniel Stone <daniel@fooishbar.org>
Cc: "Pekka Paalanen" <pekka.paalanen@collabora.com>,
	"Michel Dänzer" <michel.daenzer@mailbox.org>,
	"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>, "Leo Li" <sunpeng.li@amd.com>,
	"Rodrigo Siqueira" <siqueira@igalia.com>,
	"Alex Deucher" <alexander.deucher@amd.com>,
	"Christian König" <christian.koenig@amd.com>,
	"Ville Syrjälä" <ville.syrjala@linux.intel.com>,
	"Daniel Stone" <daniels@collabora.com>,
	"Dmitry Baryshkov" <dmitry.baryshkov@oss.qualcomm.com>,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	amd-gfx@lists.freedesktop.org, kernel@collabora.com,
	"Derek Foreman" <derek.foreman@collabora.com>,
	"Marius Vlad" <marius.vlad@collabora.com>
Subject: Re: [PATCH v5 0/3] Add "link bpc" DRM property
Date: Wed, 01 Apr 2026 14:46:42 +0200	[thread overview]
Message-ID: <6251230.iIbC2pHGDl@workhorse> (raw)
In-Reply-To: <CAPj87rOz=QvQE1CqshspTPkC5nSXW_WAxUf1rwa=w4zmPdgtQQ@mail.gmail.com>

Chiming in here to basically agree with Daniel and underline his point with
some evidence.

On Wednesday, 1 April 2026 10:40:15 Central European Summer Time Daniel Stone wrote:
> Hi Harry,
> 
> On Tue, 31 Mar 2026 at 18:47, Harry Wentland <harry.wentland@amd.com> wrote:
> > On 2026-03-31 08:50, Pekka Paalanen wrote:
> > > People who care about the picture quality down to these levels will
> > > likely want to know and learn about these techniques. They may also
> > > want to explicitly control them.
> > >
> > > In time, when these have been used enough in the wild, compositor
> > > developers will learn what makes a difference and what does not, so
> > > they will adjust their reporting to end users. The most important thing
> > > for the kernel is it offer an unambiguous and stable UAPI for these.
> > >
> > > Policy belongs in userspace.
> >
> > I don't like this as a blanket statement. There is a lot of policy that
> > intersects with HW nuances, whether it comes to power or otherwise.
> > Taking away driver vendor's abilities to optimize will hurt the Linux
> > ecosystem in the long run.
> >
> > IMO this needs to be evaluated on a case by case basis. There are
> > many places where it does make sense to give userspace a greater
> > say on policy, but we don't want to push driver (HW specific) logic
> > up into userspace.
> 
> It's not something that's _just_ specific to a particular
> display-controller manufacturer or a particular IP generation though.
> It very much depends on the usecase.
> 
> If you have a laptop and you're trying to give a presentation,
> applying dithering and/or DSC makes a lot of sense: you don't want
> your battery to die, and the projector's probably going to obliterate
> half the colour anyway, so might as well as go for the most efficient
> thing.
> 
> If your laptop is plugged into your big display at home to write code,
> applying DSC to cram the highest possible resolution + refresh in
> would make sense. But if dithering only results in a marginal power
> saving, and your laptop is charging anyway - why bother degrading
> visual acuity?

This kind of encourages me to say that the meaning of "bpc" here should
either be reduced by all compression (of which I see dithering as a
primitive variant of) or left at the uncompressed bpc for all compression.

I'm leaning towards the latter. 10bpc lossily compressed to 8bpc is likely
a better choice than plain 8bpc for visual clarity, so making them look the
same to userspace would result in some odd choices. At the same time, having
a separate way for userspace to know of any compression techniques applied
on the output would disambiguate that for those compositors that really care,
and would also mean we don't have to make subjective judgement calls for
anyone.

With regards to DSC for example, any vendor's decision to enable it by
default does not necessarily give us a good precedent for what side to
err on. amdgpu flips on DSC when it doesn't have to, and this has rubbed
some people wrong: https://gitlab.freedesktop.org/drm/amd/-/work_items/2043

The goal isn't so much to push driver logic into userspace, but to give
userspace a view into what the driver did, so that it can decide whether
it's happy or wants to try again differently. This means userspace isn't
ossifying on a set of parameters that made sense a decade ago; drivers can
still modify their decisions as they develop and hardware gains new
techniques.

> 
> If you're a media player, then you're in a good position to know what
> would be good to go over the wire, because you know (& are possibly in
> control of) the format over what comes in in the first place.
> 
> But everyone's tradeoffs are different, which is why sometimes the
> best choice is to ultimately leave it up to the user. If you dig into
> any media playback device (STBs running Android TV, Apple TV, Fire TV,
> et al), you'll see that all of them ultimately allow overrides for bpc
> / colour model / subsampling / etc. Those aren't just there for fun,
> but because they are usable to real people, and it's not possible for
> Amlogic or MediaTek or Rockchip or whoever to statically decide that a
> certain configuration is going to be best everywhere.
> 
> Right now we have drivers making magic per-vendor/SKU decisions,
> without even so much as a feedback mechanism to userspace (unless you
> count debugfs, maybe) so it can even figure out what's going on, let
> alone control it. To properly support some of those usecases,
> userspace needs to be able to control what goes out on the wire, but
> as a first step, it just wants to be informed of what the driver even
> did with the properties we gave it.
> 
> The end game of this isn't Weston logging something to stdout, it's to
> surface things to userspace so it can guide the kernel into making a
> good decision for usecases that may not be ones the silicon vendor
> decided was 'probably the best thing' however many years ago.
> 
> Cheers,
> Daniel
> 

Kind regards,
Nicolas Frattaroli



  parent reply	other threads:[~2026-04-01 12:47 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-19 12:28 [PATCH v5 0/3] Add "link bpc" DRM property Nicolas Frattaroli
2026-03-19 12:28 ` [PATCH v5 1/3] drm/connector: Add a 'link bpc' property Nicolas Frattaroli
2026-03-19 12:28 ` [PATCH v5 2/3] drm/connector: hdmi: Add support for " Nicolas Frattaroli
2026-03-19 12:28 ` [PATCH v5 3/3] drm/amd/display: " Nicolas Frattaroli
2026-03-20 14:32 ` [PATCH v5 0/3] Add "link bpc" DRM property Michel Dänzer
2026-03-20 18:02   ` Nicolas Frattaroli
2026-03-23 10:55     ` Michel Dänzer
2026-03-23 12:05       ` Nicolas Frattaroli
2026-03-23 14:38         ` Michel Dänzer
2026-03-23 16:55           ` Nicolas Frattaroli
2026-03-23 17:27             ` Michel Dänzer
2026-03-24 15:25               ` Nicolas Frattaroli
2026-03-24 16:44                 ` Michel Dänzer
2026-03-26 12:17                   ` Nicolas Frattaroli
2026-03-30 16:57                     ` Michel Dänzer
2026-03-30 18:52                       ` Harry Wentland
2026-03-31 12:50                         ` Pekka Paalanen
2026-03-31 17:47                           ` Harry Wentland
2026-04-01  8:40                             ` Daniel Stone
2026-04-01 11:10                               ` Ville Syrjälä
2026-04-01 11:43                                 ` Daniel Stone
2026-04-01 12:46                               ` Nicolas Frattaroli [this message]
2026-04-02 17:06                                 ` Harry Wentland
2026-04-01 13:57                               ` Ville Syrjälä
2026-04-01 14:17                                 ` Daniel Stone
2026-04-02 17:01                               ` Harry Wentland
2026-03-26 13:53                   ` Pekka Paalanen
2026-03-30 19:01                     ` Harry Wentland
2026-03-31 10:28                       ` Pekka Paalanen
2026-03-31 17:37                         ` Harry Wentland
2026-03-31  8:01                     ` Michel Dänzer
2026-03-31 12:38                       ` Pekka Paalanen
2026-03-31 12:56                         ` Michel Dänzer
2026-03-31 14:21                           ` Pekka Paalanen
2026-04-01  7:46                             ` Michel Dänzer
     [not found]     ` <CAEsyxyhnALbkaF+9nav8FkW5gcJdtTw5CHhK3Hf8f=fymFiOKw@mail.gmail.com>
2026-03-23 11:44       ` Michel Dänzer
2026-04-01 11:57 ` Xaver Hugl
2026-04-01 12:11   ` Ville Syrjälä
2026-04-01 12:25     ` Daniel Stone
2026-04-01 12:56       ` Ville Syrjälä
2026-04-01 12:14   ` Nicolas Frattaroli
2026-04-03 10:23     ` Michel Dänzer

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=6251230.iIbC2pHGDl@workhorse \
    --to=nicolas.frattaroli@collabora.com \
    --cc=airlied@gmail.com \
    --cc=alexander.deucher@amd.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=christian.koenig@amd.com \
    --cc=daniel@fooishbar.org \
    --cc=daniels@collabora.com \
    --cc=derek.foreman@collabora.com \
    --cc=dmitry.baryshkov@oss.qualcomm.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=harry.wentland@amd.com \
    --cc=kernel@collabora.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=marius.vlad@collabora.com \
    --cc=michel.daenzer@mailbox.org \
    --cc=mripard@kernel.org \
    --cc=pekka.paalanen@collabora.com \
    --cc=simona@ffwll.ch \
    --cc=siqueira@igalia.com \
    --cc=sunpeng.li@amd.com \
    --cc=tzimmermann@suse.de \
    --cc=ville.syrjala@linux.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox