diff options
| author | Yong He <yonghe@outlook.com> | 2024-06-01 19:26:14 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-01 19:26:14 -0700 |
| commit | c5a453e56985022deb820cbbb2ff5cd6a8347e34 (patch) | |
| tree | 019c81e8bfcc099f2ff17c1a58f625cf6a527d47 /tests/spirv | |
| parent | 5799281bda2f9a174b825de4058c5e8c9aa5b27f (diff) | |
Support different SPIRV versions. (#4254)
Diffstat (limited to 'tests/spirv')
| -rw-r--r-- | tests/spirv/array-resource.slang | 1 | ||||
| -rw-r--r-- | tests/spirv/discard.slang | 22 | ||||
| -rw-r--r-- | tests/spirv/spv-version.slang | 18 |
3 files changed, 40 insertions, 1 deletions
diff --git a/tests/spirv/array-resource.slang b/tests/spirv/array-resource.slang index b6edf9b27..69eafc98a 100644 --- a/tests/spirv/array-resource.slang +++ b/tests/spirv/array-resource.slang @@ -20,6 +20,5 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) uint threadId = dispatchThreadID.x; resultBuffer[threadId] = inputBuffers[0][threadId] + inputBuffers[1][threadId]; // CHECK: OpCapability RuntimeDescriptorArray - // CHECK: OpExtension "SPV_EXT_descriptor_indexing" // BUFFER: 3 } diff --git a/tests/spirv/discard.slang b/tests/spirv/discard.slang new file mode 100644 index 000000000..e0859371e --- /dev/null +++ b/tests/spirv/discard.slang @@ -0,0 +1,22 @@ +//TEST:SIMPLE(filecheck=SPV16): -target spirv -profile spirv_1_6 +//TEST:SIMPLE(filecheck=SPV15): -target spirv -profile spirv_1_5 +//TEST:SIMPLE(filecheck=SPV14): -target spirv -profile spirv_1_4+SPV_EXT_demote_to_helper_invocation + +uniform int a; + +// Test that we translate `discard` to OpDemoateToHelperInvocation +// when targeting SPIRV 1.6, and to OpKill when targeting SPIRV 1.5. +// If the user explicitly specified SPV_EXT_demote_to_helper_invocation +// in the profile, we will also emit OpDemoteToHelperInvocation. + +//SPV16: OpDemoteToHelperInvocation +//SPV15: OpKill +//SPV14: OpDemoteToHelperInvocation + +[shader("fragment")] +float4 frag() : SV_Target +{ + if (a == 0) + discard; + return 0; +}
\ No newline at end of file diff --git a/tests/spirv/spv-version.slang b/tests/spirv/spv-version.slang new file mode 100644 index 000000000..e9cc81929 --- /dev/null +++ b/tests/spirv/spv-version.slang @@ -0,0 +1,18 @@ +//TEST:SIMPLE(filecheck=SPIRV15): -target spirv + +//TEST:SIMPLE(filecheck=SPIRV14): -target spirv -profile spirv_1_4 + +// Test that we can use -profile to control the resulting spirv version. + +// By default, we emit spirv 1.5 + +// SPIRV15: Version: 1.5 + +// If the user specified an explicit spirv version, we will use it. +// SPIRV14: Version: 1.4 + +[numthreads(1,1,1)] +void main() +{ + +}
\ No newline at end of file |
