public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC v2 00/20] Introduce support for post-blend color pipeline
@ 2025-09-18  0:43 Nícolas F. R. A. Prado
  2025-09-18  0:43 ` [PATCH RFC v2 01/20] drm/crtc: Add color pipeline to CRTC state Nícolas F. R. A. Prado
                   ` (21 more replies)
  0 siblings, 22 replies; 51+ messages in thread
From: Nícolas F. R. A. Prado @ 2025-09-18  0:43 UTC (permalink / raw)
  To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
	Simona Vetter, Chun-Kuang Hu, Philipp Zabel, Matthias Brugger,
	AngeloGioacchino Del Regno, Haneen Mohammed, Melissa Wen
  Cc: Alex Hung, wayland-devel, harry.wentland, leo.liu, ville.syrjala,
	pekka.paalanen, contact, mwen, jadahl, sebastian.wick,
	shashank.sharma, agoins, joshua, mdaenzer, aleixpol, xaver.hugl,
	victoria, uma.shankar, quic_naseer, quic_cbraga, quic_abhinavk,
	marcan, Liviu.Dudau, sashamcintosh, chaitanya.kumar.borah,
	louis.chauvet, mcanal, kernel, daniels, leandro.ribeiro,
	dri-devel, linux-kernel, linux-mediatek, linux-arm-kernel,
	Nícolas F. R. A. Prado, Simona Vetter

This series is based on "Color Pipeline API w/ VKMS" [1]. It reuses the
same concept of a color pipeline API but for the post-blend stage
instead of pre-blend, by attaching the COLOR_PIPELINE property to the
CRTC rather than a plane.

The patches in the series first implement the necessary changes in the
DRM core to allow for post-blend color pipelines and expose it through
the uAPI, and then implement support in both the MediaTek KMS driver and
in VKMS.

This series has been tested with IGT, with the "Support post-blend color
pipeline API" series [2] applied, on top of VKMS, as well as with
Weston, with a WIP branch [3], on a MT8195-Tomato Chromebook, where both
gamma LUT and CTM color transformations have been simultaneously
configured in hardware through the API and validated (test commits for
weston at [4] and for kernel at [5]).

[1] https://lore.kernel.org/all/20250815035047.3319284-1-alex.hung@amd.com/
[2] https://lore.kernel.org/igt-dev/20250912-post-blend-colorops-v1-0-83fc62420cba@collabora.com/T/#t
[3] https://gitlab.collabora.com/nfraprado/weston/-/tree/post-blend-colorops?ref_type=heads
[4] https://gitlab.collabora.com/nfraprado/weston/-/tree/post-blend-color-pipeline-lut-ctm-test?ref_type=tags
[5] https://gitlab.collabora.com/nfraprado/linux/-/tree/debug-ctm-lut-data-post-blend-colorop?ref_type=tags

Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
---
Changes in v2:
- Split core DRM changes for post-blend color pipelines from single
  commit into smaller changes
- Added post-blend color pipeline support in VKMS
- Introduced driver cap, and made client cap depend on it (daniels)
- Made deprecated color props (GAMMA_LUT, DEGAMMA_LUT, CTM) available as
  read-only when post-blend color pipelines are enabled (daniels)
- Created colorop_modeset_lock/unlock to commonize locking pattern for
  colorops (louis.chauvet)
- Added helper for post-blend 1D curve colorop creation
- Link to v1: https://lore.kernel.org/r/20250822-mtk-post-blend-color-pipeline-v1-0-a9446d4aca82@collabora.com

