summaryrefslogtreecommitdiffstats
path: root/tests/language-feature/higher-order-functions/generic.slang
blob: af538bee1898ad18a944cb37862bd875f20c79d4 (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
//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj

//TEST_INPUT:ubuffer(data=[0], stride=4):out,name=outputBuffer
RWStructuredBuffer<int> outputBuffer;
[numthreads(1, 1, 1)]
void computeMain(uint tig : SV_GroupIndex)
{
    outputBuffer[tig] = zap();
}

func foo(f : functype (float) -> int) -> int
{
    return f(0);
}

int bap<T>(float)
{
    return 1;
}

int zap()
{
    // We should be able to specify which foo we want
    return foo(bap<bool>);
}