add_glsl1('Directly set fragment color') add_glsl1('Directly set vertex color') add_glsl1('Pass-through vertex color') add_glsl1('Primary plus secondary color') add_glsl1('Empty blocks ({}), nil (;) statements') add_glsl1('Global vars and initializers') add_glsl1('Global vars and initializers (2)') add_glsl1('Integer Literals') add_glsl1('Float Literals') add_glsl1('Swizzle') add_glsl1('Swizzle (rgba)') add_glsl1('Swizzle (stpq)') add_glsl1('Writemask') add_glsl1('Swizzled writemask') add_glsl1('Swizzled writemask (2)') add_glsl1('Swizzled writemask (rgba)') add_glsl1('Swizzled writemask (stpq)') add_glsl1('Swizzled expression') add_glsl1('Swizzle in-place') add_glsl1('Swizzled swizzle') add_glsl1('Swizzled swizzled swizzle') add_glsl1('gl_FragDepth writing') add_glsl1('Addition') add_glsl1('vec4, scalar arithmetic') add_glsl1('Negation') add_glsl1('Negation2') add_glsl1('chained assignment') add_glsl1('integer, float arithmetic') add_glsl1('unary negation') add_glsl1('integer division') add_glsl1('integer division with uniform var') add_glsl1('assignment operators') add_glsl1('post increment (x++)') add_glsl1('pre increment (++x)') add_glsl1('post decrement (x--)') add_glsl1('pre decrement (--x)') add_glsl1('dot product') add_glsl1('length() function') add_glsl1('sqrt(vec4) function') add_glsl1('sqrt(vec2) function') add_glsl1('clamp() function') add_glsl1('clamp() function, vec4') add_glsl1('sin(vec4) function') add_glsl1('cos(vec4) function') add_glsl1('asin(vec4) function') add_glsl1('acos(vec4) function') add_glsl1('atan(vec4) function') add_glsl1('pow(vec4) function') add_glsl1('exp(vec4) function') add_glsl1('exp2(vec4) function') add_glsl1('log(vec4) function') add_glsl1('log2(vec4) function') add_glsl1('length() functions') add_glsl1('normalize(vec3) function') add_glsl1('cross() function') add_glsl1('cross() function, in-place') add_glsl1('abs() function') add_glsl1('sign() function') add_glsl1('floor() function') add_glsl1('ceil() function') add_glsl1('fract() function') add_glsl1('mod() function') add_glsl1('min() function') add_glsl1('max() function') add_glsl1('step() function') add_glsl1('smoothstep() function') add_glsl1('mix(vec4) function') add_glsl1('mix(float) function') add_glsl1('precision exp2') add_glsl1('precision log2') add_glsl1('simple if statement, fragment shader') add_glsl1('simple if statement, vertex shader') add_glsl1('simple if statement (scalar test)') add_glsl1('simple if-else statement, fragment shader') add_glsl1('simple if-else statement, vertex shader') add_glsl1('while-loop') add_glsl1('do-loop') add_glsl1('for-loop') add_glsl1('while-loop with continue') add_glsl1('for-loop with continue') add_glsl1('do-loop with break') add_glsl1('do-loop with continue and break') add_glsl1('discard statement (1)') add_glsl1('discard statement (2)') add_glsl1('discard statement in for loop') add_glsl1('conditional expression') add_glsl1('conditional expression (2)') add_glsl1('sequence (comma) operator') add_glsl1('constant array with constant indexing, fragment shader') add_glsl1('temp array with constant indexing, fragment shader') add_glsl1('constant array with constant indexing, vertex shader') add_glsl1('temp array with constant indexing, vertex shader') add_glsl1('temp array with variable indexing, fragment shader') add_glsl1('temp array with variable indexing, vertex shader') add_glsl1('constant array with variable indexing, vertex shader') add_glsl1('constant array of vec4 with variable indexing, vertex shader') add_glsl1('constant array with variable indexing, vertex shader (2)') add_glsl1('temp array with swizzled variable indexing') add_glsl1('vector subscript *=') add_glsl1('equality (float, pass)') add_glsl1('equality (float, fail)') add_glsl1('inequality (float, pass)') add_glsl1('inequality (float, fail)') add_glsl1('equality (vec2, pass)') add_glsl1('equality (vec2, fail)') add_glsl1('inequality (vec2, pass)') add_glsl1('inequality (vec2, fail)') add_glsl1('equality (vec3, pass)') add_glsl1('equality (vec3, fail)') add_glsl1('inequality (vec3, pass)') add_glsl1('inequality (vec3, fail)') add_glsl1('equality (vec4, pass)') add_glsl1('equality (vec4, fail)') add_glsl1('inequality (vec4, pass)') add_glsl1('inequality (vec4, fail)') add_glsl1('&& operator (1)') add_glsl1('&& operator (2)') add_glsl1('&& operator, short-circuit') add_glsl1('|| operator (1)') add_glsl1('|| operator (2)') add_glsl1('|| operator, short-circuit') add_glsl1('^^ operator (1)') add_glsl1('^^ operator (2)') add_glsl1('! (not) operator (1, pass)') add_glsl1('! (not) operator (1, fail)') add_glsl1('! (not) operator (2, pass)') add_glsl1('! (not) operator (2, fail)') add_glsl1('uniform variable (fragment shader)') add_glsl1('uniform variable (vertex shader)') add_glsl1('varying variable') add_glsl1('varying variable read-write') add_glsl1('GL state variable reference (gl_FrontMaterial.ambient)') add_glsl1('GL state variable reference (gl_LightSource[0].diffuse)') add_glsl1('GL state variable reference (diffuse product)') add_glsl1('GL state variable reference (point size)') add_glsl1('GL state variable reference (point attenuation)') add_glsl1('linear fog') add_glsl1('built-in constants') add_glsl1('gl_FrontFacing var (1)') add_glsl1('gl_FrontFacing var (2)') add_glsl1('texture2D()') add_glsl1('texture2D(), computed coordinate') add_glsl1('texture2D(), with bias') add_glsl1('2D Texture lookup with explicit lod (Vertex shader)') add_glsl1('texture2DProj()') add_glsl1('texture1D()') add_glsl1('texture3D()') add_glsl1('texture3D(), computed coord') add_glsl1('shadow2D(): 1') add_glsl1('shadow2D(): 2') add_glsl1('shadow2D(): 3') add_glsl1('shadow2D(): 4') add_glsl1('simple function call') add_glsl1('function call with inout params') add_glsl1('function call with in, out params') add_glsl1('function with early return (1)') add_glsl1('function with early return (2)') add_glsl1('function with early return (3)') add_glsl1('function with early return (4)') add_glsl1('nested function calls (1)') add_glsl1('nested function calls (2)') add_glsl1('nested function calls (3)') add_glsl1('function prototype') add_glsl1('TPPStreamCompiler::assignOperands') add_glsl1('matrix column check (1)') add_glsl1('matrix column check (2)') add_glsl1('matrix, vector multiply (1)') add_glsl1('matrix, vector multiply (2)') add_glsl1('matrix, vector multiply (3)') add_glsl1('uniform matrix') add_glsl1('uniform matrix, transposed') add_glsl1('vector relational (vec4 ==)') add_glsl1('vector relational (vec4 !=)') add_glsl1('vector relational (vec4 <=)') add_glsl1('vector relational (vec4 >=)') add_glsl1('vector relational (vec4 <)') add_glsl1('vector relational (vec4 >)') add_glsl1('vector relational (bvec2 <,<=)') add_glsl1('vector relational (bvec2 >,>=)') add_glsl1('vector relational (bvec2 ==,!=)') add_glsl1('any() function') add_glsl1('all() function') add_glsl1('struct (1)') add_glsl1('struct (2)') add_glsl1('struct (3)') add_glsl1('struct (4)') add_glsl1('Preprocessor test 1 (#if 0)') add_glsl1('Preprocessor test 2 (#if 1)') add_glsl1('Preprocessor test 3 (#if ==)') add_glsl1('Preprocessor test 4 (#if 1, #define macro)') add_glsl1('Preprocessor test 5 (#if 1, #define macro)') add_glsl1('Preprocessor test 6 (#if 0, #define macro)') add_glsl1('Preprocessor test 7 (multi-line #define)') add_glsl1('Preprocessor test 8 (#ifdef)') add_glsl1('Preprocessor test 9 (#ifndef)') add_glsl1('Preprocessor test 10 (#if defined())') add_glsl1('Preprocessor test 11 (#elif)') add_glsl1('Preprocessor test 12 (#elif)') add_glsl1('Preprocessor test 13 (nested #if)') add_glsl1('Preprocessor test 14 (nested #if)') add_glsl1('Preprocessor test 15 (nested #if, #elif)') add_glsl1('Preprocessor test (extension test 1)') add_glsl1('Preprocessor test (extension test 2)') add_glsl1('Preprocessor test (extension test 3)') add_glsl1('Preprocessor test (11)') add_glsl1('Comment test (1)') add_glsl1('Comment test (2)') add_glsl1('Comment test (3)') add_glsl1('Comment test (4)') add_glsl1('Comment test (5)') add_glsl1('undefined variable') add_glsl1('if (boolean-scalar) check') add_glsl1('break with no loop') add_glsl1('continue with no loop') add_glsl1('illegal assignment') add_glsl1('syntax error check (1)') add_glsl1('syntax error check (2)') add_glsl1('syntax error check (3)') add_glsl1('TIntermediate::addUnaryMath') add_glsl1('mat2x4 construct') add_glsl1('mat4x2 construct') add_glsl1('mat2x3 construct') add_glsl1('mat3x2 construct') add_glsl1('mat4x3 construct') add_glsl1('mat3x4 construct') add_glsl1('vec4 * mat3x4 multiply') add_glsl1('mat4x2 * vec4') add_glsl1('mat4x2 * mat2x4') add_glsl1('vec2 * mat4x2 multiply') add_glsl1('vec3 * mat4x3 multiply') add_glsl1('uniform matrix 2x4') add_glsl1('uniform matrix 2x4, transposed') add_glsl1('uniform matrix 4x3') add_glsl1('uniform matrix 4x3, transposed') add_glsl1('GLSL 1.20 arrays') add_glsl1('GLSL 1.20 array constructor 1') add_glsl1('GLSL 1.20 array constructor 2') add_glsl1('GLSL 1.20 array constructor 3') add_glsl1('GLSL 1.20 array constructor 4') add_glsl1('GLSL 1.20 array constructor 5') add_glsl1('GLSL 1.20 array constructor 6') add_glsl1('GLSL 1.20 array constructor 7') add_glsl1('GLSL 1.20 array constructor 8') add_glsl1('GLSL 1.20 const array constructor 1') add_glsl1('GLSL 1.20 const array constructor 2') add_glsl1('GLSL 1.20 uniform array constructor') add_glsl1('GLSL 1.20 array.length()') add_glsl1('GLSL 1.20 array error check') add_glsl1('GLSL 1.30 precision qualifiers') add_glsl1('GLSL 1.20 invariant, centroid qualifiers') add_glsl1('Divide by zero') add_glsl1('gl_Position not written check') add_glsl1('varying var mismatch') add_glsl1('varying read but not written') add_glsl1('texcoord varying')