1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
|
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')
|