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.
Patch 1 implements the necessary changes in the DRM core to make this happen. The remaining patches implement support for this API in the MediaTek DRM driver in particular. This series has been tested on the MT8195-Tomato Chromebook with a WIP Weston branch [2]. Both gamma LUT and CTM color transformations have been simultaneously configured in hardware through the API and validated (test commits in weston [3] and the kernel [4]). This is a very early implementation but I'd like to get feedback from the community before moving forward. For instance one notable thing missing it to add init helpers for the post-blend case for the remaining colorop types, as only 3x1d LUT and 3x4 Matrix were needed for gamma LUT and CTM use cases. [1] https://lore.kernel.org/all/20250815035047.3319284-1-alex.h...@amd.com/ [2] https://gitlab.collabora.com/nfraprado/weston/-/tree/post-blend-colorops?ref_type=heads [3] https://gitlab.collabora.com/nfraprado/weston/-/commits/post-blend-color-pipeline-lut-ctm-test?ref_type=tags [4] https://gitlab.collabora.com/nfraprado/linux/-/commits/post-blend-color-pipeline-ctm-lut-test?ref_type=tags Signed-off-by: Nícolas F. R. A. Prado <nfrapr...@collabora.com> --- Nícolas F. R. A. Prado (5): drm: Support post-blend color pipeline API drm/colorop: Export drm_colorop_cleanup() so drivers can extend it 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 drivers/gpu/drm/drm_atomic.c | 32 ++++- drivers/gpu/drm/drm_atomic_uapi.c | 50 ++++++- drivers/gpu/drm/drm_colorop.c | 147 +++++++++++++++++---- 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 | 7 + drivers/gpu/drm/drm_mode_object.c | 20 +++ drivers/gpu/drm/drm_plane.c | 36 +---- drivers/gpu/drm/mediatek/mtk_crtc.c | 211 +++++++++++++++++++++++++++++- 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 ++++++++++++--- include/drm/drm_atomic.h | 20 +++ include/drm/drm_atomic_uapi.h | 2 + include/drm/drm_colorop.h | 17 ++- include/drm/drm_crtc.h | 19 +++ include/drm/drm_file.h | 7 + include/uapi/drm/drm.h | 16 +++ 21 files changed, 781 insertions(+), 108 deletions(-) --- base-commit: d152eee7ae3b72e2ce70064a7ad9764f7ba8641d change-id: 20250730-mtk-post-blend-color-pipeline-498e1a9cc53e Best regards, -- Nícolas F. R. A. Prado <nfrapr...@collabora.com>