summaryrefslogtreecommitdiffstats
path: root/tests/language-feature/resource-specialization-struct-out.slang
blob: b525dafb9476078d574fee9571b94edc5073c64e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//TEST:SIMPLE(filecheck=CHECK_DXIL):-target dxil -entry computeMain -profile cs_6_2
//CHECK_DXIL: computeMain

// This test demonstrates out parameter with a struct & resource type.
    
RWTexture1D<int> g_t;

RWStructuredBuffer<int> outputBuffer;

struct Thing
{
    int a;
    RWTexture1D<int> t;
};

void setThing(out Thing t)
{
    t.a = 10;
    t.t = g_t;
}

[numthreads(4, 4, 1)]
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
{
    int x = dispatchThreadID.x;
   
    Thing thing;
    setThing(thing);
        
    outputBuffer[dispatchThreadID.x] = x + thing.t.Load(1); 
}