Skip to content

Draft: IGT tests for the KMS Color Pipeline API

Harry Wentland requested to merge color-pipeline-wip-1 into color-pipeline-wip-base

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
Edited by Harry Wentland

Merge request reports