yum-mirror/slang

Making it easier to work with shaders

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

jarcherNVEnable CUDA testing for batch 2 (#8147)3618f7a4c

master
797 B27 linesraw
1//TEST:SIMPLE(filecheck=CHECK): -target hlsl -line-directive-mode none -stage compute -entry computeMain
2//TEST:SIMPLE(filecheck=CHECK): -target cuda -line-directive-mode none
3
4//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
5RWStructuredBuffer<float> outputBuffer;
6
7[BackwardDifferentiable]
8[PreferRecompute]
9float comp(float a, float b)
10{
11    // CHECK: standard error = {
12    // CHECK-NEXT: }
13    return a * b;
14}
15
16
17[shader("compute")]
18[numthreads(128, 1, 1)]
19void computeMain(uint3 group_thread_id: SV_GroupThreadID, uint3 dispatch_thread_id: SV_DispatchThreadID)
20{
21    DifferentialPair<float> value1 = diffPair(3.f, 0.f);
22    DifferentialPair<float> value2 = diffPair(3.f, 0.f);
23
24    bwd_diff(comp)(value1, value2, 1.f);
25
26    outputBuffer[dispatch_thread_id.x] = value1.d;
27}