33 lines
		
	
	
		
			932 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			932 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| #version 450 core
 | |
| 
 | |
| layout(vertices = 4) out;
 | |
| 
 | |
| layout(location=1) patch out vec4 patchOut;
 | |
| 
 | |
| struct S {
 | |
|     float sMem1;  // should not see a patch decoration
 | |
|     float sMem2;  // should not see a patch decoration
 | |
| };
 | |
| 
 | |
| layout(location = 12) patch out TheBlock {
 | |
|     highp float bMem1;  // should not see a location decoration
 | |
|     highp float bMem2;
 | |
|     S s;                // should see a patch decoration
 | |
| } tcBlock[2];
 | |
| 
 | |
| void main()
 | |
| {
 | |
|     gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;
 | |
| }
 | |
| 
 | |
| layout(location = 2) patch out SingleBlock {
 | |
|     highp float bMem1;  // should not see a location decoration
 | |
|     highp float bMem2;
 | |
|     S s;                // should see a patch decoration
 | |
| } singleBlock;
 | |
| 
 | |
| layout(location = 20) patch out bn {
 | |
|                         vec4 v1; // location 20
 | |
|   layout(location = 24) vec4 v2; // location 24
 | |
|                         vec4 v3; // location 25
 | |
| }; | 
