yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
3618f7a4c
master
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}