summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/3rdparty/glslang/Test/300layout.vert
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/3rdparty/glslang/Test/300layout.vert')
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/300layout.vert57
1 files changed, 57 insertions, 0 deletions
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/300layout.vert b/3rdparty/bgfx/3rdparty/glslang/Test/300layout.vert
new file mode 100644
index 00000000000..06d1206dc18
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/300layout.vert
@@ -0,0 +1,57 @@
+#version 300 es
+
+struct s { vec4 v; };
+
+layout(location = 7) in vec3 c;
+layout(LocatioN = 3) in vec4 p;
+layout(LocatioN = 9) in vec4 q[4]; // ERROR, no array
+layout(LocatioN = 10) in s r[4]; // ERROR, no struct, ERROR, location overlap
+out vec4 pos;
+out vec3 color;
+
+layout(shared, column_major) uniform mat4 badm4; // ERROR
+layout(shared, column_major, row_major) uniform; // default is now shared and row_major
+
+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
+ centroid float badf; // ERROR
+ in float badg; // ERROR
+ layout(std140) float bad1;
+ layout(shared) float bad2;
+ layout(packed) float bad3;
+} tblock;
+
+uniform T2 { // layout of this block is shared
+ bool b;
+ mat4 t2m;
+};
+
+layout(column_major) uniform T3 { // shared and column_major
+ mat4 M3; // column_major
+ layout(row_major) mat4 M4; // row major
+ mat3 N2; // column_major
+ int b; // ERROR, redefinition (needs to be last member of block for testing, following members are skipped)
+};
+
+out badout { // ERROR
+ float f;
+};
+
+layout (location = 10) out vec4 badoutA; // ERROR
+
+void main()
+{
+ pos = p * (tblock.M1 + tblock.M2 + M4 + M3 + t2m);
+ color = c * tblock.N1;
+}
+
+shared vec4 compute_only; // ERROR
+
+layout(packed) uniform;
+
+layout(packed) uniform float aoeuntaoeu; // ERROR, packed on variable
+
+layout(location = 40) in float cd;
+layout(location = 37) in mat4x3 ce; // ERROR, overlap