2013-04-09 01:20:01 +00:00
|
|
|
#version 300 es
|
|
|
|
|
2013-04-10 23:30:05 +00:00
|
|
|
struct s { vec4 v; };
|
|
|
|
|
2013-04-10 02:06:46 +00:00
|
|
|
layout(location = 7) in vec3 c;
|
2013-04-09 01:20:01 +00:00
|
|
|
layout(LocatioN = 3) in vec4 p;
|
2013-04-10 23:30:05 +00:00
|
|
|
layout(LocatioN = 9) in vec4 q[4]; // ERROR, no array
|
2013-12-05 20:07:56 +00:00
|
|
|
layout(LocatioN = 10) in s r[4]; // ERROR, no struct, ERROR, location overlap
|
2013-04-09 01:20:01 +00:00
|
|
|
out vec4 pos;
|
2013-04-10 02:06:46 +00:00
|
|
|
out vec3 color;
|
2013-04-09 01:20:01 +00:00
|
|
|
|
2013-06-20 22:54:40 +00:00
|
|
|
layout(shared, column_major) uniform mat4 badm4; // ERROR
|
2013-04-10 20:15:16 +00:00
|
|
|
layout(shared, column_major, row_major) uniform; // default is now shared and row_major
|
2013-04-09 01:20:01 +00:00
|
|
|
|
2013-04-10 02:06:46 +00:00
|
|
|
layout(std140) uniform Transform { // layout of this block is std140
|
|
|
|
mat4 M1; // row_major
|
|
|
|
layout(column_major) mat4 M2; // column major
|
|
|
|
mat3 N1; // row_major
|
2013-04-10 22:26:56 +00:00
|
|
|
centroid float badf; // ERROR
|
|
|
|
in float badg; // ERROR
|
2013-12-04 21:01:32 +00:00
|
|
|
layout(std140) float bad1;
|
|
|
|
layout(shared) float bad2;
|
|
|
|
layout(packed) float bad3;
|
2013-04-10 02:06:46 +00:00
|
|
|
} tblock;
|
|
|
|
|
2013-04-10 20:15:16 +00:00
|
|
|
uniform T2 { // layout of this block is shared
|
|
|
|
bool b;
|
|
|
|
mat4 t2m;
|
|
|
|
};
|
|
|
|
|
2013-04-10 02:06:46 +00:00
|
|
|
layout(column_major) uniform T3 { // shared and column_major
|
|
|
|
mat4 M3; // column_major
|
2013-04-10 20:15:16 +00:00
|
|
|
layout(row_major) mat4 M4; // row major
|
2013-04-10 02:06:46 +00:00
|
|
|
mat3 N2; // column_major
|
2013-04-10 20:15:16 +00:00
|
|
|
int b; // ERROR, redefinition (needs to be last member of block for testing, following members are skipped)
|
2013-04-10 02:06:46 +00:00
|
|
|
};
|
2013-04-09 01:20:01 +00:00
|
|
|
|
2013-04-10 22:26:56 +00:00
|
|
|
out badout { // ERROR
|
|
|
|
float f;
|
|
|
|
};
|
|
|
|
|
2013-10-11 19:46:10 +00:00
|
|
|
layout (location = 10) out vec4 badoutA; // ERROR
|
2013-04-10 23:30:05 +00:00
|
|
|
|
2013-04-09 01:20:01 +00:00
|
|
|
void main()
|
|
|
|
{
|
2013-04-10 20:15:16 +00:00
|
|
|
pos = p * (tblock.M1 + tblock.M2 + M4 + M3 + t2m);
|
2013-04-10 02:06:46 +00:00
|
|
|
color = c * tblock.N1;
|
2013-04-09 01:20:01 +00:00
|
|
|
}
|
2013-04-25 16:44:03 +00:00
|
|
|
|
|
|
|
shared vec4 compute_only; // ERROR
|
|
|
|
|
|
|
|
layout(packed) uniform;
|
2013-12-04 21:01:32 +00:00
|
|
|
|
2014-01-28 21:13:59 +00:00
|
|
|
layout(packed) uniform float aoeuntaoeu; // ERROR, packed on variable
|
2013-12-05 20:07:56 +00:00
|
|
|
|
|
|
|
layout(location = 40) in float cd;
|
|
|
|
layout(location = 37) in mat4x3 ce; // ERROR, overlap
|