From fef0a87ddee9c0f252a6625395b684b1cb5d85e0 Mon Sep 17 00:00:00 2001 From: ArielG-NV <159081215+ArielG-NV@users.noreply.github.com> Date: Tue, 30 Jul 2024 23:03:24 -0400 Subject: Fix invalid code generation for when using nested resource specialization (#4751) --- .../resource-specialization-struct-return.slang | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 tests/language-feature/resource-specialization-struct-return.slang (limited to 'tests/language-feature/resource-specialization-struct-return.slang') diff --git a/tests/language-feature/resource-specialization-struct-return.slang b/tests/language-feature/resource-specialization-struct-return.slang new file mode 100644 index 000000000..ca01f55d2 --- /dev/null +++ b/tests/language-feature/resource-specialization-struct-return.slang @@ -0,0 +1,29 @@ +//TEST:SIMPLE(filecheck=CHECK_DXIL):-target dxil -entry computeMain -profile cs_6_2 +//CHECK_DXIL: computeMain + +// This test demonstrates returning struct with resource. + +RWTexture1D g_t; +RWStructuredBuffer outputBuffer; + +struct Thing +{ + int a; + RWTexture1D t; +}; + +Thing makeThing() +{ + Thing t; + t.a = 10; + t.t = g_t; + return t; +} + +[numthreads(4, 4, 1)] +void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +{ + int x = dispatchThreadID.x; + Thing thing = makeThing(); + outputBuffer[dispatchThreadID.x] = x + thing.t.Load(1); +} \ No newline at end of file -- cgit v1.2.3