yum-mirror/glslang
git clone https://git.yummers.dev/yum-mirror/glslang
6334d594
main
1#version 120 2 3in vec4 i ;// ERROR 4out vec4 o ;// ERROR 5 6attribute vec2 attv2 ; 7attribute vec4 attv4 ; 8uniform sampler2D s2D ; 9invariant varying vec2 centTexCoord ; 10invariant gl_Position ; 11centroid gl_Position ; // ERROR 12centroid centroid foo ; // ERROR 13invariant gl_Position, gl_PointSize; 14 15void main() 16{ 17centTexCoord = attv2; 18gl_Position = attv4; 19 20gl_ClipVertex = attv4; 21gl_ClipDistance[ 1 ] = 0.2 ; // ERROR 22 23vec3[ 12 ] a; 24vec4[a. length ()] b; 25gl_Position = b[b. length () - 1 ]; 26 27float f[]; 28int a1 = f. length (); // ERROR 29float f[ 7 ]; 30int aa = f. length (); 31int a2 = f. length ; // ERROR 32int a3 = f. length (a); // ERROR 33int a4 = f. flizbit ; // ERROR 34int a4 = f. flizbit (); // ERROR 35float md[ 2 ][ 4 ]; // ERROR 36float [ 2 ] md2[ 4 ]; // ERROR 37float [ 2 ][ 4 ] md3; // ERROR 38float md5, md6[ 2 ][ 3 ]; // ERROR 39float [ 2 ] md4, md7[ 4 ]; // ERROR 40float md9[ 2 ][ 3 ] = float[ 2 ][ 3 ]( 1 , 2 , 3 , 4 , 5 , 6 ); // ERROR 41float md10, md11[ 2 ][ 3 ] = float[ 2 ][ 3 ]( 1 , 2 , 3 , 4 , 5 , 6 ); // ERROR 42 43gl_PointSize = 3.8 ; 44} 45 46uniform float initted = 3.4 ; // okay 47 48const float concall = sin( 0.3 ); 49 50int [ 2 ][ 3 ] foo( // ERROR 51float [ 2 ][ 3 ] a, // ERROR 52float [ 2 ] b[ 3 ], // ERROR 53float c[ 2 ][ 3 ]); // ERROR 54 55int overloadA( in float f); 56int overloadA( out float f); // ERROR, different qualifiers 57float overloadA( float ); // ERROR, different return value for same signature 58float overloadA( out float f, int ); 59float overloadA( int i); 60 61void overloadB( float , const in float) { } 62 63vec2 overloadC( int , int ); 64vec2 overloadC( const in int, float ); 65vec2 overloadC( float , int ); 66vec2 overloadC( vec2 , vec2 ); 67 68vec3 overloadD( int , float ); 69vec3 overloadD( float , in int ); 70 71vec3 overloadE( float [ 2 ]); 72vec3 overloadE( mat2 m); 73vec3 overloadE( vec2 v); 74 75vec3 overloadF( int ); 76vec3 overloadF( float ); 77 78void foo() 79{ 80float f; 81int i; 82 83overloadB(f, f); 84overloadB(f, 2 ); 85overloadB( 1 , i); 86 87overloadC( 1 ); // ERROR 88overloadC( 1 , i); 89overloadC(vec2( 1 ), vec2( 2 )); 90overloadC(f, 3.0 ); // ERROR, no way 91overloadC(ivec2( 1 ), vec2( 2 )); 92 93overloadD(i, f); 94overloadD(f, i); 95overloadD(i, i); // ERROR, ambiguous 96 97int overloadB; // hiding 98overloadB( 1 , i); // ERROR 99 100sin( 1 ); 101texture2D(s2D, ivec2( 0 )); 102clamp(attv4, 0 , 1 ); 103clamp(ivec4(attv4), 0 , 1 ); 104 105int a[ 2 ]; 106overloadC(a, 3 ); // ERROR 107overloadE(a); // ERROR 108overloadE( 3.3 ); // ERROR 109overloadE(vec2( 3.3 )); 110overloadE(mat2( 0.5 )); 111overloadE(ivec4( 1 )); // ERROR 112overloadE(ivec2( 1 )); 113 114float b[ 2 ]; 115overloadE(b); 116117 overloadF( 1 , 1 ); // ERROR 118overloadF( 1 ); 119} 120 121varying vec4 gl_TexCoord[ 35 ]; // ERROR, size too big 122 123// tests for output conversions 124void outFun( in float , out ivec2 , in int , out float ); 125int outFunRet( in float , out int , const in int, out ivec4 ); 126ivec2 outFunRet( in float , out ivec4 , in int , out ivec4 ); 127 128void foo2() 129{ 130vec2 v2; 131vec4 v4; 132float f; 133int i; 134 135outFun(i, v2, i, f); 136outFunRet(i, f, i, v4); 137float ret = outFunRet(i, f, i, v4); 138vec2 ret2 = outFunRet(i, v4, i, v4); 139bool b = any(lessThan(v4, attv4)); // tests aggregate arg to unary built-in 140} 141 142void noise() 143{ 144float f1 = noise1( 1.0 ); 145vec2 f2 = noise2(vec2( 1.0 )); 146vec3 f3 = noise3(vec3( 1.0 )); 147vec4 f4 = noise4(vec4( 1.0 )); 148} 149 150// version 130 features 151 152uniform int c; 153 154attribute ivec2 x; 155attribute vec2 v2a; 156attribute float c1D; 157attribute vec2 c2D; 158attribute vec3 c3D; 159 160uniform vec4 v4; 161 162void foo213() 163{ 164float f = 3 ; 165switch (c) { // ERRORs... 166case 1 : 167f = sin(f); 168break ; 169case 2 : 170f = f * f; 171default : 172f = 3.0 ; 173} 174 175int i; 176i << 3 | 0x8A >> 1 & 0xFF ; // ERRORs... 177 178vec3 modfOut, modfIn; 179vec3 v11 = modf(modfIn, modfOut); // ERRORS... 180float t = trunc(f); 181vec2 v12 = round(v2a); 182vec2 v13 = roundEven(v2a); 183bvec2 b10 = isnan(v2a); 184bvec4 b11 = isinf(v4); 185 186sinh(c1D) + // ERRORS... 187cosh(c1D) * tanh(c2D); 188asinh(c4D) + acosh(c4D); 189atanh(c3D); 190 191int id = gl_VertexID; // ERROR 192gl_ClipDistance[ 1 ] = 0.3 ; // ERROR 193} 194 195int gl_ModelViewMatrix[] = 0 ; 196 197// token pasting (ERRORS...) 198 199#define mac abc##def 200int mac; 201 202#define macr(A,B) A ## B 203int macr( qrs , tuv ); 204 205layout (std140) uniform BlockName // ERROR 206{ 207int test ; 208}; 209 210#extension GL_ARB_uniform_buffer_object : enable 211 212layout (std140) uniform BlockName 213{ 214int test ; 215};