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
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
|
300.frag
ERROR: 0:30: 'noperspective' : Reserved word.
ERROR: 0:30: 'noperspective' : not supported with this profile: es
ERROR: 0:31: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: bads
ERROR: 0:32: 'uint' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type
ERROR: 0:39: 'structure' : non-uniform struct contains a sampler or image: badout
ERROR: 0:60: 'texel offset' : argument must be compile-time constant
ERROR: 0:63: 'texel offset' : argument must be compile-time constant
ERROR: 0:64: 'texel offset' : argument must be compile-time constant
ERROR: 0:66: 'texel offset' : argument must be compile-time constant
ERROR: 0:68: 'texel offset' : argument must be compile-time constant
ERROR: 0:69: 'variable indexing sampler array' : not supported with this profile: es
ERROR: 0:73: 'texel offset' : argument must be compile-time constant
ERROR: 0:83: 'double' : Reserved word.
ERROR: 0:83: 'double' : not supported with this profile: es
ERROR: 0:84: 'dvec2' : Reserved word.
ERROR: 0:84: 'double vector' : not supported with this profile: es
ERROR: 0:85: 'dvec3' : Reserved word.
ERROR: 0:85: 'double vector' : not supported with this profile: es
ERROR: 0:86: 'dvec4' : Reserved word.
ERROR: 0:86: 'double vector' : not supported with this profile: es
ERROR: 0:101: 'arrays of arrays' : not supported with this profile: es
ERROR: 0:102: 'arrays of arrays' : not supported with this profile: es
ERROR: 0:102: 'arrays of arrays' : not supported with this profile: es
ERROR: 0:103: 'arrays of arrays' : not supported with this profile: es
ERROR: 0:100: 'arrays of arrays' : not supported with this profile: es
ERROR: 0:111: 'variable indexing fragment shader ouput array' : not supported with this profile: es
ERROR: 0:119: '==' : can't use with samplers or structs containing samplers
ERROR: 0:120: '!=' : can't use with samplers or structs containing samplers
ERROR: 0:121: '==' : can't use with samplers or structs containing samplers
ERROR: 0:121: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type 'lowp sampler2D' and a right operand of type 'lowp sampler2D' (or there is no acceptable conversion)
ERROR: 0:122: '=' : can't use with samplers or structs containing samplers
ERROR: 0:123: '==' : can't use with samplers or structs containing samplers
ERROR: 0:129: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
ERROR: 0:129: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
ERROR: 0:148: 'qualifier' : cannot use auxiliary, memory, interpolation, or precision qualifier in a default qualifier declaration (declaration with no type)
ERROR: 0:150: 'imageBuffer' : Reserved word.
ERROR: 0:150: '' : syntax error
ERROR: 37 compilation errors. No code generated.
ERROR: node is still EOpNull!
0:53 Function Definition: main( (void)
0:53 Function Parameters:
0:? Sequence
0:57 move second child to first child (lowp 4-component vector of float)
0:57 'v' (lowp 4-component vector of float)
0:57 Function Call: texture(s21;vf2; (lowp 4-component vector of float)
0:57 's2D' (uniform lowp sampler2D)
0:57 'c2D' (smooth in lowp 2-component vector of float)
0:58 move second child to first child (lowp 4-component vector of float)
0:58 'v' (lowp 4-component vector of float)
0:58 Function Call: textureProj(s31;vf4; (lowp 4-component vector of float)
0:58 's3D' (uniform lowp sampler3D)
0:58 'c4D' (smooth lowp 4-component vector of float)
0:59 move second child to first child (lowp 4-component vector of float)
0:59 'v' (lowp 4-component vector of float)
0:59 Function Call: textureLod(sA21;vf3;f1; (lowp 4-component vector of float)
0:59 's2DArray' (uniform lowp sampler2DArray)
0:59 'c3D' (smooth in lowp 3-component vector of float)
0:59 Constant:
0:59 1.200000
0:60 move second child to first child (lowp float)
0:60 'f' (lowp float)
0:60 Function Call: textureOffset(sS21;vf3;vi2;f1; (lowp float)
0:60 's2DShadow' (uniform lowp sampler2DShadow)
0:60 'c3D' (smooth in lowp 3-component vector of float)
0:60 'ic2D' (flat in mediump 2-component vector of int)
0:60 'c1D' (smooth in lowp float)
0:61 move second child to first child (lowp 4-component vector of float)
0:61 'v' (lowp 4-component vector of float)
0:61 Function Call: texelFetch(s31;vi3;i1; (lowp 4-component vector of float)
0:61 's3D' (uniform lowp sampler3D)
0:61 'ic3D' (flat in mediump 3-component vector of int)
0:61 'ic1D' (flat in mediump int)
0:62 move second child to first child (lowp 4-component vector of float)
0:62 'v' (lowp 4-component vector of float)
0:62 Function Call: texelFetchOffset(s21;vi2;i1;vi2; (lowp 4-component vector of float)
0:62 direct index (lowp sampler2D)
0:62 'arrayedSampler' (uniform 5-element array of lowp sampler2D)
0:62 Constant:
0:62 2 (const int)
0:62 'ic2D' (flat in mediump 2-component vector of int)
0:62 Constant:
0:62 4 (const int)
0:62 'ic2D' (flat in mediump 2-component vector of int)
0:63 move second child to first child (lowp float)
0:63 'f' (lowp float)
0:63 Function Call: textureLodOffset(sS21;vf3;f1;vi2; (lowp float)
0:63 's2DShadow' (uniform lowp sampler2DShadow)
0:63 'c3D' (smooth in lowp 3-component vector of float)
0:63 'c1D' (smooth in lowp float)
0:63 'ic2D' (flat in mediump 2-component vector of int)
0:64 move second child to first child (lowp 4-component vector of float)
0:64 'v' (lowp 4-component vector of float)
0:64 Function Call: textureProjLodOffset(s21;vf3;f1;vi2; (lowp 4-component vector of float)
0:64 's2D' (uniform lowp sampler2D)
0:64 'c3D' (smooth in lowp 3-component vector of float)
0:64 'c1D' (smooth in lowp float)
0:64 'ic2D' (flat in mediump 2-component vector of int)
0:65 move second child to first child (lowp 4-component vector of float)
0:65 'v' (lowp 4-component vector of float)
0:65 Function Call: textureGrad(sC1;vf3;vf3;vf3; (lowp 4-component vector of float)
0:65 'sCube' (uniform lowp samplerCube)
0:65 'c3D' (smooth in lowp 3-component vector of float)
0:65 'c3D' (smooth in lowp 3-component vector of float)
0:65 'c3D' (smooth in lowp 3-component vector of float)
0:66 move second child to first child (lowp float)
0:66 'f' (lowp float)
0:66 Function Call: textureGradOffset(sAS21;vf4;vf2;vf2;vi2; (lowp float)
0:66 's2DArrayShadow' (uniform lowp sampler2DArrayShadow)
0:66 'c4D' (smooth lowp 4-component vector of float)
0:66 'c2D' (smooth in lowp 2-component vector of float)
0:66 'c2D' (smooth in lowp 2-component vector of float)
0:66 'ic2D' (flat in mediump 2-component vector of int)
0:67 move second child to first child (lowp 4-component vector of float)
0:67 'v' (lowp 4-component vector of float)
0:67 Function Call: textureProjGrad(s31;vf4;vf3;vf3; (lowp 4-component vector of float)
0:67 's3D' (uniform lowp sampler3D)
0:67 'c4D' (smooth lowp 4-component vector of float)
0:67 'c3D' (smooth in lowp 3-component vector of float)
0:67 'c3D' (smooth in lowp 3-component vector of float)
0:68 move second child to first child (lowp 4-component vector of float)
0:68 'v' (lowp 4-component vector of float)
0:68 Function Call: textureProjGradOffset(s21;vf3;vf2;vf2;vi2; (lowp 4-component vector of float)
0:68 's2D' (uniform lowp sampler2D)
0:68 'c3D' (smooth in lowp 3-component vector of float)
0:68 'c2D' (smooth in lowp 2-component vector of float)
0:68 'c2D' (smooth in lowp 2-component vector of float)
0:68 'ic2D' (flat in mediump 2-component vector of int)
0:69 move second child to first child (lowp 4-component vector of float)
0:69 'v' (lowp 4-component vector of float)
0:69 Function Call: texture(s21;vf2; (lowp 4-component vector of float)
0:69 indirect index (lowp sampler2D)
0:69 'arrayedSampler' (uniform 5-element array of lowp sampler2D)
0:69 'ic1D' (flat in mediump int)
0:69 'c2D' (smooth in lowp 2-component vector of float)
0:72 move second child to first child (mediump 4-component vector of int)
0:72 'iv' (mediump 4-component vector of int)
0:72 Function Call: texture(is21;vf2; (mediump 4-component vector of int)
0:72 'is2D' (uniform lowp isampler2D)
0:72 'c2D' (smooth in lowp 2-component vector of float)
0:73 move second child to first child (mediump 4-component vector of int)
0:73 'iv' (mediump 4-component vector of int)
0:73 Function Call: textureProjOffset(is21;vf4;vi2; (mediump 4-component vector of int)
0:73 'is2D' (uniform lowp isampler2D)
0:73 'c4D' (smooth lowp 4-component vector of float)
0:73 'ic2D' (flat in mediump 2-component vector of int)
0:74 move second child to first child (mediump 4-component vector of int)
0:74 'iv' (mediump 4-component vector of int)
0:74 Function Call: textureProjLod(is21;vf3;f1; (mediump 4-component vector of int)
0:74 'is2D' (uniform lowp isampler2D)
0:74 'c3D' (smooth in lowp 3-component vector of float)
0:74 'c1D' (smooth in lowp float)
0:75 move second child to first child (mediump 4-component vector of int)
0:75 'iv' (mediump 4-component vector of int)
0:75 Function Call: textureProjGrad(is21;vf3;vf2;vf2; (mediump 4-component vector of int)
0:75 'is2D' (uniform lowp isampler2D)
0:75 'c3D' (smooth in lowp 3-component vector of float)
0:75 'c2D' (smooth in lowp 2-component vector of float)
0:75 'c2D' (smooth in lowp 2-component vector of float)
0:76 move second child to first child (mediump 4-component vector of int)
0:76 'iv' (mediump 4-component vector of int)
0:76 Function Call: texture(is31;vf3;f1; (mediump 4-component vector of int)
0:76 'is3D' (uniform lowp isampler3D)
0:76 'c3D' (smooth in lowp 3-component vector of float)
0:76 Constant:
0:76 4.200000
0:77 move second child to first child (mediump 4-component vector of int)
0:77 'iv' (mediump 4-component vector of int)
0:77 Function Call: textureLod(isC1;vf3;f1; (mediump 4-component vector of int)
0:77 'isCube' (uniform lowp isamplerCube)
0:77 'c3D' (smooth in lowp 3-component vector of float)
0:77 'c1D' (smooth in lowp float)
0:78 move second child to first child (mediump 4-component vector of int)
0:78 'iv' (mediump 4-component vector of int)
0:78 Function Call: texelFetch(isA21;vi3;i1; (mediump 4-component vector of int)
0:78 'is2DArray' (uniform lowp isampler2DArray)
0:78 'ic3D' (flat in mediump 3-component vector of int)
0:78 'ic1D' (flat in mediump int)
0:80 move second child to first child (highp 2-component vector of int)
0:80 vector swizzle (mediump 2-component vector of int)
0:80 'iv' (mediump 4-component vector of int)
0:80 Sequence
0:80 Constant:
0:80 0 (const int)
0:80 Constant:
0:80 1 (const int)
0:80 Function Call: textureSize(sSC1;i1; (highp 2-component vector of int)
0:80 'sCubeShadow' (uniform lowp samplerCubeShadow)
0:80 Constant:
0:80 2 (const int)
0:88 add second child into first child (highp float)
0:88 'f' (lowp float)
0:88 direct index (highp float)
0:88 'gl_FragCoord' (gl_FragCoord highp 4-component vector of float)
0:88 Constant:
0:88 1 (const int)
0:89 move second child to first child (highp float)
0:89 'gl_FragDepth' (gl_FragDepth highp float)
0:89 'f' (lowp float)
0:91 move second child to first child (lowp 3-component vector of float)
0:91 'sc' (out lowp 3-component vector of float)
0:91 c: direct index for structure (lowp 3-component vector of float)
0:91 's2' (smooth in structure{lowp 3-component vector of float c, lowp float f})
0:91 Constant:
0:91 0 (const int)
0:92 move second child to first child (lowp float)
0:92 'sf' (out lowp float)
0:92 f: direct index for structure (lowp float)
0:92 's2' (smooth in structure{lowp 3-component vector of float c, lowp float f})
0:92 Constant:
0:92 1 (const int)
0:94 add (lowp 2-component vector of float)
0:94 hyp. sine (lowp float)
0:94 'c1D' (smooth in lowp float)
0:95 vector-scale (lowp 2-component vector of float)
0:95 hyp. cosine (lowp float)
0:95 'c1D' (smooth in lowp float)
0:95 hyp. tangent (lowp 2-component vector of float)
0:95 'c2D' (smooth in lowp 2-component vector of float)
0:96 add (lowp 4-component vector of float)
0:96 arc hyp. sine (lowp 4-component vector of float)
0:96 'c4D' (smooth lowp 4-component vector of float)
0:96 arc hyp. cosine (lowp 4-component vector of float)
0:96 'c4D' (smooth lowp 4-component vector of float)
0:97 arc hyp. tangent (lowp 3-component vector of float)
0:97 'c3D' (smooth in lowp 3-component vector of float)
0:108 Function Definition: foo( (void)
0:108 Function Parameters:
0:110 Sequence
0:110 move second child to first child (lowp 4-component vector of float)
0:110 direct index (lowp 4-component vector of float)
0:110 'colors' (out 4-element array of lowp 4-component vector of float)
0:110 Constant:
0:110 2 (const int)
0:110 'c4D' (smooth lowp 4-component vector of float)
0:111 move second child to first child (lowp 4-component vector of float)
0:111 indirect index (lowp 4-component vector of float)
0:111 'colors' (out 4-element array of lowp 4-component vector of float)
0:111 'ic1D' (flat in mediump int)
0:111 'c4D' (smooth lowp 4-component vector of float)
0:117 Function Definition: foo13(struct-s-i1-s211; (void)
0:117 Function Parameters:
0:117 'inSt2' (in structure{mediump int i, lowp sampler2D s})
0:119 Sequence
0:119 Test condition and select (void)
0:119 Condition
0:119 Compare Equal (bool)
0:119 'st1' (uniform structure{mediump int i, lowp sampler2D s})
0:119 'st2' (uniform structure{mediump int i, lowp sampler2D s})
0:119 true case is null
0:120 Test condition and select (void)
0:120 Condition
0:120 Compare Not Equal (bool)
0:120 'st1' (uniform structure{mediump int i, lowp sampler2D s})
0:120 'st2' (uniform structure{mediump int i, lowp sampler2D s})
0:120 true case is null
0:121 Constant:
0:121 false (const bool)
0:122 move second child to first child (structure{mediump int i, lowp sampler2D s})
0:122 'inSt2' (in structure{mediump int i, lowp sampler2D s})
0:122 'st1' (uniform structure{mediump int i, lowp sampler2D s})
0:123 Compare Equal (bool)
0:123 'inSt2' (in structure{mediump int i, lowp sampler2D s})
0:123 'st1' (uniform structure{mediump int i, lowp sampler2D s})
0:126 Function Definition: foo23( (void)
0:126 Function Parameters:
0:128 Sequence
0:128 Function Call: textureOffset(sS21;vf3;vi2;f1; (lowp float)
0:128 's2DShadow' (uniform lowp sampler2DShadow)
0:128 'c3D' (smooth in lowp 3-component vector of float)
0:128 Constant:
0:128 -8 (const int)
0:128 7 (const int)
0:128 'c1D' (smooth in lowp float)
0:129 Function Call: textureOffset(sS21;vf3;vi2;f1; (lowp float)
0:129 's2DShadow' (uniform lowp sampler2DShadow)
0:129 'c3D' (smooth in lowp 3-component vector of float)
0:129 Constant:
0:129 -9 (const int)
0:129 8 (const int)
0:129 'c1D' (smooth in lowp float)
0:132 Function Definition: foo324( (void)
0:132 Function Parameters:
0:134 Sequence
0:134 Sequence
0:134 move second child to first child (lowp float)
0:134 'p' (lowp float)
0:134 Constant:
0:134 210.712306
0:135 add second child into first child (lowp float)
0:135 'p' (lowp float)
0:135 Constant:
0:135 0.389418
0:136 add second child into first child (lowp float)
0:136 'p' (lowp float)
0:136 Constant:
0:136 5.000000
0:137 add second child into first child (lowp float)
0:137 'p' (lowp float)
0:137 Constant:
0:137 13.000000
0:138 Sequence
0:138 move second child to first child (lowp 3-component vector of float)
0:138 'c3' (lowp 3-component vector of float)
0:138 Constant:
0:138 -15.000000
0:138 -2.000000
0:138 39.000000
0:139 add second child into first child (lowp 3-component vector of float)
0:139 'c3' (lowp 3-component vector of float)
0:139 Constant:
0:139 -1.000000
0:139 -2.000000
0:139 -3.000000
0:140 add second child into first child (lowp 3-component vector of float)
0:140 'c3' (lowp 3-component vector of float)
0:140 Constant:
0:140 1.000000
0:140 2.000000
0:140 3.000000
0:141 Sequence
0:141 move second child to first child (lowp 2-component vector of float)
0:141 'c2' (lowp 2-component vector of float)
0:141 Constant:
0:141 1.000000
0:141 -3.000000
0:142 add second child into first child (lowp 2-component vector of float)
0:142 'c2' (lowp 2-component vector of float)
0:142 Constant:
0:142 1.000000
0:142 -3.000000
0:143 add second child into first child (lowp 2-component vector of float)
0:143 'c2' (lowp 2-component vector of float)
0:143 Constant:
0:143 3.000000
0:143 -8.544004
0:144 add second child into first child (lowp 2-component vector of float)
0:144 'c2' (lowp 2-component vector of float)
0:144 Constant:
0:144 0.000000
0:144 0.000000
0:145 Sequence
0:145 move second child to first child (lowp 3X2 matrix of float)
0:145 'm32' (lowp 3X2 matrix of float)
0:145 Constant:
0:145 10.000000
0:145 15.000000
0:145 14.000000
0:145 21.000000
0:145 22.000000
0:145 33.000000
0:? Linker Objects
0:? 's2D' (uniform lowp sampler2D)
0:? 's3D' (uniform lowp sampler3D)
0:? 'sCube' (uniform lowp samplerCube)
0:? 'sCubeShadow' (uniform lowp samplerCubeShadow)
0:? 's2DShadow' (uniform lowp sampler2DShadow)
0:? 's2DArray' (uniform lowp sampler2DArray)
0:? 's2DArrayShadow' (uniform lowp sampler2DArrayShadow)
0:? 'is2D' (uniform lowp isampler2D)
0:? 'is3D' (uniform lowp isampler3D)
0:? 'isCube' (uniform lowp isamplerCube)
0:? 'is2DArray' (uniform lowp isampler2DArray)
0:? 'us2D' (uniform lowp usampler2D)
0:? 'us3D' (uniform lowp usampler3D)
0:? 'usCube' (uniform lowp usamplerCube)
0:? 'us2DArray' (uniform lowp usampler2DArray)
0:? 'c1D' (smooth in lowp float)
0:? 'c2D' (smooth in lowp 2-component vector of float)
0:? 'c3D' (smooth in lowp 3-component vector of float)
0:? 'c4D' (smooth lowp 4-component vector of float)
0:? 'ic1D' (flat in mediump int)
0:? 'ic2D' (flat in mediump 2-component vector of int)
0:? 'ic3D' (flat in mediump 3-component vector of int)
0:? 'ic4D' (flat in mediump 4-component vector of int)
0:? 'badv' (noperspective in lowp 4-component vector of float)
0:? 'bads' (smooth in lowp sampler2D)
0:? 'badout' (smooth in structure{mediump int i, lowp sampler2D s})
0:? 's2' (smooth in structure{lowp 3-component vector of float c, lowp float f})
0:? 'sc' (out lowp 3-component vector of float)
0:? 'sf' (out lowp float)
0:? 'arrayedSampler' (uniform 5-element array of lowp sampler2D)
0:? 'multiInst' (layout(column_major shared ) uniform 2-element array of block{layout(column_major shared ) uniform 2-element array of mediump int a, layout(column_major shared ) uniform 2-element array of mediump int b, layout(column_major shared ) uniform 2-element array of mediump int c})
0:? 'colors' (out 4-element array of lowp 4-component vector of float)
0:? 'st1' (uniform structure{mediump int i, lowp sampler2D s})
0:? 'st2' (uniform structure{mediump int i, lowp sampler2D s})
Linked fragment stage:
ERROR: Linking fragment stage: when more than one fragment shader output, all must have location qualifiers
|