yum-mirror/slang

Making it easier to work with shaders

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

Jay KwakFix potential test failures due to SPIRV validation failure (#6047)6437f2d37

master
1.0 KiB54 linesraw
1//TEST:SIMPLE(filecheck=CHK): -target spirv -entry computeMain
2
3// Delegated constructors
4struct Impl
5{
6    float x;
7
8    __init(float val)
9    {
10        x = val;
11    }
12
13    __init()
14    {
15        float val = 2.0;
16
17        // Shouldn't trigger a warning here
18        return Impl(val);
19    }
20}
21
22// Calling a method from a constructor to initialize fields
23struct HitInfo
24{
25    float3 barycentrics;
26    uint primitiveIndex;
27    
28    [[mutating]] void init(float2 hitBarycentrics, uint hitPrimitiveIndex)
29    {
30        barycentrics = { 1.0 - hitBarycentrics.x - hitBarycentrics.y, hitBarycentrics.x, hitBarycentrics.y };
31        primitiveIndex = hitPrimitiveIndex;
32    }
33
34    __init(float2 hitBarycentrics, uint hitPrimitiveIndex)
35    {
36        init(hitBarycentrics, hitPrimitiveIndex);
37    }
38
39    __init(BuiltInTriangleIntersectionAttributes attr)
40    {
41        init(attr.barycentrics, PrimitiveIndex());
42    }
43}
44
45//CHK-NOT: warning 41020
46//CHK-NOT: warning 41021
47
48
49[Shader("compute")]
50[NumThreads(4, 1, 1)]
51void computeMain(int3 dispatchThreadID : SV_DispatchThreadID)
52{
53}
54