yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

Yong HeDefer immutable buffer loads when emitting spirv. (#7579)c701ec00c

master
622 B25 linesraw
1//TEST:SIMPLE(filecheck=CHECK): -target spirv
2
3// CHECK-DAG: %[[cbuffer__t:[A-Za-z0-9_]+]] = OpTypeStruct %_ptr_PhysicalStorageBuffer_uint 
4// CHECK-DAG: %light_buffer = OpVariable %_ptr_PushConstant_[[cbuffer__t]] PushConstant
5
6// CHECK: Op{{.*}}AccessChain %_ptr_PushConstant
7// CHECK-NEXT: OpLoad
8// CHECK-NEXT: OpBitcast %_ptr_PhysicalStorageBuffer
9
10struct LightBuffer {
11    uint8_t lights[];
12}
13
14[vk::push_constant]
15LightBuffer* light_buffer;
16
17[shader("vertex")]
18float4 vertMain() : SV_Position {
19    return float4(light_buffer.lights[0]);
20}
21
22[shader("fragment")]
23float4 fragMain() : COLOR0 {
24    return float4(1.0);
25}