[Intel-gfx] [PATCH 00/21] Add Support for Plane Color Lut and CSC features
Shankar, Uma
uma.shankar at intel.com
Wed Jun 2 20:22:33 UTC 2021
> -----Original Message-----
> From: Pekka Paalanen <ppaalanen at gmail.com>
> Sent: Wednesday, June 2, 2021 2:59 PM
> To: Shankar, Uma <uma.shankar at intel.com>
> Cc: intel-gfx at lists.freedesktop.org; dri-devel at lists.freedesktop.org; Modem,
> Bhanuprakash <bhanuprakash.modem at intel.com>; Harry Wentland
> <harry.wentland at amd.com>
> Subject: Re: [PATCH 00/21] Add Support for Plane Color Lut and CSC features
>
> On Tue, 1 Jun 2021 16:21:57 +0530
> Uma Shankar <uma.shankar at intel.com> wrote:
>
> > This is how a typical display color hardware pipeline looks like:
> > +-------------------------------------------+
> > | RAM |
> > | +------+ +---------+ +---------+ |
> > | | FB 1 | | FB 2 | | FB N | |
> > | +------+ +---------+ +---------+ |
> > +-------------------------------------------+
> > | Plane Color Hardware Block |
> > +--------------------------------------------+
> > | +---v-----+ +---v-------+ +---v------+ |
> > | | Plane A | | Plane B | | Plane N | |
> > | | DeGamma | | Degamma | | Degamma | |
> > | +---+-----+ +---+-------+ +---+------+ |
> > | | | | |
> > | +---v-----+ +---v-------+ +---v------+ |
> > | |Plane A | | Plane B | | Plane N | |
> > | |CSC/CTM | | CSC/CTM | | CSC/CTM | |
> > | +---+-----+ +----+------+ +----+-----+ |
> > | | | | |
> > | +---v-----+ +----v------+ +----v-----+ |
> > | | Plane A | | Plane B | | Plane N | |
> > | | Gamma | | Gamma | | Gamma | |
> > | +---+-----+ +----+------+ +----+-----+ |
> > | | | | |
> > +--------------------------------------------+
> > +------v--------------v---------------v-------|
> > || ||
> > || Pipe Blender ||
> > +--------------------+------------------------+
> > | | |
> > | +-----------v----------+ |
> > | | Pipe DeGamma | |
> > | | | |
> > | +-----------+----------+ |
> > | | Pipe Color |
> > | +-----------v----------+ Hardware |
> > | | Pipe CSC/CTM | |
> > | | | |
> > | +-----------+----------+ |
> > | | |
> > | +-----------v----------+ |
> > | | Pipe Gamma | |
> > | | | |
> > | +-----------+----------+ |
> > | | |
> > +---------------------------------------------+
> > |
> > v
> > Pipe Output
>
> Hi,
>
> this is an excellent picture. I have long been wanting schematics like that in the DRM
> UAPI documentation. Another note on that:
> https://lists.freedesktop.org/archives/dri-devel/2021-May/307310.html
>
> But the schematic for DRM UAPI documentation needs to be written in terms of the
> abstract KMS pipeline with property names spelled out, like in what Ville sketched in
> that email.
Sure Pekka, I can add that.
> > This patch series adds properties for plane color features. It adds
> > properties for degamma used to linearize data and CSC used for gamut
> > conversion. It also includes Gamma support used to again non-linearize
> > data as per panel supported color space. These can be utilize by user
> > space to convert planes from one format to another, one color space to
> > another etc.
>
> This is very much welcome!
>
> There is also the thread:
> https://lists.freedesktop.org/archives/dri-devel/2021-May/306726.html
>
> Everything mentioned will interact with each other by changing what the abstract
> KMS pixel pipeline does. I think you and Harry should probably look at each others'
> suggestions and see how to fit them all into a single abstract KMS pipeline.
>
> People are adding new pieces into KMS left and right, and I fear we lose sight of how
> everything will actually work together when all KMS properties are supposed to be
> generic and potentially present simultaneously. This is why I would very much like to
> have that *whole* abstract KMS pipeline documented with *everything*. Otherwise
> it is coming really hard fast to figure out how generic userspace should use all these
> KMS properties together.
>
> Or if there cannot be a single abstract KMS pipeline, then sure, have multiple, as long
> as they are documented and how userspace will know which pipeline it is dealing
> with, and what things are mutually exclusive so we can avoid writing userspace code
> for combinations that will never exist.
This is a good suggestion to have the whole pipeline and properties documented along with
the exact usages. We may end with 2 properties almost doing similar work but needed due to
underlying hardware, but we can get that properly documented and defined.
I will discuss with Harry and Ville as well to define this.
Regards,
Uma Shankar
>
> Thanks,
> pq
>
> > Userspace can take smart blending decisions and utilize these hardware
> > supported plane color features to get accurate color profile. The same
> > can help in consistent color quality from source to panel taking
> > advantage of advanced color features in hardware.
> >
> > These patches add the property interfaces and enable helper functions.
> > This series adds Intel's XE_LPD hw specific plane gamma feature. We
> > can build up and add other platform/hardware specific implementation
> > on top of this series.
> >
> > Credits: Special mention and credits to Ville Syrjala for coming up
> > with a design for this feature and inputs. This series is based on his
> > original design and idea.
> >
> > Note: Userspace support for this new UAPI will be done on Chrome. We
> > will notify the list once we have that ready for review.
> >
> > ToDo: State readout for this feature will be added next.
> >
> > Uma Shankar (21):
> > drm: Add Enhanced Gamma and color lut range attributes
> > drm: Add Plane Degamma Mode property
> > drm: Add Plane Degamma Lut property
> > drm/i915/xelpd: Define Degamma Lut range struct for HDR planes
> > drm/i915/xelpd: Add register definitions for Plane Degamma
> > drm/i915/xelpd: Enable plane color features
> > drm/i915/xelpd: Add color capabilities of SDR planes
> > drm/i915/xelpd: Program Plane Degamma Registers
> > drm/i915/xelpd: Add plane color check to glk_plane_color_ctl
> > drm/i915/xelpd: Initialize plane color features
> > drm/i915/xelpd: Load plane color luts from atomic flip
> > drm: Add Plane CTM property
> > drm: Add helper to attach Plane ctm property
> > drm/i915/xelpd: Define Plane CSC Registers
> > drm/i915/xelpd: Enable Plane CSC
> > drm: Add Plane Gamma Mode property
> > drm: Add Plane Gamma Lut property
> > drm/i915/xelpd: Define and Initialize Plane Gamma Lut range
> > drm/i915/xelpd: Add register definitions for Plane Gamma
> > drm/i915/xelpd: Program Plane Gamma Registers
> > drm/i915/xelpd: Enable plane gamma
> >
> > Documentation/gpu/drm-kms.rst | 90 +++
> > drivers/gpu/drm/drm_atomic.c | 1 +
> > drivers/gpu/drm/drm_atomic_state_helper.c | 12 +
> > drivers/gpu/drm/drm_atomic_uapi.c | 38 ++
> > drivers/gpu/drm/drm_color_mgmt.c | 177 +++++-
> > .../gpu/drm/i915/display/intel_atomic_plane.c | 6 +
> > .../gpu/drm/i915/display/intel_atomic_plane.h | 2 +
> > drivers/gpu/drm/i915/display/intel_color.c | 513 ++++++++++++++++++
> > drivers/gpu/drm/i915/display/intel_color.h | 2 +
> > .../drm/i915/display/skl_universal_plane.c | 15 +-
> > drivers/gpu/drm/i915/i915_drv.h | 3 +
> > drivers/gpu/drm/i915/i915_reg.h | 176 +++++-
> > include/drm/drm_mode_object.h | 2 +-
> > include/drm/drm_plane.h | 81 +++
> > include/uapi/drm/drm_mode.h | 58 ++
> > 15 files changed, 1170 insertions(+), 6 deletions(-)
> >
More information about the Intel-gfx
mailing list