From: Daniel Vetter <daniel@ffwll.ch>
To: Uma Shankar <uma.shankar@intel.com>
Cc: dcastagna@chromium.org, intel-gfx@lists.freedesktop.org,
emil.l.velikov@gmail.com, dri-devel@lists.freedesktop.org,
seanpaul@chromium.org, ville.syrjala@intel.com, sam@ravnborg.org,
maarten.lankhorst@intel.com
Subject: Re: [v3 0/7] Add Multi Segment Gamma Support
Date: Wed, 17 Apr 2019 09:28:19 +0200 [thread overview]
Message-ID: <20190417072819.GM13337@phenom.ffwll.local> (raw)
In-Reply-To: <1555064463-18479-1-git-send-email-uma.shankar@intel.com>
On Fri, Apr 12, 2019 at 03:50:56PM +0530, Uma Shankar wrote:
> This series adds support for programmable gamma modes and
> exposes a property interface for the same. Also added,
> support for multi segment gamma mode introduced in ICL+
>
> It creates GAMMA_MODE property interface. This is an enum
> property with values as blob_id's and exposes
> the various gamma modes supported and the lut ranges Getting the
> blob id in userspace, user can get the mode supported and
> also the range of gamma mode supported with number of lut
> coefficients. It can then set one of the modes using this
> enum property.
>
> Lut values will be sent through already available GAMMA_LUT
> blob property.
>
> It also introduces a CLIENT CAP for advanced GAMMA_MODE.
> This is for user to set the and use advance gamma mode and older
> userspace can continue using the legacy paths.
>
> v2: Used Ville's design and approach to define the interfaces.
> Addressed Matt Roper's review feedback and re-ordered the
> patches.
>
> v3: Converged to 1 property interface and introduced a Client cap
> as suggested by Ville. Fixed review comments received.
>
> Uma Shankar (5):
> drm/i915/icl: Add register definitions for Multi Segmented gamma
> drm/i915/icl: Add support for multi segmented gamma mode
> drm/i915: Attach gamma mode property
> drm: Add Client Cap for advance gamma mode
> drm/i915: Enable advance gamma mode
>
> Ville Syrjälä (2):
> drm: Add gamma mode property
> drm/i915: Define color lut range structure
Bunch of higher level comments after some internal discussions:
- we need the userspace for this, can't design new uapi without involving
the compositor folks for hdr.
- single property doesn't work: Once userspace has set it, the old blob
property with the list of all options is gone. We need one read-only
property for the list of options, plus a 2nd property that userspace can
set. This is a general rule for more complex properties, where the usual
property metadata isn't enough to describe the possible options.
- no caps for properties. Yes that gives us a theoretical problem, no in
practice it doesn't matter, since people don't even care enough to make
e.g. fbdev resetting work today for everything. Long form discussion,
see here:
https://blog.ffwll.ch/2016/01/vt-switching-with-atomic-modeset.html
Nothing happened in this area ever since I typed this up, so I guess
it's really not a real-world concern.
- Simplest path forward would be if we accept different LUT sizes than the
one advertised (we already do that for legacy gamma, and this is
officially what we had in mind too), and the kernel automatically picks
the best lut configuration. Will be somewhat awkard for the
multi-segment lut, but would decouple the uapi discussion a bit.
- Frankly the uapi proposed looks like fake generic - it tries to model
all possibilities in a generic way, when really userspace needs to have
special code for special pipelines. To me this feels like the pixel
modifier discussion all over, where we had multi-year discussions on
trying to describe everything in generic terms or just have fairly
opaque enumeration of special cases. Both approaches have been tried.
For this I'm leaning towards the opaque color pipeline description for
the more fancy stuff.
Either way, settling on the right uapi will take some time, and will
need a pile of people to be involved.
Cheers, Daniel
>
> drivers/gpu/drm/drm_atomic_uapi.c | 8 +
> drivers/gpu/drm/drm_color_mgmt.c | 77 ++++
> drivers/gpu/drm/drm_ioctl.c | 5 +
> drivers/gpu/drm/i915/i915_reg.h | 17 +
> drivers/gpu/drm/i915/intel_color.c | 735 ++++++++++++++++++++++++++++++++++-
> drivers/gpu/drm/i915/intel_display.c | 3 +
> include/drm/drm_atomic.h | 1 +
> include/drm/drm_color_mgmt.h | 8 +
> include/drm/drm_crtc.h | 17 +
> include/drm/drm_file.h | 8 +
> include/drm/drm_mode_config.h | 6 +
> include/uapi/drm/drm.h | 2 +
> include/uapi/drm/drm_mode.h | 38 ++
> 13 files changed, 918 insertions(+), 7 deletions(-)
>
> --
> 1.9.1
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2019-04-17 7:28 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-12 10:20 [v3 0/7] Add Multi Segment Gamma Support Uma Shankar
2019-04-12 10:20 ` [v3 1/7] drm: Add gamma mode property Uma Shankar
2019-04-16 7:28 ` Daniel Vetter
2019-04-12 10:20 ` [v3 2/7] drm/i915: Define color lut range structure Uma Shankar
2019-04-12 10:20 ` [v3 3/7] drm/i915/icl: Add register definitions for Multi Segmented gamma Uma Shankar
2019-04-12 10:21 ` [v3 4/7] drm/i915/icl: Add support for multi segmented gamma mode Uma Shankar
2019-04-12 10:21 ` [v3 5/7] drm/i915: Attach gamma mode property Uma Shankar
2019-04-12 10:21 ` [v3 6/7] drm: Add Client Cap for advance gamma mode Uma Shankar
2019-04-15 10:57 ` Lankhorst, Maarten
2019-04-15 12:43 ` [Intel-gfx] " Ville Syrjälä
2019-04-16 8:54 ` Lankhorst, Maarten
2019-04-15 13:56 ` Sharma, Shashank
2019-04-15 14:12 ` Lankhorst, Maarten
2019-04-15 14:29 ` Sharma, Shashank
2019-04-15 19:20 ` Daniel Vetter
2019-04-16 15:06 ` Ville Syrjälä
2019-04-12 10:21 ` [v3 7/7] drm/i915: Enable " Uma Shankar
2019-04-12 10:39 ` ✗ Fi.CI.CHECKPATCH: warning for Add Multi Segment Gamma Support (rev3) Patchwork
2019-04-12 12:50 ` ✗ Fi.CI.BAT: failure " Patchwork
2019-04-17 7:28 ` Daniel Vetter [this message]
2019-04-17 11:57 ` [v3 0/7] Add Multi Segment Gamma Support Ville Syrjälä
2019-04-18 7:13 ` Daniel Vetter
2019-04-18 13:11 ` Ville Syrjälä
2019-04-23 6:52 ` Daniel Vetter
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=20190417072819.GM13337@phenom.ffwll.local \
--to=daniel@ffwll.ch \
--cc=dcastagna@chromium.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=emil.l.velikov@gmail.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=maarten.lankhorst@intel.com \
--cc=sam@ravnborg.org \
--cc=seanpaul@chromium.org \
--cc=uma.shankar@intel.com \
--cc=ville.syrjala@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