John Kessenich | 6996841 | 2014-08-13 06:37:59 +0000 | [diff] [blame] | 1 | #version 450 core
|
| 2 |
|
| 3 | out gl_PerVertex {
|
| 4 | float gl_CullDistance[3];
|
| 5 | };
|
| 6 |
|
| 7 | void main()
|
| 8 | {
|
| 9 | gl_CullDistance[2] = 4.5;
|
| 10 | }
|
John Kessenich | b07957c | 2014-10-28 05:24:14 +0000 | [diff] [blame] | 11 |
|
| 12 | out bool outb; // ERROR
|
| 13 | out sampler2D outo; // ERROR
|
| 14 | out float outa[4];
|
| 15 | out float outaa[4][2];
|
| 16 | struct S { float f; };
|
| 17 | out S outs;
|
| 18 | out S[4] outasa;
|
| 19 | out S outsa[4];
|
| 20 | struct SA { float f[4]; };
|
| 21 | out SA outSA;
|
| 22 | struct SS { float f; S s; };
|
| 23 | out SS outSS;
|
John Kessenich | 523e20d | 2017-03-10 18:03:43 -0700 | [diff] [blame] | 24 |
|
John Kessenich | 0d0c6d3 | 2017-07-23 16:08:26 -0600 | [diff] [blame] | 25 | layout(binding = 0) uniform atomic_uint aui;
|
| 26 | uint ui;
|
| 27 |
|
John Kessenich | 523e20d | 2017-03-10 18:03:43 -0700 | [diff] [blame] | 28 | void foo()
|
| 29 | {
|
| 30 | SS::f;
|
John Kessenich | 0d0c6d3 | 2017-07-23 16:08:26 -0600 | [diff] [blame] | 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
|
John Kessenich | 941f3bb | 2017-07-23 23:11:41 -0600 | [diff] [blame] | 40 |
|
| 41 | int a = gl_BaseVertex + gl_BaseInstance + gl_DrawID; // ERROR, need 4.6
|
John Kessenich | 934d11b | 2017-07-23 23:31:44 -0600 | [diff] [blame] | 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
|
John Kessenich | 523e20d | 2017-03-10 18:03:43 -0700 | [diff] [blame] | 47 | }
|
John Kessenich | de16e52 | 2017-07-23 14:44:59 -0600 | [diff] [blame] | 48 | ; // ERROR: no extraneous semicolons
|
John Kessenich | e1ff231 | 2017-12-16 10:07:22 -0700 | [diff] [blame] | 49 |
|
| 50 | layout(location = 0) uniform locBlock { // ERROR, no location uniform block
|
| 51 | int a;
|
| 52 | };
|
| 53 |
|
| 54 | layout(location = 0) buffer locBuffBlock { // ERROR, no location on buffer block
|
| 55 | int b;
|
| 56 | };
|