yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
d964555d2
master
1//TEST:SIMPLE(filecheck=CHECK): -target spirv 2 3//CHECK: OpEntryPoint 4 5struct TypeA { 6 float4 placeholder; 7}; 8struct TypeB { 9 float4 placeholder; 10}; 11 12[[vk::binding(0, 0)]] 13StructuredBuffer<TypeA> a_buffers[] : register(t0, space0); 14[[vk::binding(0, 1)]] 15StructuredBuffer<TypeB> b_buffer : register(t0, space0); 16 17struct VertexIn { 18 int32_t vert_idx : SV_VertexID; 19 [[KnownBuiltin(0)]] 20 uint32_t draw_idx : POSITION0; 21}; 22 23[shader("vertex")] 24float4 vert(VertexIn i) : SV_POSITION { 25 // Proper usage of NonUniformResourceIndex works fine 26 float4 a = 27 a_buffers[NonUniformResourceIndex(i.draw_idx)][i.vert_idx].placeholder; 28 // Incorrect usage but dxc compiles this with no warning 29 float4 b = b_buffer[NonUniformResourceIndex(i.draw_idx)].placeholder; 30 return a + b; 31}