yum-mirror/slang

Making it easier to work with shaders

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

Ellie HermaszewskaAllow Link time constant array length sizing, warn on unsupported functionality (#7067)c94ca1692

master
907 B22 linesraw
1//TEST:COMPILE: tests/bugs/link-time-constant-array-size-lib.slang -o tests/bugs/link-time-constant-array-size-lib.slang-module
2//TEST:COMPILE: tests/bugs/link-time-constant-array-size-main.slang -o tests/bugs/link-time-constant-array-size-main.slang-module
3//TEST:SIMPLE(filecheck=SPIRV): -r tests/bugs/link-time-constant-array-size-main.slang-module -r tests/bugs/link-time-constant-array-size-lib.slang-module -target spirv -o out.spv -stage compute -entry computeMain
4
5extern static const int N;
6
7// SPIRV: ([[# @LINE+1]]): warning 31000
8struct S { int xs[N]; }
9
10RWStructuredBuffer<S> b;
11
12ParameterBlock<S> p;
13
14[numthreads(1, 1, 1)]
15void computeMain()
16{
17    // check that we multiply by our special number
18    // SPIRV: [[fisqr:%[a-zA-Z0-9_]+]] = OpConstant %int 1597463007
19    // SPIRV: {{%[0-9]+}} = OpIMul %int {{%[0-9]+}} [[fisqr]]
20    for(int i = 0; i < N; ++i)
21        b[0].xs[i] = p.xs[i] * N;
22}