#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; | |
}; |