diff options
| author | Yong He <yonghe@outlook.com> | 2024-02-10 23:05:35 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-10 23:05:35 -0800 |
| commit | 03cddba97e821c013023d51fb7d3d61a130a2a9f (patch) | |
| tree | 152c159d81dff9471fd726013179c9780e2cd341 | |
| parent | 20ab16178e45d07b4dc0104a7a98865d18440b62 (diff) | |
Fix spirv legalization of nested ararys. (#3567)
* Fix spirv legalization of nested ararys.
* Fix test.
| -rw-r--r-- | source/slang/slang-ir-spirv-legalize.cpp | 3 | ||||
| -rw-r--r-- | tests/spirv/array-of-array.slang | 12 |
2 files changed, 13 insertions, 2 deletions
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<float4> 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)); +} |
