yum-mirror/slang

Making it easier to work with shaders

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

James Helferty (NVIDIA)render-test: Change D3D12 default to sm_6_5 (#8320)f02b08490

master
1.3 KiB46 linesraw
1//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-vk -render-feature cooperative-vector -emit-spirv-directly
2//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.
3//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cpu 
4
5// CHECK: 0
6// CHECK-NEXT: 0
7// CHECK-NEXT: 1
8// CHECK-NEXT: 2
9// CHECK-NEXT: 0
10// CHECK-NEXT: 0
11// CHECK-NEXT: 1
12// CHECK-NEXT: 2
13// CHECK-NEXT: 0
14// CHECK-NEXT: 0
15// CHECK-NEXT: 1
16// CHECK-NEXT: 2
17
18//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0], stride=4):out,name=outputBuffer
19RWByteAddressBuffer outputBuffer;
20
21//TEST_INPUT:ubuffer(data=[4 3 5 7], stride=4),name=input1
22ByteAddressBuffer input1;
23
24//TEST_INPUT:ubuffer(data=[2 3 4 5], stride=4),name=input2
25ByteAddressBuffer input2;
26
27[numthreads(1, 1, 1)]
28void computeMain()
29{
30    let vec1 = coopVecLoad<4, int32_t>(input1);
31    let vec2 = coopVecLoad<4, int32_t>(input2);
32
33    let vec3 = CoopVec<float, 4>(vec1);
34    let vec4 = CoopVec<float, 4>(vec2);
35
36    let vec5 = CoopVec<uint, 4>(vec1);
37    let vec6 = CoopVec<uint, 4>(vec2);
38
39    let result = vec1 % vec2;
40    let result2 = CoopVec<int, 4>(vec3 % vec4);
41    let result3 = CoopVec<int, 4>(vec5 % vec6);
42
43    result.store(outputBuffer);
44    result2.store(outputBuffer, 16);
45    result3.store(outputBuffer, 32);
46}