summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/3rdparty/glslang/Test/300.vert
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/3rdparty/glslang/Test/300.vert')
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/300.vert187
1 files changed, 187 insertions, 0 deletions
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/300.vert b/3rdparty/bgfx/3rdparty/glslang/Test/300.vert
new file mode 100644
index 00000000000..83b9bb112aa
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/300.vert
@@ -0,0 +1,187 @@
+#version 300 es
+
+uniform mat4x3 m43;
+uniform mat3x3 m33;
+uniform mat4x4 m44;
+
+in vec3 v3;
+varying vec2 v2; // ERROR, varying reserved
+in vec4 bad[10]; // ERROR, no arrayed inputs
+highp in vec4 badorder; // ERROR, incorrect qualifier order
+out invariant vec4 badorder2; // ERROR, incorrect qualifier order
+in centroid vec4 badorder4; // ERROR, incorrect qualifier order
+out flat vec4 badorder3; // ERROR, incorrect qualifier order
+void bar(in const float a); // ERROR, incorrect qualifier order
+void bar2(highp in float b); // ERROR, incorrect qualifier order
+smooth flat out vec4 rep; // ERROR, replicating interpolation qualification
+centroid sample out vec4 rep2; // ERROR, replicating auxiliary qualification
+in uniform vec4 rep3; // ERROR, replicating storage qualification
+
+struct S {
+ vec3 c;
+ float f;
+};
+
+out S s;
+
+void main()
+{
+ int id = gl_VertexID + gl_InstanceID;
+
+ int c0 = gl_MaxVertexAttribs;
+ int c1 = gl_MaxVertexUniformVectors;
+ int c2 = gl_MaxVertexOutputVectors;
+ int c3 = gl_MaxFragmentInputVectors;
+ int c4 = gl_MaxVertexTextureImageUnits;
+ int c5 = gl_MaxCombinedTextureImageUnits;
+ int c6 = gl_MaxTextureImageUnits;
+ int c7 = gl_MaxFragmentUniformVectors;
+ int c8 = gl_MaxDrawBuffers;
+ int c9 = gl_MinProgramTexelOffset;
+ int c10 = gl_MaxProgramTexelOffset;
+
+ mat3x4 tm = transpose(m43);
+ highp float dm = determinant(m44);
+ mat3x3 im = inverse(m33);
+
+ mat3x2 op = outerProduct(v2, v3);
+
+ gl_Position = m44[2];
+ gl_PointSize = v2.y;
+
+ s.c = v3;
+ s.f = dm;
+
+#ifdef GL_ES
+#error GL_ES is set
+#else
+#error GL_ES is not set
+#endif
+}
+
+float badsize[]; // ERROR
+float[] badsize2; // ERROR
+uniform ub {
+ int a[]; // ERROR
+} ubInst[]; // ERROR
+void foo(int a[]); // ERROR
+float okayA[] = float[](3.0f, 4.0F); // Okay
+
+out vec3 newV;
+void newVFun()
+{
+ newV = v3;
+}
+
+invariant newV; // ERROR, variable already used
+in vec4 invIn;
+invariant invIn; // ERROR, in v300
+out S s2;
+invariant s2;
+invariant out S s3;
+flat out int;
+
+uniform ub2 {
+ float f;
+} a;
+
+uniform ub2 { // ERROR redeclaration of block name (same instance name)
+ float g;
+} a;
+
+uniform ub2 { // ERROR redeclaration of block name (different instance name)
+ float f;
+} c;
+
+uniform ub2 { // ERROR redeclaration of block name (no instance name)
+ float f123;
+};
+
+uniform ub3 {
+ bool b23;
+};
+
+uniform ub3 { // ERROR redeclaration of block name (no instance name in first or declared)
+ bool b234;
+};
+
+precision lowp sampler3D;
+precision lowp sampler2DShadow;
+precision lowp sampler2DArrayShadow;
+
+uniform sampler2D s2D;
+uniform sampler3D s3D;
+uniform sampler2DShadow s2DS;
+uniform sampler2DArrayShadow s2DAS;
+in vec2 c2D;
+
+void foo23()
+{
+ ivec2 x1 = textureSize(s2D, 2);
+ textureSize(s2D); // ERROR, no lod
+ ivec3 x3 = textureSize(s2DAS, -1);
+ textureSize(s2DAS); // ERROR, no lod
+ vec4 x4 = texture(s2D, c2D);
+ texture(s2D, c2D, 0.2); // ERROR, bias
+ vec4 x5 = textureProjOffset(s3D, vec4(0.2), ivec3(1));
+ textureProjOffset(s3D, vec4(0.2), ivec3(1), .03); // ERROR, bias
+ float x6 = textureProjGradOffset(s2DS, invIn, vec2(4.2), vec2(5.3), ivec2(1));
+}
+
+int fgfg(float f, mediump int i);
+int fgfg(float f, highp int i); // ERROR, precision qualifier difference
+
+int fgfgh(float f, const in mediump int i);
+int fgfgh(float f, in mediump int i); // ERROR, precision qualifier difference
+
+void foo2349()
+{
+ float[] x = float[] (1.0, 2.0, 3.0);
+ float[] y = x;
+ float[3] z = x;
+ float[3] w;
+ w = y;
+}
+
+int[] foo213234(); // ERROR
+int foo234234(float[]); // ERROR
+int foo234235(vec2[] v); // ERROR
+precision highp float[2]; // ERROR
+
+int fffg(float f);
+int fffg(float f);
+
+int gggf(float f);
+int gggf(float f) { return 2; }
+int gggf(float f);
+
+int agggf(float f) { return 2; }
+int agggf(float f);
+
+out struct Ssss { float f; } ssss;
+
+uniform Bblock {
+ int a;
+} Binst;
+int Bfoo;
+
+layout(std140) Binst; // ERROR
+layout(std140) Bblock; // ERROR
+layout(std140) Bfoo; // ERROR
+
+layout(std430) uniform B430 { int a; } B430i; // ERROR
+
+struct SNA {
+ int a[]; // ERROR
+};
+
+void fooDeeparray()
+{
+ float[] x = float[] (1.0, 2.0, 3.0),
+ y = float[] (1.0, 2.0, 3.0, 4.0);
+ float xp[3], yp[4];
+ xp = x;
+ yp = y;
+ xp = y; // ERROR, wrong size
+ yp = x; // ERROR, wrong size
+}