[PATCH RFC v2 00/20] Introduce support for post-blend color pipeline

Harry Wentland harry.wentland at amd.com
Mon Sep 29 07:25:20 PDT 2025



On 2025-09-29 08:05, Melissa Wen wrote:
> 
> 
> On 17/09/2025 21:43, Nícolas F. R. A. Prado wrote:
>> 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.
> 
> Hi all,
> 
> I'm confused about the timing of this series being reviewed.
> Hadn't we agreed in past hackfest on discussing post-blending color API 
> only after we have sorted out pre-blending color properties?

I don't think it's a problem to have people with bandwidth looking
at the post-blending portion, especially if they weren't involved
in the pre-blending patchset.

I find it helpful to look at this and it proofs (to me) that the
direction of the pre-blending design is correct. I don't (necessarily) 
like how it re-opens questions that we discussed previously, such
as hiding legacy properties, and would be hesitant to change this
on the pre-blending patches and therefore delay the merge even
further.

> There are still open questions around color_encoding and color_range, 
> for example...

I apologize if I missed key bits that might require attention. Could
you elaborate on the open questions?

> How assertive can we be evaluating the post-blending API now?

As people wait on the pre-blending pipeline to merged it makes sense
to start looking at the next steps.

I would like the IGT patches to be reviewed before we merge the pre-
blending pipeline. Otherwise I think it's ready.

Harry

> 
> Best Regards,
> 
> Melissa
> 
>>
>> 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 at amd.com/
>> [2] https://lore.kernel.org/igt-dev/20250912-post-blend-colorops- 
>> v1-0-83fc62420cba at 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 at 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 at 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,
> 




More information about the linux-arm-kernel mailing list