Skip to content

Draft: radeonsi/ci: replace radeonsi-run-tests.py by a local CI based on docker

Samuel Pitoiset requested to merge hakzsam/mesa:radeonsi_vk-cts-image into main

Last year, I created a project called vk-cts-image which allows us to test RADV with a docker image, it includes VK-GL-CTS, vkd3d-proton and Fossilize (it's somehow similar to Mesa CI but it runs locally). Since the RADV/ACO team started to use it intensively, the number of regressions decreased a LOT and most of the GPUs we have are now really stable.

The main advantage to use a docker based approach is that everyone in a team test exactly the same components and we have a reference (everything is embedded in the image except Mesa). vk-cts-image is really close to Mesa CI, it uses the same scripts, the same version of VK-GL-CTS, etc and it uses the CI lists stored directly in Mesa. Given that RadeonSI doesn't have any sort of CI (Stoney is there but it's pretty limited and old), you have to use a couple of scripts to test your driver and the setup doesn't seem trivial. I think vk-cts-image could be a good alternative for you!

I recently added Zink support to vk-cts-image, it supports piglit, GLES2, GLES3, GLES31 and GL46 and it's working quite well. Adding RadeonSI was pretty trivial as you can see here https://gitlab.freedesktop.org/hakzsam/vk-cts-image/-/commits/radeonsi.

Testing RadeonSI would be as simple as ./run-radeonsi.sh -r <gitlab_remote> -b <gitlab_branch> -g <gpu_name>

There is also a couple of options like --no-piglit, --no-deqp, --no-glcts and more.

Future possible improvements:

  • add support for cts-runner (GL conformance testsuite) via a private repo
  • add support for shader-db to compile all shaders from your private repo

Feedbacks welcome!

PS: vk-cts-image could be renamed to something more generic if RadeonSI developers adopt it.

Edited by Samuel Pitoiset

Merge request reports