[RFC v5 0/8] Add Plane Color Properties

Shankar, Uma uma.shankar at intel.com
Wed Sep 26 08:59:51 UTC 2018



>-----Original Message-----
>From: Lankhorst, Maarten
>Sent: Wednesday, September 26, 2018 1:05 PM
>To: Shankar, Uma <uma.shankar at intel.com>; intel-gfx at lists.freedesktop.org;
>dri-devel at lists.freedesktop.org
>Cc: Syrjala, Ville <ville.syrjala at intel.com>; alexandru-
>cosmin.gheorghe at arm.com; emil.l.velikov at gmail.com;
>seanpaul at chromium.org; harry.wentland at amd.com; brian.starkey at arm.com;
>dcastagna at chromium.org; Sharma, Shashank <shashank.sharma at intel.com>
>Subject: Re: [RFC v5 0/8] Add Plane Color Properties
>
>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?

Thanks Maarten for taking it up for review.

Sure, I can add those details as well 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?
>>

I put it here for painting the complete color hardware pipeline. Since this was
just for plane color features, kept the colorspace series separate which was mainly
for pipe/connector . So even now if user wants to blend various layers using display
plane hardware, it can do that.

I can combine them together if you recommend. But I feel though they both are related
but they can be enabled/used independently. Will do as you suggest.

Regards,
Uma Shankar

>> +---------------------------------------------+
>>                      |
>>                      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(-)
>>


More information about the dri-devel mailing list