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
844 B46 linesraw
1//TEST(compute):COMPARE_COMPUTE: -shaderobj
2//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
3
4//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
5RWStructuredBuffer<float> outputBuffer;
6
7interface IAdd
8{
9    float addf(float u, float v);
10}
11
12interface ISub
13{
14    float subf(float u, float v);
15}
16
17interface IAddAndSub
18{
19    float addf(float u, float v);
20    float subf(float u, float v);    
21}
22
23struct Simple : IAdd, ISub, IAddAndSub
24{
25    float addf(float u, float v)
26    {
27        return u+v;
28    }
29    float subf(float u, float v)
30    {
31        return u-v;
32    }
33};
34
35float testAddSub<T:IAddAndSub>(T t)
36{
37    return t.subf(t.addf(1.0, 1.0), 1.0);
38}
39
40[numthreads(4, 1, 1)]
41void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
42{
43    Simple s;
44	float outVal = testAddSub(s);
45	outputBuffer[dispatchThreadID.x] = outVal;
46}