ci: build with SPIRV-Tools so the shader tests validate their output

CI configures without ANYPS5_ENABLE_SPIRV_TOOLS, so the shader recompiler never validates or
optimizes the SPIR-V it emits - Recompiler.cpp guards the ValidateAndOptimizeSpirv call on that
macro - and the shader tests lose the blocks that exercise it:

- ShaderMemory.cpp guards five blocks on the macro, including three expectFailure cases that are
  the only coverage for rejecting invalid SPIR-V and for rejecting an unsupported Vulkan or SPIR-V
  target.
- SpirvOptimizer.cpp includes the SPIRV-Tools headers, so the file is not built at all.
- README.md gives the Spirv-Tools validation as how the recompiler is known to produce valid
  SPIR-V, and no job exercises it.

Add the flag to CONFIGURE. Verified with the CI command and the CI device (lavapipe, subgroup 8,
ANYPS5_REQUIRE_VULKAN=1, GALLIUM_OVERRIDE_CPU_CAPS=avx): the full suite passes 371/371 with the
flag on, with the same 20 skips, and agc_shader_memory passes.

SPIRV-Tools is a submodule built from source, so this adds build time to the job. I have not
measured how much; if it is too much, the flag can go on one job instead of the shared CONFIGURE.
This commit is contained in:
Dextroid17 2026-10-06 22:12:33 -04:00 committed by Adrià Franch
parent c8a2f06325
commit d386818579
1 changed files with 1 additions and 0 deletions

View File

@ -16,6 +16,7 @@ concurrency:
env:
CONFIGURE: >-
-G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON
-DANYPS5_ENABLE_SPIRV_TOOLS=ON
-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache