From 624eccbab14218ed249216525993ae1109ff3539 Mon Sep 17 00:00:00 2001 From: Giovanni Mascellani Date: Thu, 24 Oct 2024 11:56:54 +0200 Subject: [PATCH] ci: Update the DXC version used on the CI to 1.8.2407. Unfortuantely different versions of DXC accept or fail differently in some cases. We don't care too much about validating the DXC behavior itself, but it's useful that all the CI jobs use the same version so that we don't have to complicate the shader runner language. The macOS version is currently bound to be pretty recent because otherwise libdxil.dylib is not provided. So I'm updating the Linux and Windows version as well. I don't expect it should be particularly hard for other maintainers to keep up with the DXC updates, since it just amounts to downloading a ZIP file and extracting two libraries. --- gitlab/image.docker | 2 +- gitlab/test.yml | 2 +- tests/hlsl/cbuffer.shader_test | 18 +++++------------- tests/hlsl/hull-shader-attributes.shader_test | 4 ++-- 4 files changed, 9 insertions(+), 17 deletions(-) diff --git a/gitlab/image.docker b/gitlab/image.docker index 9807e306..7f18caf0 100644 --- a/gitlab/image.docker +++ b/gitlab/image.docker @@ -81,7 +81,7 @@ RUN export DEBIAN_FRONTEND=noninteractive; \ rm -fr mesa && \ apt-get clean && \ - curl -L -s https://github.com/microsoft/DirectXShaderCompiler/releases/download/v1.7.2308/linux_dxc_2023_08_14.x86_64.tar.gz | tar zx -C /usr/local ./lib/libdxcompiler.so ./lib/libdxil.so && \ + curl -L -s https://github.com/microsoft/DirectXShaderCompiler/releases/download/v1.8.2407/linux_dxc_2024_07_31.x86_64.tar.gz | tar zx -C /usr/local ./lib/libdxcompiler.so ./lib/libdxil.so && \ groupadd host-render -g 800 && \ useradd -m gitlab -G host-render diff --git a/gitlab/test.yml b/gitlab/test.yml index 2e8ee834..e1811ab7 100644 --- a/gitlab/test.yml +++ b/gitlab/test.yml @@ -38,7 +38,7 @@ test-win-64-dxc: tags: - win10-21h2 script: - - 'Invoke-WebRequest -Uri "https://github.com/microsoft/DirectXShaderCompiler/releases/download/v1.7.2308/dxc_2023_08_14.zip" -OutFile ".\dxc.zip"' + - 'Invoke-WebRequest -Uri "https://github.com/microsoft/DirectXShaderCompiler/releases/download/v1.8.2407/dxc_2024_07_31.zip" -OutFile ".\dxc.zip"' - 'Expand-Archive -Path "dxc.zip" -DestinationPath ".\dxc"' - '$Env:PATH += ";" + (Convert-Path ".\dxc\bin\x64")' - git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec './artifacts/driver.cross64.exe $(git cherry $CI_MERGE_REQUEST_DIFF_BASE_SHA HEAD^ | wc -l) $(git rev-parse --short HEAD)' diff --git a/tests/hlsl/cbuffer.shader_test b/tests/hlsl/cbuffer.shader_test index 725c3679..8a83255b 100644 --- a/tests/hlsl/cbuffer.shader_test +++ b/tests/hlsl/cbuffer.shader_test @@ -201,7 +201,7 @@ draw quad probe (0, 0) rgba (0.0, 4.0, 5.0, 6.0) -[pixel shader fail(sm<6)] +[pixel shader fail] // Elements cannot overlap if buffer is used. cbuffer buffer { @@ -215,16 +215,8 @@ float4 main() : sv_target return float4(c, a[1].x, b[0].x, b[1].x); } -[test] -uniform 0 float4 1.0 0.0 0.0 0.0 -uniform 4 float4 2.0 0.0 0.0 0.0 -uniform 8 float4 3.0 0.0 0.0 0.0 -uniform 12 float4 4.0 0.0 0.0 0.0 -todo(sm<6) draw quad -probe (0, 0) rgba (1.0, 3.0, 3.0, 4.0) - -[pixel shader] +[pixel shader fail(sm>=6)] // Elements can overlap if buffer is not used. cbuffer buffer { @@ -316,7 +308,7 @@ float4 main() : sv_target } -[pixel shader fail(sm<6)] +[pixel shader fail] // Matrices must be aligned. cbuffer buffer { @@ -329,7 +321,7 @@ float4 main() : sv_target } -[pixel shader fail(sm<6)] +[pixel shader fail] // Arrays must be aligned. cbuffer buffer { @@ -342,7 +334,7 @@ float4 main() : sv_target } -[pixel shader fail(sm<6)] +[pixel shader fail] // Structs must be aligned. struct apple { diff --git a/tests/hlsl/hull-shader-attributes.shader_test b/tests/hlsl/hull-shader-attributes.shader_test index 0bddf787..50f9ff60 100644 --- a/tests/hlsl/hull-shader-attributes.shader_test +++ b/tests/hlsl/hull-shader-attributes.shader_test @@ -46,7 +46,7 @@ float4 main() : POSITION } % outputcontrolpoints defaults to 0 for SM >= 6. -[hull shader fail(sm<6)] +[hull shader fail] struct patch_constant_data { float edges[2] : SV_TessFactor; @@ -395,7 +395,7 @@ float4 main() : POSITION %% Test the valid range for outputcontrolpoints ([0, 32]). -[hull shader] +[hull shader fail(sm>=6)] struct patch_constant_data { float edges[2] : SV_TessFactor;