summaryrefslogtreecommitdiffstats
path: root/tests/metal
diff options
context:
space:
mode:
authorJames Helferty (NVIDIA) <jhelferty@nvidia.com>2025-08-15 06:02:01 -0700
committerGitHub <noreply@github.com>2025-08-15 13:02:01 +0000
commitfeb1569d972f294ce482ea8b1645da6cde4e982d (patch)
treede019b45af2c09a78f550bc06cf241a9c454826a /tests/metal
parentcfd08da1036cf72b8e6c6f661260b968f79667e7 (diff)
Prohibit use of buffer.GetDimensions on metal (#8156)
Fixes #7011
Diffstat (limited to 'tests/metal')
-rw-r--r--tests/metal/get-dimensions-error.slang35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/metal/get-dimensions-error.slang b/tests/metal/get-dimensions-error.slang
new file mode 100644
index 000000000..a632ece0b
--- /dev/null
+++ b/tests/metal/get-dimensions-error.slang
@@ -0,0 +1,35 @@
+//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): -target metal -stage compute -entry cmain -DTEST=0 -DBUFFER_TYPE=StructuredBuffer
+//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): -target metal -stage compute -entry cmain -DTEST=0 -DBUFFER_TYPE=RWStructuredBuffer
+//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): -target metal -stage compute -entry cmain -DTEST=0 -DBUFFER_TYPE=AppendStructuredBuffer
+//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): -target metal -stage compute -entry cmain -DTEST=0 -DBUFFER_TYPE=ConsumeStructuredBuffer
+//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): -target metal -stage compute -entry cmain -DTEST=0 -DBUFFER_TYPE=RasterizerOrderedStructuredBuffer
+//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): -target metal -stage compute -entry cmain -DTEST=1 -DBUFFER_TYPE=ByteAddressBuffer
+//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): -target metal -stage compute -entry cmain -DTEST=1 -DBUFFER_TYPE=RWByteAddressBuffer
+//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): -target metal -stage compute -entry cmain -DTEST=1 -DBUFFER_TYPE=RasterizerOrderedByteAddressBuffer
+
+//TEST_INPUT:ubuffer(data=[0 0], stride=4):out,name outputBuffer
+RWStructuredBuffer<uint> outputBuffer;
+
+//TEST_INPUT:ubuffer(data=[7 2 9 53], stride=4):name buffer
+#if TEST == 0
+BUFFER_TYPE<int> buffer;
+#elif TEST==1
+BUFFER_TYPE buffer;
+#endif
+
+//CHECK: error 36107:
+//CHECK: buffer.GetDimensions
+
+[shader("compute")]
+[numthreads(1, 1, 1)]
+void cmain(uint3 dispatchThreadID : SV_DispatchThreadID)
+{
+ uint count = 0, stride = 0;
+#if TEST == 0
+ buffer.GetDimensions(count, stride);
+#elif TEST == 1
+ buffer.GetDimensions(count);
+#endif
+ outputBuffer[0] = count;
+ outputBuffer[1] = stride;
+}