From 03cddba97e821c013023d51fb7d3d61a130a2a9f Mon Sep 17 00:00:00 2001 From: Yong He Date: Sat, 10 Feb 2024 23:05:35 -0800 Subject: Fix spirv legalization of nested ararys. (#3567) * Fix spirv legalization of nested ararys. * Fix test. --- source/slang/slang-ir-spirv-legalize.cpp | 3 +-- tests/spirv/array-of-array.slang | 12 ++++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 tests/spirv/array-of-array.slang diff --git a/source/slang/slang-ir-spirv-legalize.cpp b/source/slang/slang-ir-spirv-legalize.cpp index 474ebc71c..62829f553 100644 --- a/source/slang/slang-ir-spirv-legalize.cpp +++ b/source/slang/slang-ir-spirv-legalize.cpp @@ -258,8 +258,7 @@ struct SPIRVLegalizationContext : public SourceEmitterBase } for (auto i : instsToRemove) - if (!i->hasUses()) - i->removeAndDeallocate(); + i->removeAndDeallocate(); } // Returns true if the given type that should be decorated as in `UniformConstant` address space. diff --git a/tests/spirv/array-of-array.slang b/tests/spirv/array-of-array.slang new file mode 100644 index 000000000..de1f70e7f --- /dev/null +++ b/tests/spirv/array-of-array.slang @@ -0,0 +1,12 @@ +//TEST:SIMPLE(filecheck=CHECK):-target spirv -entry main -stage compute -emit-spirv-directly -skip-spirv-validation + +Texture2D texArray[3][4][5]; +RWStructuredBuffer outputBuffer; + +// CHECK: OpEntryPoint + +[shader("compute")] +void main(uint3 tid : SV_DispatchThreadID) +{ + outputBuffer[0] = texArray[tid.x][tid.y][tid.z].Load(int3(1,2,3)); +} -- cgit v1.2.3