1#version 450 core 2 3out gl_PerVertex { 4 float gl_CullDistance[3]; 5}; 6 7void main() 8{ 9 gl_CullDistance[2] = 4.5; 10} 11 12out bool outb; // ERROR 13out sampler2D outo; // ERROR 14out float outa[4]; 15out float outaa[4][2]; 16struct S { float f; }; 17out S outs; 18out S[4] outasa; 19out S outsa[4]; 20struct SA { float f[4]; }; 21out SA outSA; 22struct SS { float f; S s; }; 23out SS outSS; 24 25layout(binding = 0) uniform atomic_uint aui; 26uint ui; 27 28void foo() 29{ 30 SS::f; 31 atomicCounterAdd(aui, ui); // ERROR, need 4.6 32 atomicCounterSubtract(aui, ui); // ERROR, need 4.6 33 atomicCounterMin(aui, ui); // ERROR, need 4.6 34 atomicCounterMax(aui, ui); // ERROR, need 4.6 35 atomicCounterAnd(aui, ui); // ERROR, need 4.6 36 atomicCounterOr(aui, ui); // ERROR, need 4.6 37 atomicCounterXor(aui, ui); // ERROR, need 4.6 38 atomicCounterExchange(aui, ui); // ERROR, need 4.6 39 atomicCounterCompSwap(aui, ui, ui); // ERROR, need 4.6 40 41 int a = gl_BaseVertex + gl_BaseInstance + gl_DrawID; // ERROR, need 4.6 42 43 bool b1; 44 anyInvocation(b1); // ERROR, need 4.6 45 allInvocations(b1); // ERROR, need 4.6 46 allInvocationsEqual(b1); // ERROR, need 4.6 47} 48; // ERROR: no extraneous semicolons 49 50layout(location = 0) uniform locBlock { // ERROR, no location uniform block 51 int a; 52}; 53 54layout(location = 0) buffer locBuffBlock { // ERROR, no location on buffer block 55 int b; 56}; 57