summaryrefslogtreecommitdiffstats
path: root/tests/diagnostics/structuredbuffer-resource-struct-array.slang
diff options
context:
space:
mode:
Diffstat (limited to 'tests/diagnostics/structuredbuffer-resource-struct-array.slang')
-rw-r--r--tests/diagnostics/structuredbuffer-resource-struct-array.slang27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/diagnostics/structuredbuffer-resource-struct-array.slang b/tests/diagnostics/structuredbuffer-resource-struct-array.slang
new file mode 100644
index 000000000..891a63b07
--- /dev/null
+++ b/tests/diagnostics/structuredbuffer-resource-struct-array.slang
@@ -0,0 +1,27 @@
+//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): -target spirv
+
+struct HasResource
+{
+ Texture2D tex;
+}
+
+//CHECK-DAG: ([[# @LINE+1]]): error 38204
+StructuredBuffer<HasResource> bufferArray[4];
+
+//CHECK-DAG: ([[# @LINE+1]]): error 38204
+RWStructuredBuffer<Texture2D> rwBufferArray[2];
+
+SamplerState sampler;
+RWStructuredBuffer<float> output;
+
+[numthreads(4, 1, 1)]
+void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
+{
+ uint i = dispatchThreadID.x;
+
+ // Force usage of all array elements and struct members
+ float result = bufferArray[i % 4][i].tex.Sample(sampler, float2(0, 0)).x;
+ rwBufferArray[i % 2][i] = bufferArray[0][i].tex;
+ output[i] = result;
+}
+