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