yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
7b4d02803
master
1//TEST(compute, vulkan):COMPARE_COMPUTE(filecheck-buffer=CHECK):-vk -shaderobj 2//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cuda -shaderobj 3 4// CHECK: 2 5// CHECK-NEXT: 1 6// CHECK-NEXT: 4 7// CHECK-NEXT: 3 8// CHECK-NEXT: 6 9// CHECK-NEXT: 5 10// CHECK-NEXT: 8 11// CHECK-NEXT: 7 12 13struct S 14{ 15 int a; 16 int b; 17}; 18 19//TEST_INPUT:ubuffer(data=[1 2 3 4 5 6 7 8], stride=8):out,name=buf 20RWStructuredBuffer<S> buf; 21 22S test(S s) 23{ 24 s.a = s.a ^ s.b; 25 s.b = s.a ^ s.b; 26 s.a = s.a ^ s.b; 27 return s; 28} 29 30[numthreads(4, 1, 1)] 31// void computeMain(uint i : SV_GroupIndex) 32// { 33// buf[i] = test(buf[i]); 34// } 35void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) 36{ 37 buf[dispatchThreadID.x] = test(buf[dispatchThreadID.x]); 38}