[PATCH 00/11] Plane Color Pipeline support for MediaTek
Shengyu Qu
wiagn233 at outlook.com
Mon Dec 29 10:53:44 PST 2025
在 2025/12/24 3:44, NÃ colas F. R. A. Prado 写道:
> This series implements a plane color pipeline for MediaTek platforms,
> specifically for MT8195-compatible SoCs.
>
> The pipeline is composed of the following blocks:
>
> Inverse Gamma -> RGB to RGB Color Space Conversion (R2R CSC) -> Gamma
> (1D Curve) (3x3 Matrix) (1D Curve)
>
> The curves supported by Inverse Gamma are:
> * scRGB
> * BT.709
scRGB? That means this HW supports float point format surface, are you
sure this is not standard sRGB?
> The curves supported by Gamma are:
> * scRGB
> * BT.709
> * BT.2020
> * HLG
>
> Given the lack of support for writeback connectors on the MediaTek KMS
> driver, combined with limited hardware documentation, I haven't been
> able to verify the correctness of each curve, only that they were
> visually sane (gamma curves made the image on the display brighter,
> while inverse gamma made it darker).
Hmmm I don't think this is acceptable. sRGB/scRGB has two transfer
functions mentioned in original specification[1]. To keep color
accuracy, we need someone from mediatek confirm whether this is
piece-wise or pure power 2.2 transfer function, this is already done in
original amdgpu color pipeline series, sRGB means piece-wise while also
dedicated power 2.2 function exists.
Also +cc Xaver for a review as userspace compositor developer.
[1] https://gitlab.freedesktop.org/pq/color-and-hdr/-/issues/30
> This series depends on "drm: Color pipeline teardown and follow-up
> fixes/improvements" [1].
>
> This series was tested on the MT8195-Tomato Chromebook.
>
> Regarding the support of color operations in OVL for different SoCs:
> * it's not supported by MT8183, and presumably also not by older
> generations
> * On MT8192 it's supported by ovl0 and ovl_2l0, but not ovl_2l2 (despite
> the same compatible as ovl_2l0).
>
> For this series I'm only enabling it on MT8195 since that's the one
> where I can readily test.
>
> [1] https://lore.kernel.org/all/20251219065614.190834-1-chaitanya.kumar.borah@intel.com/#t
>
> Signed-off-by: Nícolas F. R. A. Prado <nfraprado at collabora.com>
> ---
> Nícolas F. R. A. Prado (11):
> drm/mediatek: Introduce DDP plane_colorops_init() hook
> drm/mediatek: Initialize colorops when creating plane
> drm/mediatek: ovl: Add supports_plane_colorops flag
> drm/mediatek: ovl: Enable per-plane color operations on MT8195
> drm/mediatek: ovl: Implement support for Inverse Gamma
> drm/mediatek: Add plane_colorops_init() DDP hook for OVL
> drm/colorop: Introduce HLG EOTF
> drm/mediatek: ovl: Implement support for Gamma
> drm/colorop: Introduce 3x3 Matrix
> drm/mediatek: ovl: Enable support for R2R Color Space Conversion
> drm/mediatek: Check 3x3 Matrix colorop has DATA set
>
> drivers/gpu/drm/drm_atomic.c | 1 +
> drivers/gpu/drm/drm_atomic_uapi.c | 3 +
> drivers/gpu/drm/drm_colorop.c | 22 +++
> drivers/gpu/drm/mediatek/mtk_crtc.c | 36 +++-
> drivers/gpu/drm/mediatek/mtk_ddp_comp.c | 1 +
> drivers/gpu/drm/mediatek/mtk_ddp_comp.h | 2 +
> drivers/gpu/drm/mediatek/mtk_disp_drv.h | 1 +
> drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 287 ++++++++++++++++++++++++++++++++
> include/drm/drm_colorop.h | 13 ++
> include/uapi/drm/drm_mode.h | 16 ++
> 10 files changed, 381 insertions(+), 1 deletion(-)
> ---
> base-commit: 1783cdadb70e74a30dfee250f8c2dc13b4e61128
> change-id: 20251219-mtk-ovl-pre-blend-colorops-95b7b2883d95
>
> Best regards,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0xE3520CC91929C8E7.asc
Type: application/pgp-keys
Size: 6868 bytes
Desc: OpenPGP public key
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20251230/3d28fc15/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20251230/3d28fc15/attachment-0001.sig>
More information about the linux-arm-kernel
mailing list