Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(452)

Side by Side Diff: conformance/ogles/GL/build/CorrectConstFolding2_vert.vert

Issue 41993002: Add ToT WebGL conformance tests : part 9 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/webgl/sdk/tests/
Patch Set: Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1
2 /*
3 ** Copyright (c) 2012 The Khronos Group Inc.
4 **
5 ** Permission is hereby granted, free of charge, to any person obtaining a
6 ** copy of this software and/or associated documentation files (the
7 ** "Materials"), to deal in the Materials without restriction, including
8 ** without limitation the rights to use, copy, modify, merge, publish,
9 ** distribute, sublicense, and/or sell copies of the Materials, and to
10 ** permit persons to whom the Materials are furnished to do so, subject to
11 ** the following conditions:
12 **
13 ** The above copyright notice and this permission notice shall be included
14 ** in all copies or substantial portions of the Materials.
15 **
16 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
23 */
24
25
26 void main()
27 {
28 struct s5 {
29 float k;
30 };
31 const struct s {
32 int i;
33 float j;
34 s5 s55;
35 } ss = s(4,1.0, s5(1.0));
36
37
38 const struct s2 {
39 int i;
40 vec3 v3;
41 bvec4 bv4;
42 } s22 = s2(8, vec3(9, 10, 11), bvec4(true, false, true, false));
43
44 struct s4 {
45 int ii;
46 vec4 v4;
47 };
48
49 const struct s1 {
50 s2 ss;
51 int i;
52 float f;
53 mat4 m;
54 s4 s44;
55 } s11 = s1(s22, 2, 4.0, mat4(5), s4(6, vec4(7, 8, 9, 10))) ;
56
57
58 const struct s7 {
59 int i;
60 mat3 m3;
61 } s77 = s7(12, mat3(15));
62
63 vec2 v21 = vec2(1); // Not a constant
64 const vec2 v22 = vec2(11); // 11.0, 11.0
65 const vec4 v41 = vec4(2); // 2.0, 2.0, 2.0, 2.0
66 const vec4 v43 = vec4(4,4,4,4); // 4.0, 4.0, 4.0, 4.0
67 const vec4 v44 = vec4(5.0, 5.0, 5.0, 5.0); // 5.0, 5.0, 5.0, 5.0
68 const vec4 v45 = vec4(v22, v22); // 11.0, 11.0, 11.0, 11.0
69 const vec4 v46 = vec4(vec2(20, 21), vec2(22, 23)); // 20.0, 21.0, 22.0, 23.0
70
71 const vec3 v31 = vec3(s22.v3); // 9.0, 10.0, 11.0
72 const vec3 v32 = vec3(s77.m3); // 15.0, 0, 0
73 const vec3 v33 = vec3(s77.m3[2]); // 0, 0, 15.0
74 const vec3 v34 = vec3(s77.m3[2][0]); // 0,0,0
75
76
77 const mat4 m41 = mat4(1); // 1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1
78 const mat4 m42 = mat4(v44, v44, v44, v44); // all 5s
79 const mat4 m43 = mat4( v43.x); // 4,0,0,0,0,4,0,0,0,0,0,4,0,0,0,0,0,4
80
81 const vec4 v47 = vec4(m41[0][0]); // 1.0,1.0,1.0,1.0
82
83 const mat4 m45 = mat4(s22.v3, v44, v45, v32, 50, 52); //9,10,11,5,5,5,5,11,11 ,11,11,15.0, 0,0, 50.0, 52.0
84 //const mat3 m31 = mat3(1, mat2(1), 2.0, vec3(1)); // 1.0, 1,0,0,1,2,1,1,1
85 const vec4 v48 = vec4(v31[0], v22[1], v41[0], v43[3]); //9, 11, 2, 4
86 const vec4 v49 = vec4(s22.v3.xy, s22.v3.zx); // 9,10,11,9
87 const vec4 v410 = vec4(v44.xy, v43.zx); //5,5,4,4
88
89 const vec4 v411 = vec4(m42[3]); // 5,5,5,5
90 const vec4 v412 = vec4(m43[2]); // 0,0,4,0
91
92 const vec2 v23 = vec2(m41); // 1,0
93
94 const vec2 v24 = vec2(33, s11.i); // 33, 2
95
96 const vec4 v413 = vec4(vec2(1.0,2.0),ivec2(3.0,4.0)); // 1,2,3,4
97 const ivec4 i41 = ivec4(1.0, 2.0, 3.0, 4.0); // 1,2,3,4
98
99 const ivec4 i42 = ivec4(6); // 6,6,6,6
100 const ivec4 i43 = ivec4(v45); //11,11,11,11
101
102 const ivec4 i44 = ivec4(v44[0]); // 5,5,5,5
103 const ivec4 i45 = ivec4(vec2(20, 21), vec2(22, 23)); // 20, 21, 22, 23
104 const vec4 v414 = vec4(ivec2(29, 30), ivec2(31, 32)); // 29.0, 30.0, 31.0, 32. 0
105 const ivec4 i46 = ivec4(ivec2(2.0,3.0), ivec3(4.0,5.0,6.0));
106 const ivec4 i47 = ivec4(i46); // 2,3,4,5
107 const ivec4 i48 = ivec4(v414.x); // 29,29,29,29
108
109 const ivec4 i49 = ivec4(vec4(1)); // 1,1,1,1
110 const ivec4 i414 = ivec4(mat4(14)); // 14, 0,0,0,
111 const ivec4 i410 = ivec4(m43); // 4,0,0,0
112 const ivec4 i411 = ivec4(m43[1]); // 0, 4, 0, 0
113 const ivec4 i412 = ivec4(s77.i); // 12, 12, 12, 12
114 const ivec4 i416 = ivec4(s22.v3.zyx, 12); // 11, 10, 9, 12
115
116 const vec4 v415 = vec4(ivec2(35), ivec2(36)); // 35.0, 35.0 ,36.0 , 36.0
117
118 const bvec4 b41 = bvec4(1.0, 2.0, 3.0, 4.0); // true,true,true,true
119
120 const bvec4 b42 = bvec4(6); // true,true,true,true
121 const bvec4 b43 = bvec4(v45); //true,true,true,true
122
123 const bvec4 b44 = bvec4(v44[0]); // true,true,true,true
124 const bvec4 b45 = bvec4(vec2(0, 21), vec2(0, 1)); // false, true, false, true
125 const bvec4 b46 = bvec4(ivec2(0.0,3.0), ivec3(0,5.0,6.0)); // false, true, fal se, true
126 const bvec4 b47 = bvec4(i46); // true,true,true,true
127 const bvec4 b48 = bvec4(v414.x); // true,true,true,true
128
129 const bvec4 b49 = bvec4(vec4(0)); // false,false,false,false
130 const bvec4 b414 = bvec4(mat4(14)); // true, false,false,false,
131 const bvec4 b410 = bvec4(m43); // true,false,false,false
132 const bvec4 b411 = bvec4(m43[1]); // false, true, false, false
133 const bvec4 b412 = bvec4(s77.i) ; // true, true, true, true
134
135 const vec3 v35 = vec3(s11.s44.v4); // 7.0,8.0,9.0
136
137
138 struct s10 {
139 int k;
140 };
141 struct s9 {
142 float f;
143 s10 s101;
144 };
145 const struct s8 {
146 int i;
147 s9 s99;
148 } s88 = s8(1, s9(2.0, s10(5)));
149
150 struct st4 {
151 int m;
152 vec3 v3;
153 };
154 struct st3 {
155 int k;
156 int l;
157 st4 st44;
158 };
159 struct st2 {
160 float f;
161 st3 st33;
162 };
163 const struct st1 {
164 int i;
165 st2 st22;
166 } st11 = st1(1, st2(2.0, st3(5, 6, st4(7, v35))));
167
168 const vec4 v416 = vec4(s88.s99.s101.k); // all 5s
169 const vec4 v417 = vec4(st11.st22.st33.st44.v3, s88.s99.s101.k); // 7.0, 8.0, 9.0, 5.0
170 const vec3 v36 = vec3(s11.ss.v3); // 9, 10, 11
171
172 vec4 v418 = v416; // all 5s
173 const float f1 = v416[0]; // 5.0
174 vec4 v419;
175 v419.xyz = st11.st22.st33.st44.v3;
176 mat4 m47;
177
178 struct struct2 {
179 int k;
180 } struct22 = struct2(4);
181
182 const struct struct1 {
183 struct2 sst2;
184 } struct11 = struct1(struct2(2));
185
186 const vec4 v420 = v417; // 7.0, 8.0, 9.0 , 5.0
187
188 vec4 v421 = vec4(s11.m); // 5, 0, 0, 0
189 vec4 v422 = v420; // 7.0, 8.0, 9.0 , 5.0
190
191 vec4 v423 = s11.s44.v4; // 7, 8, 9, 10
192
193 int int1 = ss.i * ss.i; // 16
194 int int2 = ss.i * 2; // 8
195
196 const vec4 v425 = v420 * v420; // 49, 64, 81, 25
197 const vec4 v426 = s11.m * s11.s44.v4; // 35, 40, 45, 50
198 const vec4 v427 = s11.s44.v4 * s11.m; // 35, 40, 45, 50
199
200 float ff = 2.0;
201 const float ffConst = 2.0;
202
203 vec4 v428 = ff + v425; // ordinary assignment with binary node
204 vec3 v39 = vec3(5);
205
206 vec3 v310 = s22.v3 + v39; //14, 15, 16
207
208 const vec4 v429 = v420 + v420; // 14, 16, 18, 10
209 const vec4 v430 = v420 + ffConst; // 9, 10, 11,7
210 const vec4 v432 = v429 + s11.f; // 18, 20, 22, 14
211
212 const vec4 v433 = vec4(s11.f + s11.f); // all 8s
213 const vec4 v434 = v432 + vec4(3); // 21, 23, 25, 17
214 const mat4 m48 = s11.m + ffConst; // diagonal 7s and others 2s
215 const mat4 m49 = mat4(ffConst + s11.f); // diagonal 6s
216 const mat4 m410 = m48 + s11.f; // diagonal 11, others - 6s
217
218 const mat4 m413 = m48 + m48 ; // diagonal 14, others 4
219 const mat4 m414 = m413 + ffConst ; // diagonal 16, others 6
220
221 const vec4 v435 = ffConst + v420; // 9, 10, 11,7
222 const vec4 v436 = s11.f + v429; // 18, 20, 22, 14
223 const mat4 m415 = ffConst + s11.m; // diagonal 7s and others 2s
224 const mat4 m416 = s11.f + m48 ; // diagonal 11, others - 6s
225 const mat4 m417 = ffConst + m413 ; // diagonal 16, others 6
226
227 const vec4 v437 = v420 - v420; // 0, 0, 0, 0
228 const vec4 v438 = v420 - ffConst; // 5, 6, 7,3
229 const vec4 v440 = v429 - s11.f; // 10, 12, 14, 6
230
231 const vec4 v441 = vec4(s11.f - s11.f); // all 0s
232 const vec4 v442 = v432 - vec4(3); // 15, 17, 19, 11
233 const mat4 m418 = s11.m - ffConst; // diagonal 3s and others -2s
234 const mat4 m419 = mat4(ffConst - s11.f); // diagonal -> -2s
235 const mat4 m420 = m48 - s11.f; // diagonal 3, others -> -2
236
237 const mat4 m423 = m48 - m48 ; // All 0s
238 const mat4 m424 = m413 - ffConst ; // diagonal 12, others 2
239
240 const vec4 v443 = ffConst - v420; // -5, -6, -7,-3
241 const vec4 v444 = s11.f - v429; // -10, -12, -14, -6
242 const mat4 m425 = ffConst - s11.m; // diagonal -3s and others 2s
243 const mat4 m426 = s11.f - m48 ; // diagonal -3, others 2s
244 const mat4 m427 = ffConst - m413 ; // diagonal -12, others -2
245
246 const vec4 v445 = v420 * v420; // 49, 64, 81, 25
247 const vec4 v446 = v420 * ffConst; // 14, 16, 18,10
248 const vec4 v448 = v429 * s11.f; // 56, 46, 72, 40
249
250 const vec4 v449 = vec4(s11.f * s11.f); // all 16
251 const vec4 v450 = v432 * vec4(3); // 54, 60, 66, 42
252 const mat4 m428 = s11.m * ffConst; // diagonal 10 and others 0s
253 const mat4 m429 = mat4(ffConst * s11.f); // diagonal 8
254 const mat4 m430 = m48 * s11.f; // diagonal 28, others 8
255
256 const mat4 m433 = m48 * m48 ; // diagonal 61, others 36
257 const mat4 m434 = m413 * ffConst ; // diagonal 28, others 8
258
259 const vec4 v451 = ffConst * v420; // 14, 16, 18,10
260 const vec4 v452 = s11.f * v429; // 56, 64, 72, 40
261 const mat4 m435 = ffConst * s11.m; // diagonal 10 and others 0s
262 const mat4 m436 = s11.f * m48 ; // diagonal 28, others - 8s
263 const mat4 m437 = ffConst * m413 ; // diagonal 28, others 8
264
265 const vec4 v453 = v420 / v420; // 1, 1, 1, 1
266 const vec4 v454 = v420 / ffConst; // 3.5, 4, 4.5,2.5
267
268 const vec4 v457 = vec4(s11.f / s11.f); // all 1s
269 const vec4 v458 = v432 / vec4(3); // 6, 6.6666, 7.333, 4.6666
270 const mat4 m438 = s11.m / ffConst; // diagonal 2.5 and others 0s
271 const mat4 m439 = mat4(ffConst / s11.f); // diagonal 0.5s
272 const mat4 m440 = m48 / s11.f; // diagonal 1.75, others 0.5s
273
274 const mat4 m443 = m48 / m48 ; // All 1s
275 const mat4 m444 = m413 / ffConst ; // diagonal 7, others 2
276
277 const vec4 v459 = ffConst / v420; // .2857 , .25, .22, .4
278 const vec4 v460 = s11.f / v429; // .2857, .25, .22, .4
279 //const mat4 m445 = ffConst / s11.m; // divide by zero error
280 const mat4 m446 = s11.f / m48 ; // diagonal .571, others 2
281 const mat4 m447 = ffConst / m413 ; // diagonal .1428, others 0.5
282
283 const vec4 v461 = v453 * m428; // 10, 10, 10, 10
284 const vec4 v462 = v453 * m437; // 52, 52, 52, 52
285 const vec4 v463 = m428 * v451; // 140, 160, 180, 100
286 const vec4 v464 = m437 * v451; // 744, 784, 824, 664
287
288 int ii = 2;
289 const int iiConst = 2;
290
291 const ivec4 i420 = ivec4( 7,8,9,5); // 7, 8, 9, 5
292
293 const ivec4 i429 = i420 + i420; // 14, 16, 18, 10
294 const ivec4 i430 = i420 + iiConst; // 9, 10, 11,7
295 const ivec4 i432 = i429 + ss.i; // 18, 20, 22, 14
296
297 const ivec4 i433 = ivec4(ss.i + ss.i); // all 8s
298
299 const ivec4 i435 = iiConst + i420; // 9, 10, 11,7
300 const ivec4 i436 = ss.i + i429; // 18, 20, 22, 14
301
302 const ivec4 i437 = i420 - i420; // 0, 0, 0, 0
303 const ivec4 i438 = i420 - iiConst; // 5, 6, 7,3
304 const ivec4 i440 = i429 - ss.i; // 10, 12, 14, 6
305
306 const ivec4 i441 = ivec4(ss.i - ss.i); // all 0s
307
308 const ivec4 i443 = iiConst - i420; // -5, -6, -7,-3
309 const ivec4 i444 = ss.i - i429; // -10, -12, -14, -6
310
311 const ivec4 i445 = i420 * i420; // 49, 64, 81, 25
312 const ivec4 i446 = i420 * iiConst; // 14, 16, 18,10
313 const ivec4 i448 = i429 * ss.i; // 56, 64, 72, 40
314
315 const ivec4 i449 = ivec4(ss.i * ss.i); // all 16
316
317 const ivec4 i451 = iiConst * i420; // 14, 16, 18,10
318 const ivec4 i452 = ss.i * i429; // 56, 64, 72, 40
319
320 const ivec4 i453 = i420 / i420; // 1, 1, 1, 1
321 const ivec4 i454 = i420 / iiConst; // 3, 4, 4,2
322 const ivec4 i456 = i429 / ss.i; // 3, 4, 4, 2
323
324 const ivec4 i457 = ivec4(ss.i / ss.i); // all 1s
325
326 const ivec4 i459 = iiConst / i420; // 0 , 0, 0,0
327 const ivec4 i460 = ss.i / i429; // 0, 0, 0,0
328
329 const bvec4 b424 = bvec4(s22.bv4);
330
331 const bool b1 = s22.bv4 == b424; // true
332 const bool b2 = i420 == i420; // true
333 const bool b3 = i420 == i445; // false
334 const bool b4 = v420 == v420; // true
335 const bool b5 = m430 == m434; // true
336
337 const vec4 v465 = -v420; // -7, -8, -9, -5
338 const mat4 m448 = -m447 ; // diagonal -.1428, others -0.5
339 const ivec4 i465 = -i456 ; // -3, -4, -4,-2
340
341 const bool b7 = s22 == s22;
342
343 const vec4 v466 = v432 + vec4(3,4,5,6); // 21, 24, 27, 20
344 const vec4 v467 = v432 + vec4(vec2(3,4),5,6); // 21, 24, 27, 20
345 const vec4 v468 = v432 + vec4(3, vec2(4, 5),vec2(6,7)); // 21, 24, 27, 20
346 const vec4 v469 = vec4(v468) + vec4(3) + v468 + vec4(s77.m3[2][0]); // 45, 51, 57, 43
347
348 const bool b8 = ss == ss; // true
349
350 struct st6 {
351 vec3 v;
352 };
353
354 struct st5 {
355 int i;
356 float f;
357 st6 st66;
358 } st55;
359
360 const st5 st551 = st5(2, 4.0, st6(vec3(7)));
361 const st5 st552 = st5(2, 4.0, st6(vec3(7)));
362
363 const bool b10 = st551 == st552; // true
364
365 const bool b11 = st551.st66 == st552.st66; // true
366
367 const st5 st553 = st5(2, 4.0, st6(vec3(8)));
368
369 const bool b12 = st551.st66 == st553.st66; // false
370 const bool b13 = st551 == st553; // false
371
372 const bool b14 = st551 != st552; // false
373 const bool b15 = st551.st66 != st552.st66; // false
374 const bool b16 = st551.st66 != st553.st66; // true
375 const bool b17 = st551 != st553; // true
376
377 const bool b18 = s22.bv4 != b424; // false
378 const bool b19 = i420 != i420; // false
379 const bool b20 = i420 != i445; // true
380 const bool b21 = v420 != v420; // false
381 const bool b22 = m430 != m434; // false
382
383 const int int10 = i420.xy.y; // 8
384
385 //float f = v470.x;
386
387
388
389 const int int13 = -ss.i;
390
391 const vec4 v474 = -vec4(0.5);
392
393 int int14 = ii++;
394 int array[3];
395 array[2];
396
397 const vec4 v478 = v466 * 2.0; // 42, 48, 54, 40
398
399 const vec4 v479 = iiConst > 1 ? v466 : v478; // 21, 24, 27, 20
400
401 const struct st7 {
402 int i;
403 bool b;
404 } st77 = st7(ss.i, true);
405
406 const vec4 v481 = vec4(st77.i);
407
408 const struct st8 {
409 int i;
410 } ;
411
412
413 const struct st9 {
414 s2 ss;
415 } st99 = st9(s22);
416
417 const vec3 v312 = st99.ss.v3; // 9, 10, 11
418 const vec4 v482 = mat4(1)[0]; // 1, 0, 0 , 0
419
420 const mat4 m450 = mat4(ss.i); // mat4(4)
421 const mat4 m451 = mat4(b20); // mat4(1)
422 const mat4 m452 = mat4(st77.b); // mat4(1)
423
424 const vec4 v483 = vec4(vec4(3).x); // 3,3,3,3
425 const mat4 m453 = mat4(vec4(5).x); // mat5(5)
426
427 const vec4 v484 = vec4(mat4(6)[1]); // 0,6,0,0
428 const mat4 m454 = mat4(mat4(6)[1][1]); // mat4(6)
429
430 const vec4 v485 = vec4(st7(8, true).b); // 1,1,1,1
431
432 const vec4 v487 = vec4(vec4(12, 13, 14, 15).ab, 12, 14);
433
434 int i20 = ss.i;
435 const vec4 v489 = -vec4(7,8,9,5); // -7, -8, -9, -5
436
437 gl_Position = vec4(1);
438 }
OLDNEW
« no previous file with comments | « conformance/ogles/GL/build/CorrectConstFolding1_vert.vert ('k') | conformance/ogles/GL/build/CorrectConstruct_vert.vert » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698