2 #extension GL_NV_compute_shader_derivatives : require
4 layout (local_size_x = 2, local_size_y = 4) in;
5 layout(derivative_group_quadsNV) in;
10 float fDerivativeWidth;
11 float fCoarseDerivativeX;
12 float fCoarseDerivativeY;
13 float fCoarseDerivativeWidth;
14 float fFineDerivativeX;
15 float fFineDerivativeY;
16 float fFineDerivativeWidth;
24 vec2 v2DerivativeWidth;
25 vec2 v2CoarseDerivativeX;
26 vec2 v2CoarseDerivativeY;
27 vec2 v2CoarseDerivativeWidth;
28 vec2 v2FineDerivativeX;
29 vec2 v2FineDerivativeY;
30 vec2 v2FineDerivativeWidth;
38 vec3 v3DerivativeWidth;
39 vec3 v3CoarseDerivativeX;
40 vec3 v3CoarseDerivativeY;
41 vec3 v3CoarseDerivativeWidth;
42 vec3 v3FineDerivativeX;
43 vec3 v3FineDerivativeY;
44 vec3 v3FineDerivativeWidth;
52 vec4 v4DerivativeWidth;
53 vec4 v4CoarseDerivativeX;
54 vec4 v4CoarseDerivativeY;
55 vec4 v4CoarseDerivativeWidth;
56 vec4 v4FineDerivativeX;
57 vec4 v4FineDerivativeY;
58 vec4 v4FineDerivativeWidth;
65 fDerivativeX = dFdx(fX);
66 fDerivativeY = dFdy(fY);
67 fDerivativeWidth = fwidth(fX);
68 fCoarseDerivativeX = dFdxCoarse(fX);
69 fCoarseDerivativeY = dFdyCoarse(fY);
70 fCoarseDerivativeWidth = fwidthCoarse(fX);
71 fFineDerivativeX = dFdxFine(fX);
72 fFineDerivativeY = dFdyFine(fY);
73 fFineDerivativeWidth = fwidthFine(fX);
75 v2DerivativeX = dFdx(v2X);
76 v2DerivativeY = dFdy(v2Y);
77 v2DerivativeWidth = fwidth(v2X);
78 v2CoarseDerivativeX = dFdxCoarse(v2X);
79 v2CoarseDerivativeY = dFdyCoarse(v2Y);
80 v2CoarseDerivativeWidth = fwidthCoarse(v2X);
81 v2FineDerivativeX = dFdxFine(v2X);
82 v2FineDerivativeY = dFdyFine(v2Y);
83 v2FineDerivativeWidth = fwidthFine(v2X);
86 v3DerivativeX = dFdx(v3X);
87 v3DerivativeY = dFdy(v3Y);
88 v3DerivativeWidth = fwidth(v3X);
89 v3CoarseDerivativeX = dFdxCoarse(v3X);
90 v3CoarseDerivativeY = dFdyCoarse(v3Y);
91 v3CoarseDerivativeWidth = fwidthCoarse(v3X);
92 v3FineDerivativeX = dFdxFine(v3X);
93 v3FineDerivativeY = dFdyFine(v3Y);
94 v3FineDerivativeWidth = fwidthFine(v3X);
97 v4DerivativeX = dFdx(v4X);
98 v4DerivativeY = dFdy(v4Y);
99 v4DerivativeWidth = fwidth(v4X);
100 v4CoarseDerivativeX = dFdxCoarse(v4X);
101 v4CoarseDerivativeY = dFdyCoarse(v4Y);
102 v4CoarseDerivativeWidth = fwidthCoarse(v4X);
103 v4FineDerivativeX = dFdxFine(v4X);
104 v4FineDerivativeY = dFdyFine(v4Y);
105 v4FineDerivativeWidth = fwidthFine(v4X);