Tags

Tags give the ability to mark specific points in history as being important
  • sent/20250730-mtk-post-blend-color-pipeline-498e1a9cc53e-v2

    [RFC] Introduce support for post-blend color pipeline
    
    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
    
    To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    To: Maxime Ripard <mripard@kernel.org>
    To: Thomas Zimmermann <tzimmermann@suse.de>
    To: David Airlie <airlied@gmail.com>
    To: Simona Vetter <simona@ffwll.ch>
    To: Chun-Kuang Hu <chunkuang.hu@kernel.org>
    To: Philipp Zabel <p.zabel@pengutronix.de>
    To: Matthias Brugger <matthias.bgg@gmail.com>
    To: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    To: Haneen Mohammed <hamohammed.sa@gmail.com>
    To: Melissa Wen <melissa.srw@gmail.com>
    Cc: Alex Hung <alex.hung@amd.com>
    Cc: wayland-devel@lists.freedesktop.org
    Cc: harry.wentland@amd.com
    Cc: leo.liu@amd.com
    Cc: ville.syrjala@linux.intel.com
    Cc: pekka.paalanen@collabora.com
    Cc: contact@emersion.fr
    Cc: mwen@igalia.com
    Cc: jadahl@redhat.com
    Cc: sebastian.wick@redhat.com
    Cc: shashank.sharma@amd.com
    Cc: agoins@nvidia.com
    Cc: joshua@froggi.es
    Cc: mdaenzer@redhat.com
    Cc: aleixpol@kde.org
    Cc: xaver.hugl@gmail.com
    Cc: victoria@system76.com
    Cc: daniel@ffwll.ch
    Cc: uma.shankar@intel.com
    Cc: quic_naseer@quicinc.com
    Cc: quic_cbraga@quicinc.com
    Cc: quic_abhinavk@quicinc.com
    Cc: marcan@marcan.st
    Cc: Liviu.Dudau@arm.com
    Cc: sashamcintosh@google.com
    Cc: chaitanya.kumar.borah@intel.com
    Cc: louis.chauvet@bootlin.com
    Cc: mcanal@igalia.com
    Cc: kernel@collabora.com
    Cc: daniels@collabora.com
    Cc: leandro.ribeiro@collabora.com
    Cc: dri-devel@lists.freedesktop.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-mediatek@lists.infradead.org
    Cc: linux-arm-kernel@lists.infradead.org
    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,