From feb1569d972f294ce482ea8b1645da6cde4e982d Mon Sep 17 00:00:00 2001 From: "James Helferty (NVIDIA)" Date: Fri, 15 Aug 2025 06:02:01 -0700 Subject: Prohibit use of buffer.GetDimensions on metal (#8156) Fixes #7011 --- tests/metal/get-dimensions-error.slang | 35 ++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 tests/metal/get-dimensions-error.slang (limited to 'tests') 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 outputBuffer; + +//TEST_INPUT:ubuffer(data=[7 2 9 53], stride=4):name buffer +#if TEST == 0 +BUFFER_TYPE 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; +} -- cgit v1.2.3