diff --git a/test/Feature/ResourceArrays/overflow-unbounded-array.test b/test/Feature/ResourceArrays/overflow-unbounded-array.test new file mode 100644 index 000000000..91319c8c7 --- /dev/null +++ b/test/Feature/ResourceArrays/overflow-unbounded-array.test @@ -0,0 +1,73 @@ +#--- source.hlsl + +[[vk::binding(0)]] +RWBuffer Buf0 : register(u0); +[[vk::binding(1)]] +RWBuffer Buf[] : register(u1); + +[numthreads(4,2,1)] +void main() { + for (int i = 0; i < 4; i++) { + Buf[1][i] = Buf0[i] * 2; + Buf[2][i] = Buf[0][i] + Buf[1][i]; + } +} + +//--- pipeline.yaml +--- +Shaders: + - Stage: Compute + Entry: main + DispatchSize: [1, 1, 1] +Buffers: + - Name: Buf0 + Format: Int32 + Data: [ 1, 2, 3, 4 ] + + - Name: Buf + Format: Int32 + ArraySize: 3 + Data: + - [ 1, 2, 3, 4 ] + - [ 0, 0, 0, 0 ] + - [ 0, 0, 0, 0 ] + + - Name: ExpectedBuf + Format: Int32 + ArraySize: 3 + Data: + - [ 1, 2, 3, 4 ] + - [ 2, 4, 6, 8 ] + - [ 3, 6, 9, 12 ] + +Results: + - Result: Buf + Rule: BufferExact + Actual: Buf + Expected: ExpectedBuf + +DescriptorSets: + - Resources: + - Name: Buf0 + Kind: RWBuffer + DirectXBinding: + Register: 0 + Space: 0 + VulkanBinding: + Binding: 0 + - Name: Buf + Kind: RWBuffer + DirectXBinding: + Register: 1 + Space: 0 + VulkanBinding: + Binding: 1 +... +#--- end + +# Unimplemented https://github.com/llvm/offload-test-suite/issues/305 +# XFAIL: Metal + +# RUN: split-file %s %t +# RUN: %dxc_target -T cs_6_0 -Fo %t.o %t/source.hlsl +# RUN: %offloader %t/pipeline.yaml %t.o