From: Uma Shankar <uma.shankar@intel.com> To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: harry.wentland@amd.com, ville.syrjala@linux.intel.com, ppaalanen@gmail.com, brian.starkey@arm.com, sebastian@sebastianwick.net, Shashank.Sharma@amd.com, Uma Shankar <uma.shankar@intel.com> Subject: [Intel-gfx] [RFC v2 00/22] Add Support for Plane Color Lut and CSC features Date: Tue, 7 Sep 2021 03:08:42 +0530 [thread overview] Message-ID: <20210906213904.27918-1-uma.shankar@intel.com> (raw) 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 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. 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 in alignment with weston and general opensource community. Discussion ongoing with Harry Wentland, Pekka and community on color pipeline and UAPI design. Harry's RFC below: https://patchwork.freedesktop.org/series/89506/ We need to converge on a common UAPI interface which caters to all the modern color hardware pipelines. ToDo: State readout for this feature will be added next. v2: Added UAPI description and added change in the rfc section of kernel Documentation folder Uma Shankar (22): drm: RFC for Plane Color Hardware Pipeline 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 +++ Documentation/gpu/rfc/drm_color_pipeline.rst | 167 ++++++ 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 ++ 16 files changed, 1337 insertions(+), 6 deletions(-) create mode 100644 Documentation/gpu/rfc/drm_color_pipeline.rst -- 2.26.2
WARNING: multiple messages have this Message-ID (diff)
From: Uma Shankar <uma.shankar@intel.com> To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: harry.wentland@amd.com, ville.syrjala@linux.intel.com, ppaalanen@gmail.com, brian.starkey@arm.com, sebastian@sebastianwick.net, Shashank.Sharma@amd.com, Uma Shankar <uma.shankar@intel.com> Subject: [RFC v2 00/22] Add Support for Plane Color Lut and CSC features Date: Tue, 7 Sep 2021 03:08:42 +0530 [thread overview] Message-ID: <20210906213904.27918-1-uma.shankar@intel.com> (raw) 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 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. 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 in alignment with weston and general opensource community. Discussion ongoing with Harry Wentland, Pekka and community on color pipeline and UAPI design. Harry's RFC below: https://patchwork.freedesktop.org/series/89506/ We need to converge on a common UAPI interface which caters to all the modern color hardware pipelines. ToDo: State readout for this feature will be added next. v2: Added UAPI description and added change in the rfc section of kernel Documentation folder Uma Shankar (22): drm: RFC for Plane Color Hardware Pipeline 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 +++ Documentation/gpu/rfc/drm_color_pipeline.rst | 167 ++++++ 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 ++ 16 files changed, 1337 insertions(+), 6 deletions(-) create mode 100644 Documentation/gpu/rfc/drm_color_pipeline.rst -- 2.26.2
next reply other threads:[~2021-09-06 21:01 UTC|newest] Thread overview: 154+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-09-06 21:38 Uma Shankar [this message] 2021-09-06 21:38 ` [RFC v2 00/22] Add Support for Plane Color Lut and CSC features Uma Shankar 2021-09-06 21:26 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Add Support for Plane Color Lut and CSC features (rev2) Patchwork 2021-09-06 21:30 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork 2021-09-06 21:38 ` [Intel-gfx] [RFC v2 01/22] drm: RFC for Plane Color Hardware Pipeline Uma Shankar 2021-09-06 21:38 ` Uma Shankar 2021-10-12 10:30 ` Pekka Paalanen 2021-10-12 10:30 ` [Intel-gfx] " Pekka Paalanen 2021-10-12 10:35 ` Simon Ser 2021-10-12 10:35 ` [Intel-gfx] " Simon Ser 2021-10-12 12:00 ` Pekka Paalanen 2021-10-12 12:00 ` [Intel-gfx] " Pekka Paalanen 2021-10-12 19:11 ` Shankar, Uma 2021-10-12 19:11 ` [Intel-gfx] " Shankar, Uma 2021-10-13 7:25 ` Pekka Paalanen 2021-10-13 7:25 ` [Intel-gfx] " Pekka Paalanen 2021-10-14 19:46 ` Shankar, Uma 2021-10-14 19:46 ` [Intel-gfx] " Shankar, Uma 2021-10-12 20:58 ` Shankar, Uma 2021-10-12 20:58 ` [Intel-gfx] " Shankar, Uma 2021-10-13 8:30 ` Pekka Paalanen 2021-10-13 8:30 ` [Intel-gfx] " Pekka Paalanen 2021-10-14 19:44 ` Shankar, Uma 2021-10-14 19:44 ` [Intel-gfx] " Shankar, Uma 2021-10-15 7:42 ` Pekka Paalanen 2021-10-15 7:42 ` [Intel-gfx] " Pekka Paalanen 2021-10-26 15:11 ` Harry Wentland 2021-10-26 15:11 ` [Intel-gfx] " Harry Wentland 2021-10-26 15:36 ` Harry Wentland 2021-10-26 15:36 ` [Intel-gfx] " Harry Wentland 2021-10-27 8:00 ` Pekka Paalanen 2021-10-27 8:00 ` [Intel-gfx] " Pekka Paalanen 2021-10-27 12:48 ` Harry Wentland 2021-10-27 12:48 ` Harry Wentland 2021-10-26 15:40 ` Harry Wentland 2021-10-26 15:40 ` [Intel-gfx] " Harry Wentland 2021-11-23 15:05 ` Harry Wentland 2021-11-23 15:05 ` [Intel-gfx] " Harry Wentland 2021-11-25 20:43 ` Shankar, Uma 2021-11-25 20:43 ` [Intel-gfx] " Shankar, Uma 2021-11-26 8:21 ` Pekka Paalanen 2021-11-26 8:21 ` [Intel-gfx] " Pekka Paalanen 2021-09-06 21:38 ` [Intel-gfx] [RFC v2 02/22] drm: Add Enhanced Gamma and color lut range attributes Uma Shankar 2021-09-06 21:38 ` Uma Shankar 2021-11-03 15:08 ` Harry Wentland 2021-11-03 15:08 ` [Intel-gfx] " Harry Wentland 2021-11-04 8:38 ` Pekka Paalanen 2021-11-04 8:38 ` [Intel-gfx] " Pekka Paalanen 2021-11-04 16:27 ` Harry Wentland 2021-11-04 16:27 ` [Intel-gfx] " Harry Wentland 2021-11-05 11:49 ` Ville Syrjälä 2021-11-05 11:49 ` [Intel-gfx] " Ville Syrjälä 2021-11-09 20:22 ` Harry Wentland 2021-11-09 20:22 ` [Intel-gfx] " Harry Wentland 2021-11-08 9:54 ` Pekka Paalanen 2021-11-08 9:54 ` [Intel-gfx] " Pekka Paalanen 2021-11-09 20:47 ` Harry Wentland 2021-11-09 20:47 ` [Intel-gfx] " Harry Wentland 2021-11-09 22:02 ` Ville Syrjälä 2021-11-09 22:02 ` [Intel-gfx] " Ville Syrjälä 2021-11-10 8:49 ` Pekka Paalanen 2021-11-10 8:49 ` [Intel-gfx] " Pekka Paalanen 2021-11-10 11:55 ` Ville Syrjälä 2021-11-10 11:55 ` [Intel-gfx] " Ville Syrjälä 2021-11-10 15:17 ` Harry Wentland 2021-11-10 15:17 ` [Intel-gfx] " Harry Wentland 2021-11-11 8:22 ` Pekka Paalanen 2021-11-11 8:22 ` [Intel-gfx] " Pekka Paalanen 2021-09-06 21:38 ` [Intel-gfx] [RFC v2 03/22] drm: Add Plane Degamma Mode property Uma Shankar 2021-09-06 21:38 ` Uma Shankar 2021-10-12 11:50 ` Pekka Paalanen 2021-10-12 11:50 ` [Intel-gfx] " Pekka Paalanen 2021-10-12 21:02 ` Shankar, Uma 2021-10-12 21:02 ` [Intel-gfx] " Shankar, Uma 2021-09-06 21:38 ` [Intel-gfx] [RFC v2 04/22] drm: Add Plane Degamma Lut property Uma Shankar 2021-09-06 21:38 ` Uma Shankar 2021-09-06 21:38 ` [Intel-gfx] [RFC v2 05/22] drm/i915/xelpd: Define Degamma Lut range struct for HDR planes Uma Shankar 2021-09-06 21:38 ` Uma Shankar 2021-11-03 15:10 ` Harry Wentland 2021-11-03 15:10 ` [Intel-gfx] " Harry Wentland 2021-11-05 12:59 ` Ville Syrjälä 2021-11-05 12:59 ` [Intel-gfx] " Ville Syrjälä 2021-11-09 20:19 ` Harry Wentland 2021-11-09 20:19 ` [Intel-gfx] " Harry Wentland 2021-11-09 21:45 ` Ville Syrjälä 2021-11-09 21:45 ` [Intel-gfx] " Ville Syrjälä 2021-11-09 21:56 ` Harry Wentland 2021-11-09 21:56 ` [Intel-gfx] " Harry Wentland 2021-11-11 15:17 ` Harry Wentland 2021-11-11 15:17 ` [Intel-gfx] " Harry Wentland 2021-11-11 16:42 ` Ville Syrjälä 2021-11-11 16:42 ` [Intel-gfx] " Ville Syrjälä 2021-11-11 20:42 ` Shankar, Uma 2021-11-11 20:42 ` [Intel-gfx] " Shankar, Uma 2021-11-11 21:10 ` Harry Wentland 2021-11-11 21:10 ` [Intel-gfx] " Harry Wentland 2021-11-11 21:58 ` Shankar, Uma 2021-11-11 21:58 ` [Intel-gfx] " Shankar, Uma 2021-11-12 8:37 ` Pekka Paalanen 2021-11-12 8:37 ` [Intel-gfx] " Pekka Paalanen 2021-11-23 14:40 ` Harry Wentland 2021-11-23 14:40 ` [Intel-gfx] " Harry Wentland 2021-11-12 14:54 ` Ville Syrjälä 2021-11-12 14:54 ` [Intel-gfx] " Ville Syrjälä 2021-11-16 8:15 ` Pekka Paalanen 2021-11-16 8:15 ` [Intel-gfx] " Pekka Paalanen 2021-09-06 21:38 ` [Intel-gfx] [RFC v2 06/22] drm/i915/xelpd: Add register definitions for Plane Degamma Uma Shankar 2021-09-06 21:38 ` Uma Shankar 2021-09-06 21:38 ` [Intel-gfx] [RFC v2 07/22] drm/i915/xelpd: Enable plane color features Uma Shankar 2021-09-06 21:38 ` Uma Shankar 2021-09-06 21:38 ` [Intel-gfx] [RFC v2 08/22] drm/i915/xelpd: Add color capabilities of SDR planes Uma Shankar 2021-09-06 21:38 ` Uma Shankar 2021-09-06 21:38 ` [Intel-gfx] [RFC v2 09/22] drm/i915/xelpd: Program Plane Degamma Registers Uma Shankar 2021-09-06 21:38 ` Uma Shankar 2021-09-06 21:38 ` [Intel-gfx] [RFC v2 10/22] drm/i915/xelpd: Add plane color check to glk_plane_color_ctl Uma Shankar 2021-09-06 21:38 ` Uma Shankar 2021-09-06 21:38 ` [Intel-gfx] [RFC v2 11/22] drm/i915/xelpd: Initialize plane color features Uma Shankar 2021-09-06 21:38 ` Uma Shankar 2021-09-06 21:38 ` [RFC v2 12/22] drm/i915/xelpd: Load plane color luts from atomic flip Uma Shankar 2021-09-06 21:38 ` [Intel-gfx] " Uma Shankar 2021-09-06 21:38 ` [RFC v2 13/22] drm: Add Plane CTM property Uma Shankar 2021-09-06 21:38 ` [Intel-gfx] " Uma Shankar 2021-09-06 21:38 ` [RFC v2 14/22] drm: Add helper to attach Plane ctm property Uma Shankar 2021-09-06 21:38 ` [Intel-gfx] " Uma Shankar 2021-09-06 21:38 ` [RFC v2 15/22] drm/i915/xelpd: Define Plane CSC Registers Uma Shankar 2021-09-06 21:38 ` [Intel-gfx] " Uma Shankar 2021-09-06 21:38 ` [RFC v2 16/22] drm/i915/xelpd: Enable Plane CSC Uma Shankar 2021-09-06 21:38 ` [Intel-gfx] " Uma Shankar 2021-09-06 21:38 ` [RFC v2 17/22] drm: Add Plane Gamma Mode property Uma Shankar 2021-09-06 21:38 ` [Intel-gfx] " Uma Shankar 2021-09-06 21:39 ` [RFC v2 18/22] drm: Add Plane Gamma Lut property Uma Shankar 2021-09-06 21:39 ` [Intel-gfx] " Uma Shankar 2021-09-06 21:39 ` [RFC v2 19/22] drm/i915/xelpd: Define and Initialize Plane Gamma Lut range Uma Shankar 2021-09-06 21:39 ` [Intel-gfx] " Uma Shankar 2021-09-06 21:39 ` [RFC v2 20/22] drm/i915/xelpd: Add register definitions for Plane Gamma Uma Shankar 2021-09-06 21:39 ` [Intel-gfx] " Uma Shankar 2021-09-06 21:39 ` [RFC v2 21/22] drm/i915/xelpd: Program Plane Gamma Registers Uma Shankar 2021-09-06 21:39 ` [Intel-gfx] " Uma Shankar 2021-09-06 21:39 ` [RFC v2 22/22] drm/i915/xelpd: Enable plane gamma Uma Shankar 2021-09-06 21:39 ` [Intel-gfx] " Uma Shankar 2021-09-06 21:57 ` [Intel-gfx] ✓ Fi.CI.BAT: success for Add Support for Plane Color Lut and CSC features (rev2) Patchwork 2021-09-06 23:12 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork 2021-10-12 11:55 ` [RFC v2 00/22] Add Support for Plane Color Lut and CSC features Pekka Paalanen 2021-10-12 11:55 ` [Intel-gfx] " Pekka Paalanen 2021-10-12 21:01 ` Shankar, Uma 2021-10-12 21:01 ` [Intel-gfx] " Shankar, Uma 2021-10-26 15:02 ` Harry Wentland 2021-10-26 15:02 ` [Intel-gfx] " Harry Wentland 2021-10-27 8:18 ` Pekka Paalanen 2021-10-27 8:18 ` [Intel-gfx] " Pekka Paalanen 2022-02-02 16:11 ` Harry Wentland 2022-02-02 16:11 ` [Intel-gfx] " Harry Wentland 2022-02-03 17:22 ` Shankar, Uma 2022-02-03 17:22 ` [Intel-gfx] " Shankar, Uma
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=20210906213904.27918-1-uma.shankar@intel.com \ --to=uma.shankar@intel.com \ --cc=Shashank.Sharma@amd.com \ --cc=brian.starkey@arm.com \ --cc=dri-devel@lists.freedesktop.org \ --cc=harry.wentland@amd.com \ --cc=intel-gfx@lists.freedesktop.org \ --cc=ppaalanen@gmail.com \ --cc=sebastian@sebastianwick.net \ --cc=ville.syrjala@linux.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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.