Skip to content

guarding tracy gpu instrumentation on non tracy builds #23

guarding tracy gpu instrumentation on non tracy builds

guarding tracy gpu instrumentation on non tracy builds #23

name: Rendering tests
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
rendering-tests:
runs-on: ubuntu-latest
env:
GOLDEN_DIR: ${{ github.workspace }}/tests/golden_headless_vulkan
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Vulkan SDK
uses: humbletim/setup-vulkan-sdk@v1.2.1
with:
vulkan-query-version: 1.4.341.1
vulkan-components: Vulkan-Headers, Vulkan-Loader, SPIRV-Tools, Glslang
vulkan-use-cache: true
- name: Cache SwiftShader
id: cache-swiftshader
uses: actions/cache@v4
with:
path: ${{ runner.temp }}/swiftshader
key: swiftshader-89556131bf9d
- name: Build SwiftShader (software Vulkan ICD)
if: steps.cache-swiftshader.outputs.cache-hit != 'true'
run: |
git clone https://swiftshader.googlesource.com/SwiftShader /tmp/swiftshader-src
git -C /tmp/swiftshader-src checkout 89556131bf9d48af3c5c9fbb9a3322e706da89a3
cmake -S /tmp/swiftshader-src -B /tmp/swiftshader-src/build \
-DCMAKE_BUILD_TYPE=Release \
-DSWIFTSHADER_BUILD_TESTS=OFF \
-DSWIFTSHADER_BUILD_BENCHMARKS=OFF
cmake --build /tmp/swiftshader-src/build --config Release -j$(nproc)
mkdir -p ${{ runner.temp }}/swiftshader
cp /tmp/swiftshader-src/build/Linux/libvk_swiftshader.so ${{ runner.temp }}/swiftshader/
- name: Register SwiftShader ICD
run: |
sudo mkdir -p /etc/vulkan/icd.d
echo '{
"file_format_version": "1.0.0",
"ICD": {
"library_path": "${{ runner.temp }}/swiftshader/libvk_swiftshader.so",
"api_version": "1.1.0"
}
}' | sudo tee /etc/vulkan/icd.d/swiftshader.json
- name: Configure
run: >
cmake -B build
-DCMAKE_BUILD_TYPE=Release
-DNOTHOFAGUS_BACKEND_VULKAN=ON
-DNOTHOFAGUS_HEADLESS_VULKAN=ON
-DNOTHOFAGUS_BUILD_TESTS=ON
-DNOTHOFAGUS_USE_GLSLANG=ON
-S ${{ github.workspace }}
- name: Build
run: cmake --build build --config Release --target rendering_tests
- name: Run tests against Vulkan golden files
run: ./build/tests/rendering_tests
- name: Update Vulkan golden files if missing
if: failure()
run: |
echo "Tests failed — regenerating Vulkan golden files."
echo "If this is expected (rendering change), run locally:"
echo " GOLDEN_DIR=tests/golden_headless_vulkan UPDATE_GOLDEN=1 ./build/tests/rendering_tests"
echo "Then commit the updated golden_headless_vulkan/ files."
UPDATE_GOLDEN=1 ./build/tests/rendering_tests
echo "--- Updated golden files ---"
ls -la tests/golden_headless_vulkan/