yum-mirror/slang

Making it easier to work with shaders

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

Yong HeFix `getInheritanceInfo` for `ExtractExistentialType`. (#5971)a8471a1d9

master
722 B40 linesraw
1//TEST:COMPARE_COMPUTE(filecheck-buffer=CHECK): -output-using-type
2
3interface IFoo
4{
5    float get();
6}
7
8extension<FooType : IFoo> FooType {
9    float load()
10    {
11        return get();
12    }
13}
14
15struct Foo : IFoo
16{
17    RWStructuredBuffer<float> buffer;
18    int dummy;
19
20    float get() { return buffer[0]; }
21}
22
23float bugTest(IFoo t)
24{
25    return t.load();
26}
27
28//TEST_INPUT: set input = new Foo { ubuffer(data=[1.0 0 0 0], stride=4), 0 }
29ConstantBuffer<Foo> input;
30
31//TEST_INPUT: set output = out ubuffer(data=[0], stride=4)
32uniform RWStructuredBuffer<float> output;
33
34[shader("compute")]
35[numthreads(1, 1, 1)]
36void computeMain(uint3 dispatchThreadID: SV_DispatchThreadID)
37{
38    // CHECK: 1.0
39    output[0] = bugTest(input);
40}