Chamelium VC4 plane testing, with T-tiled mode

Submitted by Paul Kocialkowski on Dec. 6, 2018, 2:11 p.m.

Details

Reviewer None
Submitted Dec. 6, 2018, 2:11 p.m.
Last Updated Dec. 13, 2018, 4:18 p.m.
Revision 2

Cover Letter(s)

Revision 1
      This series introduces the required plumbing for allocating buffers in
the VC4 T-tiled mode and converting to that mode from XR24 linear
buffers.

With that in place, a new Chamelium test is introduced to perform some
testing of planes with randomized properties. VC4-specific features such
as T-tiled mode, bandwidth limitation and overrun detection are also
tested.

It should be noted that the VC4 driver apaprently does not recover well
from underruns with the Chamelium, leading to "flip_done timed out"
errors in subsequent runs (until a reboot).

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

Paul Kocialkowski (9):
  chamelium: Pass dimensions instead of mode to pattern generation
    helper
  chamelium: Pass the pattern block size as argument to helpers
  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_vc4: Add helpers for converting linear to T-tiled XRGB buffers
  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
  chamelium: Add a CRC-based display test for randomized planes

 lib/drmtest.c         |  10 ++
 lib/drmtest.h         |   2 +
 lib/igt_fb.c          |  87 ++++++++++-
 lib/igt_fb.h          |   4 +
 lib/igt_vc4.c         |  96 ++++++++++++
 lib/igt_vc4.h         |   4 +
 tests/kms_chamelium.c | 352 ++++++++++++++++++++++++++++++++++++++++--
 7 files changed, 537 insertions(+), 18 deletions(-)
    
Revision 2
      This series introduces the required plumbing for allocating buffers in
the VC4 T-tiled mode and converting to that mode from XR24 linear
buffers.

With that in place, a new Chamelium test is introduced to perform some
testing of planes with randomized properties. It also tests the
VC4-specific VC4-specific T-tiled mode.

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

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 (12):
  chamelium: Pass dimensions instead of mode to pattern generation
    helper
  chamelium: Pass the pattern block size as argument to helpers
  chamelium: Debug-print CRCs when comparing them and dumping frames
  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_vc4: Add helpers for converting linear to T-tiled XRGB buffers
  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_kms: Add helpers to count and iterate planes from pipe
  lib/igt_kms: Add helpers to count and iterate planes from output
  chamelium: Add a CRC-based display test for randomized planes

 lib/drmtest.c         |  10 ++
 lib/drmtest.h         |   2 +
 lib/igt_chamelium.c   |   7 +
 lib/igt_fb.c          |  87 ++++++++++--
 lib/igt_fb.h          |   4 +
 lib/igt_kms.c         |  84 +++++++++++
 lib/igt_kms.h         |   6 +
 lib/igt_vc4.c         |  96 +++++++++++++
 lib/igt_vc4.h         |   4 +
 tests/kms_chamelium.c | 317 ++++++++++++++++++++++++++++++++++++++++--
 10 files changed, 599 insertions(+), 18 deletions(-)
    

Revisions

Patches download mbox

Tests

Applying: chamelium: Pass dimensions instead of mode to pattern generation helper
Using index info to reconstruct a base tree...
M	tests/kms_chamelium.c
Falling back to patching base and 3-way merge...
Auto-merging tests/kms_chamelium.c
CONFLICT (content): Merge conflict in tests/kms_chamelium.c
Patch failed at 0001 chamelium: Pass dimensions instead of mode to pattern generation helper
Use 'git am --show-current-patch' to see the failed patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

Patches download mbox

Tests

Applying: chamelium: Pass dimensions instead of mode to pattern generation helper
Using index info to reconstruct a base tree...
M	tests/kms_chamelium.c
Falling back to patching base and 3-way merge...
Auto-merging tests/kms_chamelium.c
CONFLICT (content): Merge conflict in tests/kms_chamelium.c
Patch failed at 0001 chamelium: Pass dimensions instead of mode to pattern generation helper
Use 'git am --show-current-patch' to see the failed patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".