yum-mirror/slang

Making it easier to work with shaders

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

Tim FoleyConvert more tests to use shader objects (#1659)2a5d5b323

master
622 B38 linesraw
1//TEST(compute):COMPARE_COMPUTE: -shaderobj
2
3//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
4RWStructuredBuffer<float> outputBuffer;
5
6interface IBase
7{
8    float get();
9}
10
11struct BaseImpl : IBase
12{
13    float get() { return 1.0; }
14};
15
16struct S
17{
18    __generic<T:IBase>
19    float eval(T obj)
20    {
21        return obj.get();
22    }
23};
24
25__generic<T : IBase>
26float test(T obj)
27{
28    S s;
29    return s.eval<T>(obj);
30}
31
32[numthreads(4, 1, 1)]
33void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
34{
35    BaseImpl base;
36	float outVal = test<BaseImpl>(base);
37	outputBuffer[dispatchThreadID.x] = outVal;
38}