yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
a8471a1d9
master
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}