[igt-dev] [PATCH i-g-t v4 0/6] V3D Job Submission Tests

Maíra Canal
2023-01-30T17:59:01Z

Currently, the V3D tests don't cover the job submission feature of the driver.
Therefore, create tests for DRM_IOCTL_V3D_SUBMIT_CL, an ioctl for submitting
commands to the 3D engine. In order to develop the tests, it was necessary to
bring some Mesa structures to IGT. Those structures have the definitions needed
for the creation of an acceptable packet that can be sent to the GPU.

So, patches 1-3 add the Mesa structures needed for the tests and also create a
struct to manage a CL job, the struct v3d_cl_job. Patch 4 introduces a helper
function to submit a minimal job to the GPU, which will be useful for the tests.
The minimal job will use the Mesa structures to produce a minimal valid packet.
Finally, patches 5-6 include new tests in the V3D test suite for
DRM_IOCTL_V3D_WAIT_BO and DRM_IOCTL_V3D_SUBMIT_CL. The tests for the Wait BO
IOCTL depend on the submission of a job, so they are included in this series.

v1 -> v2:

- s/flags different than zero/invalid flags (Melissa Wen).
- s/simple/single (Melissa Wen).
- Add tests for valid flags that depends on the drivers caps (Melissa Wen).
- Add "valid-multisync-submission" test (Melissa Wen).
- s/multisync out-sync/multiple out-syncs (Melissa Wen).

v2 -> v3:

- Use SPDX license (Kamil Konieczny).

v3 -> v4:

- Fix Checkpatch warnings/errors in all files, except in the generated header
from Mesa in order to keep the file equal to its Mesa counterpart (Kamil
Konieczny).

Best Regards,
- Maíra Canal

Maíra Canal (6):
lib/v3d: Add V3D packet helpers
lib/v3d: Add V3D packet description
lib/v3d: Introduce the struct v3d_cl_job
lib/v3d: Add a helper to create a noop job
tests/v3d_wait_bo: Create test for V3D's Wait BO IOCTL
tests/v3d_submit_cl: Create test for V3D's Submit CL IOCTL

lib/bitpack_helpers.h | 60 +
lib/igt_v3d.c | 183 ++
lib/igt_v3d.h | 18 +
lib/v3d/v3d_cl.h | 139 +
lib/v3d/v3d_packet.h | 5164 ++++++++++++++++++++++++++++++++++
lib/v3d/v3d_packet_helpers.h | 104 +
tests/v3d/meson.build | 2 +
tests/v3d/v3d_submit_cl.c | 380 +++
tests/v3d/v3d_wait_bo.c | 127 +
tests/v3d_ci/v3d.testlist | 28 +
10 files changed, 6205 insertions(+)
create mode 100644 lib/bitpack_helpers.h
create mode 100644 lib/v3d/v3d_cl.h
create mode 100644 lib/v3d/v3d_packet.h
create mode 100644 lib/v3d/v3d_packet_helpers.h
create mode 100644 tests/v3d/v3d_submit_cl.c
create mode 100644 tests/v3d/v3d_wait_bo.c

--
2.39.1