[Intel-gfx] [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 Intel-gfx
mailing list