#version 440

// Note 'location' tests for enhanced layouts are in 330.frag

layout(location = 2, component = 2) in vec2 a; 
layout(location = 2, component = 1) in float b; 

layout(location = 3, component = 2) in vec3 c;      // ERROR: c overflows components 2 and 3

layout(location = 0, component = 3) in float d[4]; 

layout(location = 4, component = 0) in vec3 e[5];
layout(location = 4, component = 3) in float f[5];

layout(location = 9, component = 4) in float g[6];   // ERROR, component too big

layout(location = 4, component = 2) in vec2 h;       // component overlap okay for vertex in

layout(location = 3, component = 2) out vec2 i;
layout(location = 3, component = 0) out vec2 j;

layout(location = 4, component = 2) out vec2 k;
layout(location = 4, component = 2) out vec2 m;      // ERROR, component overlap

layout(location = 2, component = 2) out vec2 n;
layout(location = 2, component = 0) out vec3 p;      // ERROR, component overlap

layout(location = 10, component = 3) out float q[6]; 
layout(location = 10, component = 0) out vec3 r[6];

layout(location = 15, component = 3) out float s;    // ERROR, overlap
layout(location = 10, component = 1) out float t;    // ERROR, overlap

layout(location = 20, component = 2) out float u;
layout(location = 20, component = 0) out float v;
layout(location = 20, component = 3) out float w;
layout(location = 20, component = 1) out vec2 x;     // ERROR, overlap

layout(location = 30, component = 3) out vec2 y;     // ERROR, goes to component 4
layout(location = 31, component = 1) out vec4 z;     // ERROR, goes to component 4

layout(location = 32, component = 1) out mat4 ba;               // ERROR
layout(location = 33, component = 1) out struct S {int a;} Ss;  // ERROR
layout(location = 34, component = 1) out bn { int a;} bb;       // ERROR

layout(component = 1) out float bc;    // ERROR, no location

out blockname {
    layout(location = 40, component = 2) out float u;
    layout(location = 40, component = 0) out float v;
    layout(location = 40, component = 3) out float w;
    layout(location = 40, component = 1) out vec2 x;     // ERROR, overlap

    layout(location = 41, component = 3) out vec2 y;     // ERROR, goes to component 4
    layout(location = 42, component = 1) out vec4 z;     // ERROR, goes to component 4

    layout(location = 42, component = 1) out mat4 ba;    // ERROR
    layout(location = 43, component = 1) out S Ss;       // ERROR
} bd;

layout(location = 1, component = 1) out;                 // ERROR, no global setting

layout(location = 50, component = 3) out int be;
layout(location = 50, component = 0) out vec3 bf;

out bblck1 {
    vec4 bbv;
} bbinst1;

out bblck2 {
    layout(xfb_offset=64) vec4 bbv;
} bbinst2;

layout(xfb_buffer = 3, xfb_stride = 64) out;  // default buffer is 3

out bblck3 {
    layout(xfb_offset=16) vec4 bbv;  // in xfb_buffer 3
} bbinst3;

uniform ubblck3 {
    layout(xfb_offset=16) vec4 bbv;  // ERROR, not in a uniform
} ubbinst3;

layout(xfb_buffer=2, xfb_offset=48, xfb_stride=80) out vec4 bg;
layout(              xfb_offset=32, xfb_stride=64) out vec4 bh;

layout(xfb_offset=48) out; // ERROR

layout(xfb_stride=80, xfb_buffer=2, xfb_offset=16) out bblck4 {
    vec4 bbv1;
    vec4 bbv2;
} bbinst4;

out bblck5 {
    layout(xfb_offset=0) vec4 bbv1;
    layout(xfb_stride=64, xfb_buffer=3, xfb_offset=48) vec4 bbv2;
    layout(xfb_buffer=2) vec4 bbv3;                               // ERROR, wrong buffer
} bbinst5;

out layout(xfb_buffer=2) bblck6 {
    layout(xfb_offset=0) vec4 bbv1;
    layout(xfb_stride=64, xfb_buffer=3, xfb_offset=32) vec4 bbv2; // ERROR, overlap 32 from bh, and buffer contradiction
    layout(xfb_buffer=2, xfb_offset=0) vec4 bbv3;                 // ERROR, overlap 0 from bbinst5
    layout(xfb_buffer=2) vec4 bbv5;
    layout(xfb_offset=24) float bbf6;                             // ERROR, overlap 24 from bbv1 in bbinst4
} bbinst6;

layout(xfb_stride=48) out;                   // ERROR, stride of buffer 3

layout(xfb_buffer=1) out;  // default buffer is 1
layout(xfb_offset=4) out float bj;
layout(xfb_offset=0) out ivec2 bk;           // ERROR, overlap 4

layout(xfb_buffer=3, xfb_stride=48) out;     // ERROR, stride of buffer 3 (default is now 3)
layout(xfb_stride=48) out float bl;          // ERROR, stride of buffer 3

layout(xfb_stride=48) out bblck7 {           // ERROR, stride of buffer 3
    layout(xfb_stride=64) vec4 bbv1;
    layout(xfb_stride=32) vec4 bbv2;         // ERROR, stride of buffer 3
} bbinst7;

struct S5 {
    int i;    // 4 bytes plus 4 byte hole
    double d; // 8 bytes
    float f;  // 4 bytes
};  // total size = 20

struct T {
    bool b;   // 4 plus 4 byte hole
    S5 s;     // 20 
    vec2 v2;  // 8
};  // total size = 36

out layout(xfb_buffer=0, xfb_offset=0, xfb_stride=92) bblck8 {  // ERROR, stride not multiple of 8
    bool b;    // offset 0
    T t;       // offset 8, size 40
    int i;     // offset 40 + 4 = 48
    mat3x3 m3; // offset 52
    float f;   // offset 52 + 9*4 = 88
    float g;   // ERROR, overflow stride
} bbinst8;

out layout(xfb_buffer=4) bblck9 {
    layout(xfb_offset=1) bool b;     // ERROR
    layout(xfb_offset=12) T t;       // ERROR
    layout(xfb_offset=52) mat3x3 m3; // non-multiple of 8 okay
    layout(xfb_offset=90) int i;     // ERROR
    layout(xfb_offset=98) double d;  // ERROR
    layout(xfb_offset=108) S s;      // non-multiple of 8 okay
} bbinst9;

layout(xfb_buffer=5, xfb_stride=6) out;     // link ERROR, stride not multiple of 4
layout(xfb_offset=0) out float bm;

layout(xfb_buffer=6, xfb_stride=2000) out;  // ERROR, stride too big

out layout(xfb_buffer=7, xfb_offset=0) bblck10 {  // link ERROR, implicit stride too big
    dmat4x4 m1;
    dmat4x4 m2;
    float f;
} bbinst10;
