34 lines
		
	
	
		
			1013 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1013 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| #version 450
 | |
| 
 | |
| int nonuniformEXT;
 | |
| 
 | |
| #extension GL_EXT_nonuniform_qualifier : enable
 | |
| 
 | |
| nonuniformEXT in vec4 nu_inv4;
 | |
| nonuniformEXT float nu_gf;
 | |
| 
 | |
| nonuniformEXT out vec4 nu_outv4;           // ERROR, out
 | |
| nonuniformEXT uniform vec4 nu_uv4;         // ERROR, uniform
 | |
| nonuniformEXT const float nu_constf = 1.0; // ERROR, const
 | |
| 
 | |
| nonuniformEXT int foo(nonuniformEXT int nupi, nonuniformEXT out int f)
 | |
| {
 | |
|     return nupi;
 | |
| }
 | |
| 
 | |
| void main()
 | |
| {
 | |
|     nonuniformEXT int nu_li;
 | |
|     nonuniformEXT const int nu_ci = 2; // ERROR, const
 | |
| 
 | |
|     foo(nu_li, nu_li);
 | |
|     int table[5];
 | |
|     int a;
 | |
|     nu_li = nonuniformEXT(a) + nonuniformEXT(a * 2);
 | |
|     nu_li = nonuniformEXT(a, a);       // ERROR, too many arguments
 | |
|     nu_li = nonuniformEXT();           // ERROR, no arguments
 | |
|     nu_li = table[nonuniformEXT(3)];
 | |
| }
 | |
| layout(location=1) in struct S { float a; nonuniformEXT float b; } ins;  // ERROR, not on member
 | |
| layout(location=3) in inbName { float a; nonuniformEXT float b; } inb;   // ERROR, not on member
 | 
