summaryrefslogtreecommitdiffstats
path: root/tests/current-bugs/resource-struct-return.slang
blob: 8d0508097840161e3ab64e2bae8d290716ee2d6d (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
//DISABLE_TEST:SIMPLE:-target hlsl -entry computeMain -profile cs_6_2

// This test demonstrates returning struct with resource causes internal compiler error

RWTexture1D<float> g_t;
RWStructuredBuffer<int> outputBuffer;

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

Thing makeThing()
{
 	Thing t;
    t.a = 10;
    t.t = g_t;
    return t;
}

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