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 -DRWSB 3 4// CHECK: type: int32_t 5// CHECK-NEXT: 1 6// CHECK-NEXT: 2 7// CHECK-NEXT: 3 8// CHECK-NEXT: 4 9// CHECK-NEXT: 5 10// CHECK-NEXT: 6 11// CHECK-NEXT: 7 12// CHECK-NEXT: 8 13 14//TEST_INPUT:ubuffer(data=[1 2 3 4 5 6 7 8], stride=4, count=256),name=buf 15#if defined(RWSB) 16RWStructuredBuffer<int32_t> inputBuffer; 17#else 18StructuredBuffer<int32_t> inputBuffer; 19#endif 20 21//TEST_INPUT:ubuffer(stride=4, count=256):out,name=outputBuffer 22RWStructuredBuffer<int32_t> outputBuffer; 23 24using namespace linalg; 25 26[numthreads(32, 1, 1)] 27void computeMain() 28{ 29 let stride = 16; 30 let mat = coopMatLoad<int32_t, MemoryScope.Subgroup, 16, 16, CoopMatMatrixUse.MatrixAccumulator, CoopMatMatrixLayout.RowMajor>(inputBuffer, 0, stride); 31 mat.Store<CoopMatMatrixLayout.RowMajor>(outputBuffer, 0, stride); 32}