---
Nícolas F. R. A. Prado (20):
      drm/crtc: Add color pipeline to CRTC state
      drm/colorop: Allow parenting colorop to CRTC
      drm: Factor out common color_pipeline property initialization code
      drm/crtc: Add COLOR_PIPELINE property
      drm: Introduce DRM_CAP_POST_BLEND_COLOR_PIPELINE
      drm: Introduce DRM_CLIENT_CAP_POST_BLEND_COLOR_PIPELINE
      drm/atomic: Pass post_blend_color_pipeline client cap to atomic check
      drm/atomic: Print the color pipeline as part of the CRTC state print
      drm/colorop: Factor out common paths from colorops helpers
      drm/colorop: Introduce colorop helpers for crtc
      drm/colorop: Export drm_colorop_cleanup() so drivers can extend it
      drm/crtc: Track post-blend color pipeline client cap in drm_crtc_state
      drm/mediatek: Support post-blend colorops for gamma and ctm
      drm/mediatek: ccorr: Support post-blend color pipeline API
      drm/mediatek: gamma: Support post-blend color pipeline API
      drm/mediatek: Set post-blend color pipeline driver cap
      drm/vkms: Rename existing color pipeline helpers to contain "pre_blend"
      drm/vkms: Prepare pre_blend_color_transform() for post-blend pipelines
      drm/vkms: Introduce support for post-blend color pipeline
      drm/vkms: Set post-blend color pipeline driver cap

 drivers/gpu/drm/drm_atomic.c              |   9 +-
 drivers/gpu/drm/drm_atomic_uapi.c         |  65 +++++++-
 drivers/gpu/drm/drm_colorop.c             | 245 ++++++++++++++++++++++++------
 drivers/gpu/drm/drm_connector.c           |   1 +
 drivers/gpu/drm/drm_crtc.c                |  77 ++++++++++
 drivers/gpu/drm/drm_crtc_internal.h       |   6 +
 drivers/gpu/drm/drm_ioctl.c               |  12 ++
 drivers/gpu/drm/drm_mode_object.c         |   9 ++
 drivers/gpu/drm/drm_plane.c               |  36 +----
 drivers/gpu/drm/mediatek/mtk_crtc.c       | 208 ++++++++++++++++++++++++-
 drivers/gpu/drm/mediatek/mtk_ddp_comp.c   |   6 +-
 drivers/gpu/drm/mediatek/mtk_ddp_comp.h   |   2 +
 drivers/gpu/drm/mediatek/mtk_disp_ccorr.c | 100 ++++++++++--
 drivers/gpu/drm/mediatek/mtk_disp_drv.h   |   6 +-
 drivers/gpu/drm/mediatek/mtk_disp_gamma.c | 107 ++++++++++---
 drivers/gpu/drm/mediatek/mtk_drm_drv.c    |   3 +-
 drivers/gpu/drm/vkms/vkms_colorop.c       | 106 ++++++++++++-
 drivers/gpu/drm/vkms/vkms_composer.c      |  13 +-
 drivers/gpu/drm/vkms/vkms_crtc.c          |   1 +
 drivers/gpu/drm/vkms/vkms_drv.c           |   3 +-
 drivers/gpu/drm/vkms/vkms_drv.h           |   3 +-
 drivers/gpu/drm/vkms/vkms_plane.c         |   2 +-
 include/drm/drm_atomic.h                  |  20 +++
 include/drm/drm_atomic_uapi.h             |   2 +
 include/drm/drm_colorop.h                 |  22 ++-
 include/drm/drm_crtc.h                    |  27 ++++
 include/drm/drm_drv.h                     |   6 +
 include/drm/drm_file.h                    |   7 +
 include/uapi/drm/drm.h                    |  25 +++
 29 files changed, 994 insertions(+), 135 deletions(-)
---
base-commit: 342e5ee08797cde0e8af30e6110a5dc1cba61e9c
change-id: 20250730-mtk-post-blend-color-pipeline-498e1a9cc53e

Best regards,
-- 
Nícolas F. R. A. Prado <nfraprado@collabora.com>


^ permalink raw reply	[flat|nested] 51+ messages in thread

end of thread, other threads:[~2025-12-11 15:27 UTC | newest]

