yum-mirror/slang

Making it easier to work with shaders

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

Anders Leinowgsl: Conditionally enable some tests based on 'half' support (#5694)0f3ff5f38

master
801 B28 linesraw
1//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj -output-using-type
2//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -wgpu -shaderobj -output-using-type -render-features half
3
4//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
5RWStructuredBuffer<float> outputBuffer;
6
7T writeSingle<T : __BuiltinFloatingPointType>(inout int offset, T value)
8{
9    outputBuffer[offset++] = __realCast<float>(value);
10    return value;
11}
12
13void write<each T : __BuiltinFloatingPointType>(Tuple<T> tuple)
14{
15    int offset = 0;
16    expand writeSingle(offset, each tuple);
17}
18
19[numthreads(1,1,1)]
20void computeMain()
21{
22    // CHECK: 1.0
23    // CHECK: 2.0
24    // CHECK: 3.0
25    // CHECK: 4.0
26    let tuple = Tuple<float, half, float, float>(1.0, 2.0h, 3.0, 4.0);
27    write(tuple);
28}