yum-mirror/slang

Making it easier to work with shaders

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

Jay KwakSupport Vulkan memory model (#7057)d58243d90

master
942 B31 linesraw
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}