123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- #version 320 es
- #extension GL_NV_compute_shader_derivatives : require
- layout (local_size_x = 2, local_size_y = 4) in;
- layout(derivative_group_linearNV) in;
- buffer block {
- float fDerivativeX;
- float fDerivativeY;
- float fDerivativeWidth;
- float fCoarseDerivativeX;
- float fCoarseDerivativeY;
- float fCoarseDerivativeWidth;
- float fFineDerivativeX;
- float fFineDerivativeY;
- float fFineDerivativeWidth;
-
- float fX;
- float fY;
-
-
- vec2 v2DerivativeX;
- vec2 v2DerivativeY;
- vec2 v2DerivativeWidth;
- vec2 v2CoarseDerivativeX;
- vec2 v2CoarseDerivativeY;
- vec2 v2CoarseDerivativeWidth;
- vec2 v2FineDerivativeX;
- vec2 v2FineDerivativeY;
- vec2 v2FineDerivativeWidth;
-
- vec2 v2X;
- vec2 v2Y;
-
-
- vec3 v3DerivativeX;
- vec3 v3DerivativeY;
- vec3 v3DerivativeWidth;
- vec3 v3CoarseDerivativeX;
- vec3 v3CoarseDerivativeY;
- vec3 v3CoarseDerivativeWidth;
- vec3 v3FineDerivativeX;
- vec3 v3FineDerivativeY;
- vec3 v3FineDerivativeWidth;
-
- vec3 v3X;
- vec3 v3Y;
-
-
- vec4 v4DerivativeX;
- vec4 v4DerivativeY;
- vec4 v4DerivativeWidth;
- vec4 v4CoarseDerivativeX;
- vec4 v4CoarseDerivativeY;
- vec4 v4CoarseDerivativeWidth;
- vec4 v4FineDerivativeX;
- vec4 v4FineDerivativeY;
- vec4 v4FineDerivativeWidth;
-
- vec4 v4X;
- vec4 v4Y;
- };
- void main(){
- fDerivativeX = dFdx(fX);
- fDerivativeY = dFdy(fY);
- fDerivativeWidth = fwidth(fX);
- fCoarseDerivativeX = dFdxCoarse(fX);
- fCoarseDerivativeY = dFdyCoarse(fY);
- fCoarseDerivativeWidth = fwidthCoarse(fX);
- fFineDerivativeX = dFdxFine(fX);
- fFineDerivativeY = dFdyFine(fY);
- fFineDerivativeWidth = fwidthFine(fX);
- v2DerivativeX = dFdx(v2X);
- v2DerivativeY = dFdy(v2Y);
- v2DerivativeWidth = fwidth(v2X);
- v2CoarseDerivativeX = dFdxCoarse(v2X);
- v2CoarseDerivativeY = dFdyCoarse(v2Y);
- v2CoarseDerivativeWidth = fwidthCoarse(v2X);
- v2FineDerivativeX = dFdxFine(v2X);
- v2FineDerivativeY = dFdyFine(v2Y);
- v2FineDerivativeWidth = fwidthFine(v2X);
- v3DerivativeX = dFdx(v3X);
- v3DerivativeY = dFdy(v3Y);
- v3DerivativeWidth = fwidth(v3X);
- v3CoarseDerivativeX = dFdxCoarse(v3X);
- v3CoarseDerivativeY = dFdyCoarse(v3Y);
- v3CoarseDerivativeWidth = fwidthCoarse(v3X);
- v3FineDerivativeX = dFdxFine(v3X);
- v3FineDerivativeY = dFdyFine(v3Y);
- v3FineDerivativeWidth = fwidthFine(v3X);
- v4DerivativeX = dFdx(v4X);
- v4DerivativeY = dFdy(v4Y);
- v4DerivativeWidth = fwidth(v4X);
- v4CoarseDerivativeX = dFdxCoarse(v4X);
- v4CoarseDerivativeY = dFdyCoarse(v4Y);
- v4CoarseDerivativeWidth = fwidthCoarse(v4X);
- v4FineDerivativeX = dFdxFine(v4X);
- v4FineDerivativeY = dFdyFine(v4Y);
- v4FineDerivativeWidth = fwidthFine(v4X);
- }
|