57 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			GLSL
		
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			GLSL
		
	
	
	
#version 450 core
 | 
						|
 | 
						|
out gl_PerVertex {
 | 
						|
    float gl_CullDistance[3];
 | 
						|
};
 | 
						|
 | 
						|
void main()
 | 
						|
{
 | 
						|
    gl_CullDistance[2] = 4.5;
 | 
						|
}
 | 
						|
 | 
						|
out bool outb;         // ERROR
 | 
						|
out sampler2D outo;    // ERROR
 | 
						|
out float outa[4];
 | 
						|
out float outaa[4][2];
 | 
						|
struct S { float f; };
 | 
						|
out S outs;
 | 
						|
out S[4] outasa;
 | 
						|
out S outsa[4];
 | 
						|
struct SA { float f[4]; };
 | 
						|
out SA outSA;
 | 
						|
struct SS { float f; S s; };
 | 
						|
out SS outSS;
 | 
						|
 | 
						|
layout(binding = 0) uniform atomic_uint aui;
 | 
						|
uint ui;
 | 
						|
 | 
						|
void foo()
 | 
						|
{
 | 
						|
    SS::f;
 | 
						|
    atomicCounterAdd(aui, ui);           // ERROR, need 4.6
 | 
						|
    atomicCounterSubtract(aui, ui);      // ERROR, need 4.6
 | 
						|
    atomicCounterMin(aui, ui);           // ERROR, need 4.6
 | 
						|
    atomicCounterMax(aui, ui);           // ERROR, need 4.6
 | 
						|
    atomicCounterAnd(aui, ui);           // ERROR, need 4.6
 | 
						|
    atomicCounterOr(aui, ui);            // ERROR, need 4.6
 | 
						|
    atomicCounterXor(aui, ui);           // ERROR, need 4.6
 | 
						|
    atomicCounterExchange(aui, ui);      // ERROR, need 4.6
 | 
						|
    atomicCounterCompSwap(aui, ui, ui);  // ERROR, need 4.6
 | 
						|
 | 
						|
    int a = gl_BaseVertex + gl_BaseInstance + gl_DrawID; // ERROR, need 4.6
 | 
						|
 | 
						|
    bool b1;
 | 
						|
    anyInvocation(b1);        // ERROR, need 4.6
 | 
						|
    allInvocations(b1);       // ERROR, need 4.6
 | 
						|
    allInvocationsEqual(b1);  // ERROR, need 4.6
 | 
						|
}
 | 
						|
; // ERROR: no extraneous semicolons
 | 
						|
 | 
						|
layout(location = 0) uniform locBlock {        // ERROR, no location uniform block
 | 
						|
    int a;
 | 
						|
};
 | 
						|
 | 
						|
layout(location = 0) buffer locBuffBlock {     // ERROR, no location on buffer block
 | 
						|
    int b;
 | 
						|
};
 |