107 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| #version 450
 | |
| #extension GL_NV_compute_shader_derivatives : require
 | |
| 
 | |
| layout (local_size_x = 2, local_size_y = 4) in;
 | |
| layout(derivative_group_quadsNV) 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);
 | |
| }
 |