Thread overview: 51+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-18  0:43 [PATCH RFC v2 00/20] Introduce support for post-blend color pipeline Nícolas F. R. A. Prado
2025-09-18  0:43 ` [PATCH RFC v2 01/20] drm/crtc: Add color pipeline to CRTC state Nícolas F. R. A. Prado
2025-09-19 12:45   ` Louis Chauvet
2025-09-18  0:43 ` [PATCH RFC v2 02/20] drm/colorop: Allow parenting colorop to CRTC Nícolas F. R. A. Prado
2025-09-19 12:44   ` Louis Chauvet
2025-12-10 20:49     ` Ariel D'Alessandro
2025-09-18  0:43 ` [PATCH RFC v2 03/20] drm: Factor out common color_pipeline property initialization code Nícolas F. R. A. Prado
2025-09-19 12:43   ` Louis Chauvet
2025-09-29  8:53   ` Harry Wentland
2025-12-10 20:19     ` Ariel D'Alessandro
2025-09-18  0:43 ` [PATCH RFC v2 04/20] drm/crtc: Add COLOR_PIPELINE property Nícolas F. R. A. Prado
2025-09-19 12:43   ` Louis Chauvet
2025-12-10 21:00     ` Ariel D'Alessandro
2025-09-18  0:43 ` [PATCH RFC v2 05/20] drm: Introduce DRM_CAP_POST_BLEND_COLOR_PIPELINE Nícolas F. R. A. Prado
2025-09-19 12:42   ` Louis Chauvet
2025-09-29  9:40     ` Harry Wentland
2025-09-29 16:00       ` Nícolas F. R. A. Prado
2025-09-18  0:43 ` [PATCH RFC v2 06/20] drm: Introduce DRM_CLIENT_CAP_POST_BLEND_COLOR_PIPELINE Nícolas F. R. A. Prado
2025-09-19 12:42   ` Louis Chauvet
2025-09-29  9:48   ` Harry Wentland
2025-12-11 15:26     ` Ariel D'Alessandro
2025-09-18  0:43 ` [PATCH RFC v2 07/20] drm/atomic: Pass post_blend_color_pipeline client cap to atomic check Nícolas F. R. A. Prado
2025-09-19 12:41   ` Louis Chauvet
2025-09-29  9:50   ` Harry Wentland
2025-12-11 15:16     ` Ariel D'Alessandro
2025-09-18  0:43 ` [PATCH RFC v2 08/20] drm/atomic: Print the color pipeline as part of the CRTC state print Nícolas F. R. A. Prado
2025-09-19 12:50   ` Louis Chauvet
2025-09-18  0:43 ` [PATCH RFC v2 09/20] drm/colorop: Factor out common paths from colorops helpers Nícolas F. R. A. Prado
2025-09-19 12:51   ` Louis Chauvet
2025-09-18  0:43 ` [PATCH RFC v2 10/20] drm/colorop: Introduce colorop helpers for crtc Nícolas F. R. A. Prado
2025-09-19 12:44   ` Louis Chauvet
2025-09-18  0:43 ` [PATCH RFC v2 11/20] drm/colorop: Export drm_colorop_cleanup() so drivers can extend it Nícolas F. R. A. Prado
2025-09-18  0:43 ` [PATCH RFC v2 12/20] drm/crtc: Track post-blend color pipeline client cap in drm_crtc_state Nícolas F. R. A. Prado
2025-09-19 12:51   ` Louis Chauvet
2025-09-18  0:43 ` [PATCH RFC v2 13/20] drm/mediatek: Support post-blend colorops for gamma and ctm Nícolas F. R. A. Prado
2025-09-18  0:43 ` [PATCH RFC v2 14/20] drm/mediatek: ccorr: Support post-blend color pipeline API Nícolas F. R. A. Prado
2025-09-18  0:43 ` [PATCH RFC v2 15/20] drm/mediatek: gamma: " Nícolas F. R. A. Prado
2025-09-18  0:43 ` [PATCH RFC v2 16/20] drm/mediatek: Set post-blend color pipeline driver cap Nícolas F. R. A. Prado
2025-09-19 12:50   ` Louis Chauvet
2025-09-18  0:43 ` [PATCH RFC v2 17/20] drm/vkms: Rename existing color pipeline helpers to contain "pre_blend" Nícolas F. R. A. Prado
2025-09-19 12:45   ` Louis Chauvet
2025-09-18  0:43 ` [PATCH RFC v2 18/20] drm/vkms: Prepare pre_blend_color_transform() for post-blend pipelines Nícolas F. R. A. Prado
2025-09-19 12:48   ` Louis Chauvet
2025-09-18  0:43 ` [PATCH RFC v2 19/20] drm/vkms: Introduce support for post-blend color pipeline Nícolas F. R. A. Prado
2025-09-19 12:50   ` Louis Chauvet
2025-12-10 21:15     ` Ariel D'Alessandro
2025-09-18  0:43 ` [PATCH RFC v2 20/20] drm/vkms: Set post-blend color pipeline driver cap Nícolas F. R. A. Prado
2025-09-19 12:49   ` Louis Chauvet
2025-09-29 10:22 ` [PATCH RFC v2 00/20] Introduce support for post-blend color pipeline Harry Wentland
2025-09-29 12:05 ` Melissa Wen
2025-09-29 14:25   ` Harry Wentland

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox