yum-mirror/slang

Making it easier to work with shaders

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

Harsh Aggarwal (NVIDIA)Fix#8085: Batch-9: Enable cuda tests (#8269)bf607e2f3

master
867 B43 linesraw
1//DISABLED_TEST(compute):COMPARE_COMPUTE: -shaderobj
2//TEST(compute):COMPARE_COMPUTE: -shaderobj -cuda
3
4//TEST_INPUT:type Material<1,2>
5
6//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
7RWStructuredBuffer<int> outputBuffer;
8
9interface IBRDF
10{
11    int compute();
12};
13
14interface IMaterial
15{
16    associatedtype TBRDF : IBRDF;
17    TBRDF getBRDF();
18}
19
20struct BRDF<let A:int, let B:int> : IBRDF
21{
22    int c;
23    int compute()
24    {
25        return A+B;        
26    }
27};
28
29struct Material<let A:int, let B: int> : IMaterial
30{
31    typedef BRDF<A,B> TBRDF;
32    TBRDF getBRDF() { TBRDF a; a.c = 0; return a; }
33};
34
35[numthreads(1, 1, 1)]
36void computeMain<M : IMaterial>(
37    uniform M material,
38    uint3 dispatchThreadID : SV_DispatchThreadID)
39{
40    M.TBRDF brdf = material.getBRDF();
41	int outVal = brdf.compute();
42	outputBuffer[dispatchThreadID.x] = outVal;
43}