mirror of
https://github.com/RPCS3/glslang.git
synced 2025-01-06 02:31:07 +00:00
a4351c55e8
- 300 doesn't allow built-in overload, while 100 does, while neither allows redefining - block name can't be reused for block name within the same interface (though, the spec. isn't clear about that, it's easier than verifying member matches, will file bug on it) git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23984 e7fa87d3-cd2b-0410-9028-fcbf551c1848
107 lines
2.5 KiB
GLSL
107 lines
2.5 KiB
GLSL
#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.0, 4.0); // 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;
|
|
};
|