 5053a39578
			
		
	
	
		5053a39578
		
	
	
	
	
		
			
			- don't inherit 'binding' - always set the member storage qualifier, not just when the shader explicitly set it - don't include in/out members as objects that are resized by geometry/primitive layout specifiers As a side effect, this makes built-in redeclarations (like gl_ClipDistance) require in/out. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24674 e7fa87d3-cd2b-0410-9028-fcbf551c1848
		
			
				
	
	
		
			47 lines
		
	
	
		
			649 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			649 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| #version 300 es
 | |
| 
 | |
| precision mediump float;
 | |
| 
 | |
| struct S {
 | |
|     vec4 u;
 | |
|     uvec4 v;
 | |
|     lowp isampler3D sampler;
 | |
|     vec3 w;
 | |
|     struct T1 {           // ERROR
 | |
|         int a;
 | |
|     } t;
 | |
| };
 | |
| 
 | |
| uniform S s;
 | |
| 
 | |
| uniform fooBlock {
 | |
|     uvec4 bv;
 | |
|     uniform mat2 bm2;
 | |
|     lowp isampler2D sampler;   // ERROR
 | |
|     struct T2 {           // ERROR
 | |
|         int a;
 | |
|     } t;
 | |
|     S fbs;
 | |
| };
 | |
| 
 | |
| uniform barBlock {
 | |
|     uvec4 nbv;
 | |
|     int ni;
 | |
| } inst;
 | |
| 
 | |
| uniform barBlockArray {
 | |
|     uvec4 nbv;
 | |
|     int ni;
 | |
| } insts[4];
 | |
| 
 | |
| uniform unreferenced {
 | |
|     float f;
 | |
|     uint u;
 | |
| };
 | |
| 
 | |
| void main()
 | |
| {
 | |
|     texture(s.sampler, vec3(inst.ni, bv.y, insts[2].nbv.z));
 | |
|     insts[s.v.x];         // ERROR
 | |
| }
 |