yum-mirror/slang

Making it easier to work with shaders

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

Yong HeAdd `requirePrelude()` intrinsic function. (#3250)f20f4e2b3

master
978 B38 linesraw
1
2//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cpu -compute -output-using-type
3//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cuda -compute -output-using-type 
4//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cpu -compute -output-using-type
5
6int myIntrinsicFunc()
7{
8    __target_switch
9    {
10    case cpp:
11    case hlsl:
12    case cuda:
13        __requirePrelude(R"(#define MY_CUDA_INTRINSIC 100)");
14        __intrinsic_asm "(MY_CUDA_INTRINSIC)";
15    }
16}
17
18int myIntrinsicFunc1()
19{
20    __target_switch
21    {
22    case cpp:
23    case hlsl:
24    case cuda:
25        __requirePrelude(R"(#define MY_CUDA_INTRINSIC 100)");
26        __intrinsic_asm "(MY_CUDA_INTRINSIC + 1)";
27    }
28}
29
30//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
31RWStructuredBuffer<uint> outputBuffer;
32
33[numthreads(1, 1, 1)]
34void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
35{
36    // CHECK: 201
37    outputBuffer[0] = myIntrinsicFunc() + myIntrinsicFunc1();
38}