Draft: IGT tests for the KMS Color Pipeline API
This series introduces support for
- drm_colorop DRM objects
- COLOR_PIPELINE plane property
Kernel changes: linux!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".
This series introduces a number of tests for pre-defined transfer functions, custom LUTs, 3x4 CTMs, and a multiplier, as well as a bypass test.
It tests 8-bit and 10-bit RGB surface formats, depending on support by the driver, both on the drm_plane end as well as the writeback drm_connector end.
Bhanuprakash sent an Intel series as a v4. This v5 does not incorporate his patches yet as resolving that will require a bit more time.
v5:
- Bypass test
- 10 bpc support
- Proper setup and cleanup
- PQ/BT2020 TFs
- 1D LUT tests
- Multiplier tests
v4:
- Intel color pipeline work, to be combined with v5 in a future iteration.
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