From 1e7f5418c293d3a9ca91ae4648ca2d522ec2ebe7 Mon Sep 17 00:00:00 2001 From: Yong He Date: Tue, 19 Nov 2024 14:43:15 -0800 Subject: Fix wgsl legalization around __ref parameter. (#5597) * Fix wgsl legalization around __ref parameter. * Add intrinsic and test case. --- tests/wgsl/workgroup-uniform-load.slang | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 tests/wgsl/workgroup-uniform-load.slang (limited to 'tests') diff --git a/tests/wgsl/workgroup-uniform-load.slang b/tests/wgsl/workgroup-uniform-load.slang new file mode 100644 index 000000000..3ace37826 --- /dev/null +++ b/tests/wgsl/workgroup-uniform-load.slang @@ -0,0 +1,25 @@ +// groupshared-ref-param.slang + +//TEST:SIMPLE(filecheck=CHECK): -target wgsl -entry computeMain -stage compute + + +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer +RWStructuredBuffer outputBuffer; + +groupshared uint sharedVal; + +// Expect sharedVal to be passed by reference. +// +// CHECK: fn computeMain({{.*}}({{.*}}) +// CHECK: {{.*}}workgroupUniformLoad(&((sharedVal_{{[a-zA-Z0-9_]*}}))){{.*}}; +// CHECK: } + + +[numthreads(1, 1, 1)] +void computeMain(int3 dispatchThreadID: SV_DispatchThreadID) +{ + int idx = dispatchThreadID.x; + + sharedVal = 1; + outputBuffer[0] = workgroupUniformLoad(sharedVal); +} \ No newline at end of file -- cgit v1.2.3