yum-mirror/slang

Making it easier to work with shaders

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

Jay KwakFix VVL errors on coopvec tests (#8541)f55f669d1

master
2.0 KiB69 linesraw
1//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-vk -render-feature cooperative-vector -output-using-type
2
3// These platforms don't support these operations into structured buffers
4//DISABLE_TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-dx12 -render-feature cooperative-vector -dx12-experimental -output-using-type -profile cs_6_9 -Xslang... -Xdxc -Vd -X.
5//DISABLE_TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cpu -output-using-type
6
7// CHECK: type: half
8// CHECK-NEXT: 112.000000
9// CHECK-NEXT: 2.000000
10// CHECK-NEXT: 3.000000
11// CHECK-NEXT: 4.000000
12// CHECK-NEXT: 5.000000
13// CHECK-NEXT: 6.000000
14// CHECK-NEXT: 7.000000
15// CHECK-NEXT: 8.000000
16// CHECK-NEXT: 2.000000
17// CHECK-NEXT: 4.000000
18// CHECK-NEXT: 6.000000
19// CHECK-NEXT: 8.000000
20// CHECK-NEXT: 10.000000
21// CHECK-NEXT: 12.000000
22// CHECK-NEXT: 14.000000
23// CHECK-NEXT: 16.000000
24// CHECK-NEXT: 3.000000
25// CHECK-NEXT: 6.000000
26// CHECK-NEXT: 9.000000
27// CHECK-NEXT: 12.000000
28// CHECK-NEXT: 15.000000
29// CHECK-NEXT: 18.000000
30// CHECK-NEXT: 21.000000
31// CHECK-NEXT: 24.000000
32// CHECK-NEXT: 4.000000
33// CHECK-NEXT: 8.000000
34// CHECK-NEXT: 12.000000
35// CHECK-NEXT: 16.000000
36// CHECK-NEXT: 20.000000
37// CHECK-NEXT: 24.000000
38// CHECK-NEXT: 28.000000
39// CHECK-NEXT: 32.000000
40
41//TEST_INPUT:ubuffer(data=[ 0x40003C00 0x44004200 ], stride=4),name=inputA
42// [1,2,3,4]
43StructuredBuffer<half> inputA;
44
45//TEST_INPUT:ubuffer(data=[ 0x40003C00 0x44004200 0x46004500 0x48004700 ], stride=4),name=inputB
46// [1,2,3,4,5,6,7,8]
47StructuredBuffer<half> inputB;
48
49//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], stride=4):out,name=output
50RWStructuredBuffer<half> output;
51
52[numthreads(1, 1, 1)]
53void computeMain()
54{
55    let vecA = coopVecLoad<4>(inputA);
56    let vecB = coopVecLoad<8>(inputB);
57
58    output[0] = half(111);
59
60    coopVecOuterProductAccumulate(
61        vecA,
62        vecB,
63        output,
64        0,
65        32,
66        CoopVecMatrixLayout::TrainingOptimal,
67        CoopVecComponentType::Float16,
68    );
69}