[RFC v4 00/22] IGT tests for the KMS Color Pipeline API

Harry Wentland harry.wentland at amd.com
Tue Feb 20 20:28:54 UTC 2024



On 2024-02-14 01:39, Bhanuprakash Modem wrote:
> This series introduces support for
> * drm_colorop DRM objects
> * COLOR_PIPELINE plane property
> 
> Kernel changes:
> https://gitlab.freedesktop.org/hwentland/linux/-/merge_requests/5
> 
> It also adds a new kms_colorop test case that tests the color pipeline
> API. The tests are designed to be easily extensible with a "transform"
> and "compare" function pointer for each test. The "transform" function
> performs the transformations under test via SW routines. The "compare"
> function compares the DRM/KMS result (via a writeback connector) with
> the result derived via the SW "transform".
> 
> There are three tests for LUTs:
>  - plane-srgb_eotf: pre-blending sRGB EOTF
>  - plane-srgb_inv_eotf: pre-blending sRGB Inverse EOTF
>  - plane-srgb_eotf-srgb_inv_eotf: pre-blending sRGB EOTF,
>    followed by its inverse
> 
> And a number of tests for matrices.
> 
> v3:
>  - Remove need for IOCTLs and libdrm changes
>  - Test colorop properties with both atomic and legacy code paths
>  - move enum drm_colorop_type to drm_mode.h
>  - Add descriptions for public functions in lib (Kamil)
>  - Use SPDX style license identifier (Kamil)
>  - Replace Skia license comment with copyright note in file header
>  - Fix kms_colorop subtests if applicable color pipeline not found
> 
> v4: (Bhanu)
>  - Though v3 required some cleanup, I am not touching it, instead fix any issue
>    as new patch (we may need to squash those patches)
>  - Rebase v3
>  - Move few helpers to common place (kms_color_helper) to reuse by multiple tests
>  - New helpers to cleanup the colorop props.
>  - Helpers to support custom 1D LUT & CTM 3x3
>  - New subtests to validate Intel plane color pipeline, please find the
>    KMD changes: https://patchwork.freedesktop.org/series/129812/
> 

Hmm, looks like we went in slightly different directions. We'll need
to figure out how we'll deal with the 1D_LUT type. For us it looks like
a copy of the current drm_crtc LUTs. We might want two different LUT
types, a generic one, and a PWL_LUT for what you and Uma are defining.

I'll send out my v5 as-is, without attempting to rebase on top of your
patches, since that will be a larger challenge than I though. Will look
at how to merge them afterwards.

Harry

> Cc: Ville Syrjala <ville.syrjala at linux.intel.com>
> Cc: Pekka Paalanen <pekka.paalanen at collabora.com>
> Cc: Simon Ser <contact at emersion.fr>
> Cc: Harry Wentland <harry.wentland at amd.com>
> Cc: Melissa Wen <mwen at igalia.com>
> Cc: Jonas Ådahl <jadahl at redhat.com>
> Cc: Sebastian Wick <sebastian.wick at redhat.com>
> Cc: Shashank Sharma <shashank.sharma at amd.com>
> Cc: Alexander Goins <agoins at nvidia.com>
> Cc: Joshua Ashton <joshua at froggi.es>
> Cc: Michel Dänzer <mdaenzer at redhat.com>
> Cc: Aleix Pol <aleixpol at kde.org>
> Cc: Xaver Hugl <xaver.hugl at gmail.com>
> Cc: Victoria Brekenfeld <victoria at system76.com>
> Cc: Sima <daniel at ffwll.ch>
> Cc: Uma Shankar <uma.shankar at intel.com>
> Cc: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
> Cc: Naseer Ahmed <quic_naseer at quicinc.com>
> Cc: Christopher Braga <quic_cbraga at quicinc.com>
> Cc: Abhinav Kumar <quic_abhinavk at quicinc.com>
> Cc: Arthur Grillo <arthurgrillo at riseup.net>
> Cc: Hector Martin <marcan at marcan.st>
> Cc: Liviu Dudau <Liviu.Dudau at arm.com>
> Cc: Sasha McIntosh <sashamcintosh at google.com>
> 
> Bhanuprakash Modem (10):
>   tests/kms_properties: Fix compilation errors
>   lib/igt_kms: Destroy colorops on exit
>   lib/colorops: Move few helpers to common place to reuse
>   drm-uapi: Add 3x3 CTM
>   drm-uapi: Add custom 1D LUT
>   lib/igt_color: Add support for 3x3 matrices
>   lib/colorops: Add support for Custom 1D LUT
>   lib/igt_kms: Increase the colorops count
>   tests/kms_color_helper: Add helpers to clear colorops data
>   tests/kms_color: Add plane color pipeline tests for Intel hardware
> 
> Harry Wentland (12):
>   lib/drmtest: Add is_vkms_device()
>   lib/igt_kms: Introduce DRM_CLIENT_CAP_PLANE_COLOR_PIPELINE
>   include/drm-uapi: Add COLOROP object
>   lib/igt_kms: Introduce drm_colorop and COLOR_PIPELINE
>   tests/kms_properties: Add colorop properties test
>   igt/color: Add SW color transform functionality
>   lib/igt_fb: Add copy_fb function
>   tests/kms_colorop: Add kms_colorop tests
>   drm-uapi: Add 3x4 CTM
>   lib/igt_kms: Add support for DATA colorop property
>   lib/igt_color: Add support for 3x4 matrices
>   tests/kms_colorop: Add 3x4 CTM tests
> 
>  include/drm-uapi/drm.h      |  15 ++
>  include/drm-uapi/drm_mode.h |  52 +++++
>  lib/drmtest.c               |   5 +
>  lib/drmtest.h               |   1 +
>  lib/igt_color.c             | 361 +++++++++++++++++++++++++++++
>  lib/igt_color.h             |  81 +++++++
>  lib/igt_fb.c                |  40 +++-
>  lib/igt_fb.h                |   3 +
>  lib/igt_kms.c               | 312 ++++++++++++++++++++++++-
>  lib/igt_kms.h               |  97 +++++++-
>  lib/meson.build             |   1 +
>  tests/kms_color.c           | 273 +++++++++++++++++++++-
>  tests/kms_color_helper.c    | 313 ++++++++++++++++++++++++++
>  tests/kms_color_helper.h    |  91 ++++++++
>  tests/kms_colorop.c         | 438 ++++++++++++++++++++++++++++++++++++
>  tests/kms_properties.c      |  72 ++++++
>  tests/meson.build           |   2 +
>  17 files changed, 2140 insertions(+), 17 deletions(-)
>  create mode 100644 lib/igt_color.c
>  create mode 100644 lib/igt_color.h
>  create mode 100644 tests/kms_colorop.c
> 
> --
> 2.43.0
> 



More information about the igt-dev mailing list