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