yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
f02b08490
master
1//DISABLE_TEST:SIMPLE(filecheck=CHECK): -target glsl -stage compute -entry computeMain 2// CHECK-COUNT-6: {{.* }}= 0U; 3 4//DISABLE_TEST(compute, vulkan):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-vk -compute -entry computeMain -allow-glsl 5//DISABLE_TEST(compute, vulkan):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-vk -compute -entry computeMain -emit-spirv-directly -allow-glsl 6//DISABLE_TEST(compute, vulkan):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-cpu -compute -entry computeMain -allow-glsl 7//DISABLE_TEST(smoke,compute):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-dx12 -compute -entry computeMain -allow-glsl -profile sm_6_2 -xslang -DDX12 8 9//TEST_INPUT:ubuffer(data=[0], stride=4):out,name=outputBuffer 10RWStructuredBuffer<int> outputBuffer; 11 12struct idefault1 : IDefaultInitializable 13{ 14 uint data; 15}; 16 17struct idefault2_base : IDefaultInitializable 18{ 19 uint data1; 20}; 21struct idefault2 : idefault2_base 22{ 23 uint data2 = 1; 24}; 25 26interface idefault3_base : IDefaultInitializable 27{ 28}; 29struct idefault3 : idefault3_base 30{ 31 uint data; 32}; 33 34struct idefault4 35{ 36 uint data; 37}; 38 39extension idefault4 : IDefaultInitializable 40{ 41} 42 43struct idefault5_base : IDefaultInitializable 44{ 45 uint data1; 46}; 47 48struct idefault5 : idefault5_base 49{ 50 uint data2; 51}; 52 53idefault1 getDefault1() 54{ 55 idefault1 default1; 56 return default1; 57} 58idefault2 getDefault2() 59{ 60 idefault2 default2; 61 return default2; 62} 63idefault3 getDefault3() 64{ 65 idefault3 default3; 66 return default3; 67} 68idefault4 getDefault4() 69{ 70 idefault4 default4; 71 return default4; 72} 73 74idefault5 getDefault5() 75{ 76 idefault5 default5; 77 return default5; 78} 79 80[numthreads(1, 1, 1)] 81void computeMain(int3 dispatchThreadID: SV_DispatchThreadID) 82{ 83 // BUF: 1 84 idefault1 default1 = getDefault1(); 85 idefault2 default2 = getDefault2(); 86 idefault3 default3 = getDefault3(); 87 idefault4 default4 = getDefault4(); 88 idefault5 default5 = getDefault5(); 89 90 outputBuffer[0] = true 91 && default1.data == 0 92 93 && default2.data1 == 0 94 && default2.data2 == 1 95 96 && default3.data == 0 97 98 && default4.data == 0 99 100 && default5.data1 == 0 101 && default5.data2 == 0 102 ; 103}