diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/diagnostics/wavesize-invalid-size.slang | 18 | ||||
| -rw-r--r-- | tests/hlsl/wave-size.slang | 13 |
2 files changed, 31 insertions, 0 deletions
diff --git a/tests/diagnostics/wavesize-invalid-size.slang b/tests/diagnostics/wavesize-invalid-size.slang new file mode 100644 index 000000000..840434137 --- /dev/null +++ b/tests/diagnostics/wavesize-invalid-size.slang @@ -0,0 +1,18 @@ +//TEST:SIMPLE(filecheck=CHECK): -target hlsl -stage compute -entry computeMain + +//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], stride=4):out,name=outputBuffer +RWStructuredBuffer<int> outputBuffer; + +// Print an error when the numLanes is an invalid value for WaveSize. +// The value has to be a power of 2 between 4 and 128, inclusive. +// In other words, the set: [4, 8, 16, 32, 64, 128]. + +// "5" is an invalid value for WaveSize +// CHECK: error 31103: +[WaveSize(5)] +[numthreads(4, 1, 1)] +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) +{ + int tid = dispatchThreadID.x; + outputBuffer[tid] = tid; +} diff --git a/tests/hlsl/wave-size.slang b/tests/hlsl/wave-size.slang new file mode 100644 index 000000000..3fc6363c4 --- /dev/null +++ b/tests/hlsl/wave-size.slang @@ -0,0 +1,13 @@ +//TEST:SIMPLE(filecheck=CHECK): -target hlsl -stage compute -entry computeMain + +//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], stride=4):out,name=outputBuffer +RWStructuredBuffer<int> outputBuffer; + +// CHECK: [WaveSize(4)] +[WaveSize(4)] +[numthreads(4, 1, 1)] +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) +{ + int tid = dispatchThreadID.x; + outputBuffer[tid] = tid; +} |
