[igt-dev] [PATCH i-g-t v3 00/21] Chamelium VC4 plane fuzzy testing, with SAND and T-tiled mode

Paul Kocialkowski
2019-01-11T09:06:20Z

This series introduces the required plumbing for allocating buffers in
the VC4 T-tiled and SAND_tiled modes, along with helpers to convert to
these tiling modes.

A new "checkerboard" comparison method is introduced to check whether
captured frames match their references in cases where pixel-perfect
results are not possible (e.g. with scaling) and the analog test does
not provide reliable results.

With that in place, new tests for the Chamelium are introduced to
perform testing of planes with randomized properties, both with a
CRC and frame comparison fashion.

This series is based on version 3 of Maxime Ripard's series:
igt: chamelium: Test YUV buffers using the Chamelium

Changes since v2:
* Added support for SAND tiling;
* Generalized T-tiling to support both 16 and 32 bpp;
* Split the main test into more sub-functions;
* Removed explicit lists of DRM formats;
* Added helper to list known DRM formats;
* Various functional fixes in the main test;
* Removed unnecessary pointer init in map_bo;
* Rebased on v3 of Maxime Ripard's YUV series;
* Added collected Reviewed-By tags;

Changes since v1:
* Added collected Reviewed-by tags;
* Removed explicit size and constified tiling read order tables;
* Removed unnecessary MAP_FAILED addition in map_bo;
* Added pipe and output helpers to count and iterate planes of a given type;
* Moved CRC debug prints to the chamelium library;
* Fixed destination stride description for igt_fb_convert_with_stride;
* Split planes test into a few sub-routines;
* Removed explicit underrun detection since general error reporting is enough;
* Removed underrun detection bits due to ongoing Chamelium-specific issues;
* Deconfigured planes before removing their framebuffer, avoiding kmsg errors.

Paul Kocialkowski (21):
lib: drmtest: Add helpers to check and require the VC4 driver
lib/igt_fb: Add checks on i915 for i915-specific tiled buffer
allocation
lib/igt_fb: Add support for allocating T-tiled VC4 buffers
lib/igt_fb: Add support for VC4 SAND tiling modes
lib/igt_fb: Allow interpreting the tile height as a stride equivalent
lib/igt_fb: Add a stride-provisioned fashion of igt_fb_convert
lib/igt_fb: Add a helper to retreive the plane bpp for a given format
lib/igt_fb: Add a helper to fill-in the available DRM formats
lib/igt_vc4: Add helpers for converting linear to T-tiled RGB buffers
lib/igt_vc4: Add helper for checking T-tiling support on plane
lib/igt_vc4: Add helpers for converting linear to SAND-tiled buffers
lib/igt_vc4: Add helper for checking SAND tiling support on plane
lib/igt_kms: Add helpers to count and iterate planes from pipe
lib/igt_kms: Add helpers to count and iterate planes from output
lib/igt_chamelium: Fixup resources liberation in comparison helpers
lib/igt_chamelium: Split frames dump logic and rework surroundings
lib/igt_chamelium: Generalize the frame match helper with check type
lib/igt_frame: Add a checkerboard frame comparison method
lib/igt_chamelium: Hook-in checkerboard comparison method in helpers
chamelium: Move the YUV tests over to the checkerboard checking method
chamelium: Add a display test for randomized planes

lib/drmtest.c | 10 +
lib/drmtest.h | 2 +
lib/igt_chamelium.c | 124 +++++++----
lib/igt_chamelium.h | 15 +-
lib/igt_fb.c | 144 ++++++++++++-
lib/igt_fb.h | 6 +
lib/igt_frame.c | 121 +++++++++++
lib/igt_frame.h | 2 +
lib/igt_kms.c | 84 ++++++++
lib/igt_kms.h | 6 +
lib/igt_vc4.c | 242 +++++++++++++++++++++
lib/igt_vc4.h | 42 ++++
tests/kms_chamelium.c | 481 ++++++++++++++++++++++++++++++++++++++++--
13 files changed, 1204 insertions(+), 75 deletions(-)

--
2.20.1