[RFC v5 0/8] Add Plane Color Properties

Lankhorst, Maarten maarten.lankhorst at intel.com
Wed Sep 26 07:35:15 UTC 2018


Hey,

sön 2018-09-16 klockan 13:45 +0530 skrev Uma Shankar:
> This is how a typical display color hardware pipeline looks like:
>  +-------------------------------------------+
>  |                RAM                        |
>  |  +------+    +---------+    +---------+   |
>  |  | FB 1 |    |  FB 2   |    | FB N    |   |
>  |  +------+    +---------+    +---------+   |
>  +-------------------------------------------+
>        |  Plane Color Hardware Block |
>  +--------------------------------------------+

Should be some mention of color conversion (YUV -> RGB) through
drm_color_encoding and drm_color_range enums interacting here?

>  | +---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          |             |
> >        |                      |             |
> >        +-----------+----------+             |
> >                    |                        |
Likewise, should probably be some mention about setting colorspace on
the connector, so the output will knows what format is used?

Perhaps pull it to this series since one can't work really well without
the other?
> 
> +---------------------------------------------+
>                      |
>                      v
>                Pipe Output
> 
> This patch series adds properties for plane color features. It adds
> properties for degamma used to linearize data, CSC used for gamut
> conversion, and gamma 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.
> 
> Usersapce 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 just add the property interfaces and enable helper
> functions.
> 
> This series adds Intel Gen9 specific plane gamma feature. We can
> build up and add other platform/hardware specific implementation
> on top of this series
> 
> Note: This is just to get a design feedback whether these interfaces
> look ok. Based on community feedback on interfaces, we will implement
> IGT tests to validate plane color features. This is un-tested
> currently.
> 
> Userspace implementation using these properties have been done in drm
> hwcomposer by "Alexandru-Cosmin Gheorghe Alexandru-Cosmin.Gheorghe at ar
> m.com"
> from ARM. A merge request has been opened by Alexandru for
> drm_hwcomposer,
> implementing the property changes for the same. Please review that as
> well:
> https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/merge_re
> quests/25
> 
> v2: Dropped legacy gamma table for plane as suggested by Maarten.
> Added
> Gen9/BDW plane gamma feature and rebase on tot.
> 
> v3: Added a new drm_color_lut_ext structure to accommodate 32 bit
> precision
> entries, pointed to by Brian, Starkey for HDR usecases. Addressed
> Sean,Paul
> comments and moved plane color properties to drm_plane instead of
> mode_config. Added property documentation as suggested by Daniel,
> Vetter.
> Fixed a rebase fumble which occurred in v2, pointed by Emil Velikov.
> 
> v4: Rebase
> 
> v5: Added "Display Color Hardware Pipeline" flow to kernel
> documentation as suggested by "Ville Syrjala" and "Brian Starkey".
> Moved the property creation to drm_color_mgmt.c file to consolidate
> all color operations at one place. Addressed Alexandru's review
> comments.
> 
> Uma Shankar (8):
>   drm: Add Enhanced Gamma LUT precision structure
>   drm: Add Plane Degamma properties
>   drm: Add Plane CTM property
>   drm: Add Plane Gamma properties
>   drm: Define helper function for plane color enabling
>   drm/i915: Enable plane color features
>   drm/i915: Implement Plane Gamma for Bdw and Gen9 platforms
>   drm/i915: Load plane color luts from atomic flip
> 
>  Documentation/gpu/drm-kms.rst             |  99
> +++++++++++++++++++++
>  drivers/gpu/drm/drm_atomic.c              |  32 +++++++
>  drivers/gpu/drm/drm_atomic_helper.c       |  13 +++
>  drivers/gpu/drm/drm_color_mgmt.c          | 140
> +++++++++++++++++++++++++++++-
>  drivers/gpu/drm/i915/i915_drv.h           |   5 ++
>  drivers/gpu/drm/i915/i915_pci.c           |   5 +-
>  drivers/gpu/drm/i915/i915_reg.h           |  25 ++++++
>  drivers/gpu/drm/i915/intel_atomic_plane.c |   4 +
>  drivers/gpu/drm/i915/intel_color.c        |  80 +++++++++++++++++
>  drivers/gpu/drm/i915/intel_device_info.h  |   5 ++
>  drivers/gpu/drm/i915/intel_display.c      |   4 +
>  drivers/gpu/drm/i915/intel_drv.h          |  10 +++
>  drivers/gpu/drm/i915/intel_sprite.c       |   4 +
>  include/drm/drm_color_mgmt.h              |   6 ++
>  include/drm/drm_plane.h                   |  61 +++++++++++++
>  include/uapi/drm/drm_mode.h               |  15 ++++
>  16 files changed, 504 insertions(+), 4 deletions(-)
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3282 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20180926/0362f3e4/attachment.bin>


More information about the dri-devel mailing list