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
989 B32 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 -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}