First Commit
This commit is contained in:
204
externals/glslang/Test/300.vert
vendored
Normal file
204
externals/glslang/Test/300.vert
vendored
Normal file
@@ -0,0 +1,204 @@
|
||||
#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
|
||||
}
|
||||
|
||||
layout(num_views = 2) in; // ERROR, no extension
|
||||
|
||||
void mwErr()
|
||||
{
|
||||
gl_ViewID_OVR; // ERROR, no extension
|
||||
}
|
||||
|
||||
#extension GL_OVR_multiview : enable
|
||||
|
||||
layout(num_views = 2) uniform float mwUniform; // ERROR, must be global
|
||||
layout(num_views = 2) in; // OK
|
||||
|
||||
void mwOk()
|
||||
{
|
||||
gl_ViewID_OVR;
|
||||
}
|
||||
Reference in New Issue
Block a user