[HLSL][SPIRV] Broken module when copying local resource arrays targeting Vulkan
- Dominant language
- LLVM
- Stars
- 40.5k
- Forks
- 18.7k
- PR merge metrics
- PR metrics pending
Description
Compiling an HLSL compute shader that copies a local resource array (RWByteAddressBuffer dst[2] = src;) crashes with "error in backend: Broken module found" when targeting Vulkan SPIRV. The DXIL backend compiles successfully.
Repro:
```hlsl
RWByteAddressBuffer Out : register(u0);
RWByteAddressBuffer Aux : register(u1);
[numthreads(1,1,1)]
void main() {
RWByteAddressBuffer src[2];
src[0] = Out;
src[1] = Aux;
RWByteAddressBuffer dst[2] = src;
dst[0].Store(0, 42);
}
```
Command: `clang-dxc -spirv -fspv-target-env=vulkan1.3 -T cs_6_0 -Fo out.o input.hlsl`
Error:
```
fatal error: error in backend: Broken module found, compilation aborted!
```
Stack dump:
```
#3 LLVMErrorHandler cc1_main.cpp:82
#4 llvm::report_fatal_error ErrorHandling.cpp:117
#5 llvm::report_fatal_error ErrorHandling.cpp:96
#6 llvm::VerifierPass::run Verifier.cpp:8378
```
Clang version: 23.0.0git (commit a6451547)
Contributor guide
Assessment
This issue has not been assessed yet.