yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
7d7027853
master
1//TEST:SIMPLE(filecheck=CHECK): -stage fragment -target spirv -emit-spirv-directly -entry main 2 3RWStructuredBuffer<float> output; 4 5void main() 6{ 7 { 8 // CHECK: OpFwidth 9 float w = 1.0; 10 float b = fwidth(w); 11 output[0] = b; 12 13 // CHECK: OpDPdx 14 float b1 = ddx(w); 15 output[1] = b1; 16 // CHECK: OpDPdy 17 float b2 = ddy(w); 18 output[2] = b2; 19 20 // CHECK: OpFwidthCoarse 21 float b3 = fwidth_coarse(w); 22 output[3] = b3; 23 24 // CHECK: OpDPdxCoarse 25 float b4 = ddx_coarse(w); 26 output[4] = b4; 27 28 // CHECK: OpDPdyCoarse 29 float b5 = ddy_coarse(w); 30 output[5] = b5; 31 32 // CHECK: OpFwidthFine 33 float b6 = fwidth_fine(w); 34 output[6] = b6; 35 36 // CHECK: OpDPdxFine 37 float b7 = ddx_fine(w); 38 output[7] = b7; 39 40 // CHECK: OpDPdyFine 41 float b8 = ddy_fine(w); 42 output[8] = b8; 43 } 44 45 { 46 // CHECK: OpFwidth 47 float3 w = 1.0; 48 float3 b = fwidth(w); 49 output[9] = b.x; 50 51 // CHECK: OpDPdx 52 float3 b1 = ddx(w); 53 output[10] = b1.x; 54 // CHECK: OpDPdy 55 float3 b2 = ddy(w); 56 output[11] = b2.x; 57 58 // CHECK: OpFwidthCoarse 59 float3 b3 = fwidth_coarse(w); 60 output[12] = b3.x; 61 62 // CHECK: OpDPdxCoarse 63 float3 b4 = ddx_coarse(w); 64 output[13] = b4.x; 65 66 // CHECK: OpDPdyCoarse 67 float3 b5 = ddy_coarse(w); 68 output[14] = b5.x; 69 70 // CHECK: OpFwidthFine 71 float3 b6 = fwidth_fine(w); 72 output[15] = b6.x; 73 74 // CHECK: OpDPdxFine 75 float3 b7 = ddx_fine(w); 76 output[16] = b7.x; 77 78 // CHECK: OpDPdyFine 79 float3 b8 = ddy_fine(w); 80 output[17] = b8.x; 81 } 82}