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
597 B21 linesraw
1//TEST:SIMPLE(filecheck=CHECK): -target spirv -emit-spirv-directly
2
3struct Foo {
4  column_major float3x2 m;
5};
6
7struct Params {
8  Foo *foo;
9};
10
11// CHECK: %[[PTR0:[A-Za-z0-9_]+]] = Op{{.*}}AccessChain %_ptr_PhysicalStorageBuffer__arr_v3float_int_2 %{{.*}} %int_0
12// CHECK: %[[PTR1:[A-Za-z0-9_]+]]  = Op{{.*}}AccessChain %_ptr_PhysicalStorageBuffer_v3float %[[PTR0]] %int_1
13// CHECK: %[[PTR2:[A-Za-z0-9_]+]]  = Op{{.*}}AccessChain %_ptr_PhysicalStorageBuffer_float %[[PTR1]] %int_2
14
15ConstantBuffer<Params> params;
16
17[shader("compute")]
18[numthreads(1,1,1)]
19void main() {
20  params.foo.m[2][1] += 1.0;
21}