yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
d58243d90
master
1//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-vk -output-using-type -emit-spirv-directly 2//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-vk -output-using-type -emit-spirv-directly -Xslang -DRWBAB 3 4// CHECK: 1 5// CHECK-NEXT: 2 6// CHECK-NEXT: 3 7// CHECK-NEXT: 4 8// CHECK-NEXT: 5 9// CHECK-NEXT: 6 10// CHECK-NEXT: 7 11// CHECK-NEXT: 8 12 13//TEST_INPUT:ubuffer(data=[1 2 3 4 5 6 7 8], stride=4, count=256):name=inputBuffer 14#if defined(RWBAB) 15RWByteAddressBuffer inputBuffer; 16#else 17ByteAddressBuffer inputBuffer; 18#endif 19 20//TEST_INPUT:ubuffer(stride=4, count=256):out,name=outputBuffer 21RWByteAddressBuffer outputBuffer; 22 23using namespace linalg; 24 25[numthreads(32, 1, 1)] 26void computeMain() 27{ 28 let stride = 16; 29 let mat = coopMatLoad<int32_t, MemoryScope.Subgroup, 16, 16, CoopMatMatrixUse.MatrixAccumulator, CoopMatMatrixLayout.RowMajor>(inputBuffer, 0, stride); 30 mat.Store<CoopMatMatrixLayout.RowMajor>(outputBuffer, 0, 16); 31}