yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

James Helferty (NVIDIA)Prohibit use of buffer.GetDimensions on metal (#8156)feb1569d9

master
1.6 KiB35 linesraw
1//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): -target metal -stage compute -entry cmain -DTEST=0 -DBUFFER_TYPE=StructuredBuffer
2//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): -target metal -stage compute -entry cmain -DTEST=0 -DBUFFER_TYPE=RWStructuredBuffer
3//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): -target metal -stage compute -entry cmain -DTEST=0 -DBUFFER_TYPE=AppendStructuredBuffer
4//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): -target metal -stage compute -entry cmain -DTEST=0 -DBUFFER_TYPE=ConsumeStructuredBuffer
5//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): -target metal -stage compute -entry cmain -DTEST=0 -DBUFFER_TYPE=RasterizerOrderedStructuredBuffer
6//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): -target metal -stage compute -entry cmain -DTEST=1 -DBUFFER_TYPE=ByteAddressBuffer
7//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): -target metal -stage compute -entry cmain -DTEST=1 -DBUFFER_TYPE=RWByteAddressBuffer
8//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): -target metal -stage compute -entry cmain -DTEST=1 -DBUFFER_TYPE=RasterizerOrderedByteAddressBuffer
9
10//TEST_INPUT:ubuffer(data=[0 0], stride=4):out,name outputBuffer
11RWStructuredBuffer<uint> outputBuffer;
12
13//TEST_INPUT:ubuffer(data=[7 2 9 53], stride=4):name buffer
14#if TEST == 0
15BUFFER_TYPE<int> buffer;
16#elif TEST==1
17BUFFER_TYPE buffer;
18#endif
19
20//CHECK: error 36107:
21//CHECK: buffer.GetDimensions
22
23[shader("compute")]
24[numthreads(1, 1, 1)]
25void cmain(uint3 dispatchThreadID : SV_DispatchThreadID)
26{
27    uint count = 0, stride = 0;
28#if TEST == 0
29    buffer.GetDimensions(count, stride);
30#elif TEST == 1
31    buffer.GetDimensions(count);
32#endif
33	outputBuffer[0] = count;
34    outputBuffer[1] = stride;
35}