yum-mirror/slang

Making it easier to work with shaders

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

Yong HeFix ICE when immutable value is passed to a bwd_diff function. (#7973)b8663a5d9

master
616 B23 linesraw
1//TEST:SIMPLE(filecheck=CHECK): -target spirv
2[Differentiable]
3float square(float x, float y)
4{
5    return x * x + y * y;
6}
7
8void main()
9{
10    // Forward mode differentiation
11    let x = diffPair(3.0, 1.0); // x = 3, 𝜕x/𝜕𝛉 = 1
12    let y = diffPair(4.0, 1.0); // y = 4, 𝜕y/𝜕𝛄 = 1
13    let result = fwd_diff(square)(x, y);
14    printf("dResult: %f\n", result.d);
15
16    // Backward mode differentiation
17    let dLdSquare = 1.0f;
18    // CHECK-NOT: error 30049
19    // CHECK: error 30047
20    // CHECK-NOT: error 30049
21    bwd_diff(square)(x, y, dLdSquare);
22    printf("dL/dx: %f, dL/dy: %f\n", x.d, y.d);
23}