yum-mirror/slang

Making it easier to work with shaders

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

kaizhangNVFeature/initialize list side branch (#6058)9ec6b9168

master
775 B35 linesraw
1//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=BUFFER):-shaderobj -vk
2//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=BUFFER):-shaderobj
3
4struct DefaultMember {
5  int x = 0;
6  int y = 1;
7  // compiler synthesizes:
8  // __init(int x = 0, int y = 1);
9}
10
11//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
12RWStructuredBuffer<int> outputBuffer;
13void test()
14{
15   DefaultMember m1 = {1}; // calls `__init(1)`, initialized to `{1,1}`.
16
17   // BUFFER: 1
18   outputBuffer[0] = m1.x;
19
20   // BUFFER-NEXT: 1
21   outputBuffer[1] = m1.y;
22
23   DefaultMember m2 = {1,2}; // calls `__init(1,2)`, initialized to `{1,2}`.
24
25   // BUFFER-NEXT: 1
26   outputBuffer[2] = m2.x;
27   // BUFFER-NEXT: 2
28   outputBuffer[3] = m2.y;
29}
30
31[shader("compute")]
32void computeMain()
33{
34    test();
35}