1 /* DO NOT MODIFY - automatically generated by generate_builtins.pl */
3 * Copyright © 2010 Intel Corporation
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
26 #include "glsl_parser_extras.h"
27 #include "ir_reader.h"
30 read_builtins(_mesa_glsl_parse_state
*st
, exec_list
*instructions
,
31 const char **functions
, unsigned count
)
36 for (unsigned i
= 0; i
< count
; i
++) {
37 _mesa_glsl_read_ir(st
, instructions
, functions
[i
]);
40 printf("error reading builtin: %.35s ...\n", functions
[i
]);
48 static const char *builtins_110_abs
= {
52 " (declare (in) float arg0))\n"
53 " ((return (expression float abs (var_ref arg0)))))\n"
57 " (declare (in) vec2 arg0))\n"
58 " ((return (expression vec2 abs (var_ref arg0)))))\n"
62 " (declare (in) vec3 arg0))\n"
63 " ((return (expression vec3 abs (var_ref arg0)))))\n"
67 " (declare (in) vec4 arg0))\n"
68 " ((return (expression vec4 abs (var_ref arg0)))))\n"
72 static const char *builtins_110_all
= {
76 " (declare (in) bvec2 arg0))\n"
77 " ((return (expression bool && (swiz x (var_ref arg0))(swiz y (var_ref arg0))))))\n"
81 " (declare (in) bvec3 arg0))\n"
82 " ((return (expression bool && (expression bool && (swiz x (var_ref arg0))(swiz y (var_ref arg0))) (swiz z (var_ref arg0))))))\n"
86 " (declare (in) bvec4 arg0))\n"
87 " ((return (expression bool && (expression bool && (expression bool && (swiz x (var_ref arg0))(swiz y (var_ref arg0))) (swiz z (var_ref arg0))) (swiz w (var_ref arg0))))))\n"
91 static const char *builtins_110_any
= {
95 " (declare (in) bvec2 arg0))\n"
96 " ((return (expression bool || (swiz x (var_ref arg0))(swiz y (var_ref arg0))))))\n"
100 " (declare (in) bvec3 arg0))\n"
101 " ((return (expression bool || (expression bool || (swiz x (var_ref arg0))(swiz y (var_ref arg0))) (swiz z (var_ref arg0))))))\n"
105 " (declare (in) bvec4 arg0))\n"
106 " ((return (expression bool || (expression bool || (expression bool || (swiz x (var_ref arg0))(swiz y (var_ref arg0))) (swiz z (var_ref arg0))) (swiz w (var_ref arg0))))))\n"
110 static const char *builtins_110_asin
= {
112 " (signature float\n"
114 " (declare (in) float x))\n"
115 " ((return (expression float *\n"
116 " (expression float -\n"
117 " (expression float *\n"
118 " (constant float (3.1415926))\n"
119 " (constant float (0.5)))\n"
120 " (expression float sqrt\n"
121 " (expression float -\n"
122 " (constant float (1.0))\n"
123 " (expression float abs (var_ref x)))))\n"
124 " (expression float +\n"
125 " (constant float (1.5707288))\n"
126 " (expression float *\n"
127 " (expression float abs (var_ref x))\n"
128 " (expression float +\n"
129 " (constant float (-0.2121144))\n"
130 " (expression float *\n"
131 " (constant float (0.0742610))\n"
132 " (expression float abs (var_ref x))))))))))\n"
136 " (declare (in) vec2 x))\n"
137 " ((return (expression vec2 *\n"
138 " (expression float -\n"
139 " (expression float *\n"
140 " (constant float (3.1415926))\n"
141 " (constant float (0.5)))\n"
142 " (expression vec2 sqrt\n"
143 " (expression vec2 -\n"
144 " (constant float (1.0))\n"
145 " (expression vec2 abs (var_ref x)))))\n"
146 " (expression vec2 +\n"
147 " (constant float (1.5707288))\n"
148 " (expression vec2 *\n"
149 " (expression vec2 abs (var_ref x))\n"
150 " (expression vec2 +\n"
151 " (constant float (-0.2121144))\n"
152 " (expression vec2 *\n"
153 " (constant float (0.0742610))\n"
154 " (expression vec2 abs (var_ref x))))))))))\n"
158 " (declare (in) vec3 x))\n"
159 " ((return (expression vec3 *\n"
160 " (expression vec3 -\n"
161 " (expression float *\n"
162 " (constant float (3.1415926))\n"
163 " (constant float (0.5)))\n"
164 " (expression vec3 sqrt\n"
165 " (expression vec3 -\n"
166 " (constant float (1.0))\n"
167 " (expression vec3 abs (var_ref x)))))\n"
168 " (expression vec3 +\n"
169 " (constant float (1.5707288))\n"
170 " (expression vec3 *\n"
171 " (expression vec3 abs (var_ref x))\n"
172 " (expression vec3 +\n"
173 " (constant float (-0.2121144))\n"
174 " (expression vec3 *\n"
175 " (constant float (0.0742610))\n"
176 " (expression vec3 abs (var_ref x))))))))))\n"
180 " (declare (in) vec4 x))\n"
181 " ((return (expression vec4 *\n"
182 " (expression vec4 -\n"
183 " (expression float *\n"
184 " (constant float (3.1415926))\n"
185 " (constant float (0.5)))\n"
186 " (expression vec4 sqrt\n"
187 " (expression vec4 -\n"
188 " (constant float (1.0))\n"
189 " (expression vec4 abs (var_ref x)))))\n"
190 " (expression vec4 +\n"
191 " (constant float (1.5707288))\n"
192 " (expression vec4 *\n"
193 " (expression vec4 abs (var_ref x))\n"
194 " (expression vec4 +\n"
195 " (constant float (-0.2121144))\n"
196 " (expression vec4 *\n"
197 " (constant float (0.0742610))\n"
198 " (expression vec4 abs (var_ref x))))))))))\n"
202 " (signature float\n"
204 " (declare (in) float x))\n"
205 " ((return (expression float - (constant float (1.5707963))\n"
206 " (call asin ((var_ref x)))))))\n"
209 " (declare (in) vec2 x))\n"
210 " ((return (expression vec2 - (constant float (1.5707963))\n"
211 " (call asin ((var_ref x)))))))\n"
214 " (declare (in) vec3 x))\n"
215 " ((return (expression vec3 - (constant float (1.5707963))\n"
216 " (call asin ((var_ref x)))))))\n"
219 " (declare (in) vec4 x))\n"
220 " ((return (expression vec4 - (constant float (1.5707963))\n"
221 " (call asin ((var_ref x)))))))\n"
225 static const char *builtins_110_atan
= {
227 " (signature float\n"
229 " (declare (in) float x))\n"
230 " ((return (call asin ((expression float *\n"
232 " (expression float rsq\n"
233 " (expression float +\n"
234 " (expression float *\n"
237 " (constant float (1.0))))))))))\n"
241 " (declare (in) vec2 y_over_x))\n"
242 " ((return (call asin ((expression vec2 *\n"
243 " (var_ref y_over_x)\n"
244 " (expression vec2 rsq\n"
245 " (expression vec2 +\n"
246 " (expression vec2 *\n"
247 " (var_ref y_over_x)\n"
248 " (var_ref y_over_x))\n"
249 " (constant float (1.0))))))))))\n"
253 " (declare (in) vec3 y_over_x))\n"
254 " ((return (call asin ((expression vec3 *\n"
255 " (var_ref y_over_x)\n"
256 " (expression vec3 rsq\n"
257 " (expression vec3 +\n"
258 " (expression vec3 *\n"
259 " (var_ref y_over_x)\n"
260 " (var_ref y_over_x))\n"
261 " (constant float (1.0))))))))))\n"
265 " (declare (in) vec4 y_over_x))\n"
266 " ((return (call asin ((expression vec4 *\n"
267 " (var_ref y_over_x)\n"
268 " (expression vec4 rsq\n"
269 " (expression vec4 +\n"
270 " (expression vec4 *\n"
271 " (var_ref y_over_x)\n"
272 " (var_ref y_over_x))\n"
273 " (constant float (1.0))))))))))\n"
275 " (signature float\n"
277 " (declare (in) float y)\n"
278 " (declare (in) float x))\n"
279 " ((declare () float r)\n"
280 " (if (expression bool >\n"
281 " (expression float abs (var_ref x))\n"
282 " (constant float (.0001)))\n"
283 " ((assign (constant bool (1))\n"
284 " (var_ref r) (call atan ((expression float /\n"
287 " (if (expression bool <\n"
289 " (constant float (0.0)))\n"
290 " ((assign (constant bool (1))\n"
292 " (expression float +\n"
294 " (expression float *\n"
295 " (expression int sign (var_ref y))\n"
296 " (constant float (3.1415926))))))\n"
299 " (return (var_ref r))))\n"
303 " (declare (in) vec2 y)\n"
304 " (declare (in) vec2 x))\n"
305 " ((declare () vec2 r)\n"
306 " (if (expression bool >\n"
307 " (expression vec2 abs (var_ref x))\n"
308 " (constant float (.0001)))\n"
309 " ((assign (constant bool (1))\n"
310 " (var_ref r) (call atan ((expression vec2 /\n"
313 " (if (expression bool <\n"
315 " (constant float (0.0)))\n"
316 " ((assign (constant bool (1))\n"
318 " (expression vec2 +\n"
320 " (expression vec2 *\n"
321 " (expression int sign (var_ref y))\n"
322 " (constant float (3.1415926))))))\n"
325 " (return (var_ref r))))\n"
329 " (declare (in) vec3 y)\n"
330 " (declare (in) vec3 x))\n"
331 " ((declare () vec3 r)\n"
332 " (if (expression bool >\n"
333 " (expression vec3 abs (var_ref x))\n"
334 " (constant float (.0001)))\n"
335 " ((assign (constant bool (1))\n"
336 " (var_ref r) (call atan ((expression vec3 /\n"
339 " (if (expression bool <\n"
341 " (constant float (0.0)))\n"
342 " ((assign (constant bool (1))\n"
344 " (expression vec3 +\n"
346 " (expression vec3 *\n"
347 " (expression int sign (var_ref y))\n"
348 " (constant float (3.1415926))))))\n"
351 " (return (var_ref r))))\n"
355 " (declare (in) vec4 y)\n"
356 " (declare (in) vec4 x))\n"
357 " ((declare () vec4 r)\n"
358 " (if (expression bool >\n"
359 " (expression vec4 abs (var_ref x))\n"
360 " (constant float (.0001)))\n"
361 " ((assign (constant bool (1))\n"
362 " (var_ref r) (call atan ((expression vec4 /\n"
365 " (if (expression bool <\n"
367 " (constant float (0.0)))\n"
368 " ((assign (constant bool (1))\n"
370 " (expression vec4 +\n"
372 " (expression vec4 *\n"
373 " (expression int sign (var_ref y))\n"
374 " (constant float (3.1415926))))))\n"
377 " (return (var_ref r))))\n"
382 static const char *builtins_110_ceil
= {
384 " (signature float\n"
386 " (declare (in) float arg0))\n"
387 " ((return (expression float ceil (var_ref arg0)))))\n"
391 " (declare (in) vec2 arg0))\n"
392 " ((return (expression vec2 ceil (var_ref arg0)))))\n"
396 " (declare (in) vec3 arg0))\n"
397 " ((return (expression vec3 ceil (var_ref arg0)))))\n"
401 " (declare (in) vec4 arg0))\n"
402 " ((return (expression vec4 ceil (var_ref arg0)))))\n"
406 static const char *builtins_110_clamp
= {
408 " (signature float\n"
410 " (declare (in) float arg0)\n"
411 " (declare (in) float arg1)\n"
412 " (declare (in) float arg2))\n"
413 " ((return (expression float max (expression float min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
417 " (declare (in) vec2 arg0)\n"
418 " (declare (in) vec2 arg1)\n"
419 " (declare (in) vec2 arg2))\n"
420 " ((return (expression vec2 max (expression vec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
424 " (declare (in) vec3 arg0)\n"
425 " (declare (in) vec3 arg1)\n"
426 " (declare (in) vec3 arg2))\n"
427 " ((return (expression vec3 max (expression vec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
431 " (declare (in) vec4 arg0)\n"
432 " (declare (in) vec4 arg1)\n"
433 " (declare (in) vec4 arg2))\n"
434 " ((return (expression vec4 max (expression vec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
438 " (declare (in) vec2 arg0)\n"
439 " (declare (in) float arg1)\n"
440 " (declare (in) float arg2))\n"
441 " ((declare () vec2 result)\n"
442 " (assign (constant bool (1)) (swiz x (var_ref result)) (expression vec4 max (expression vec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
443 " (assign (constant bool (1)) (swiz y (var_ref result)) (expression vec4 max (expression vec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
444 " (return (var_ref result))))\n"
448 " (declare (in) vec3 arg0)\n"
449 " (declare (in) float arg1)\n"
450 " (declare (in) float arg2))\n"
451 " ((declare () vec3 result)\n"
452 " (assign (constant bool (1)) (swiz x (var_ref result)) (expression vec4 max (expression vec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
453 " (assign (constant bool (1)) (swiz y (var_ref result)) (expression vec4 max (expression vec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
454 " (assign (constant bool (1)) (swiz z (var_ref result)) (expression vec4 max (expression vec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
455 " (return (var_ref result))))\n"
459 " (declare (in) vec4 arg0)\n"
460 " (declare (in) float arg1)\n"
461 " (declare (in) float arg2))\n"
462 " ((declare () vec4 result)\n"
463 " (assign (constant bool (1)) (swiz x (var_ref result)) (expression vec4 max (expression vec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
464 " (assign (constant bool (1)) (swiz y (var_ref result)) (expression vec4 max (expression vec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
465 " (assign (constant bool (1)) (swiz z (var_ref result)) (expression vec4 max (expression vec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
466 " (assign (constant bool (1)) (swiz w (var_ref result)) (expression vec4 max (expression vec4 min (swiz w (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
467 " (return (var_ref result))))\n"
471 static const char *builtins_110_cos
= {
473 " (signature float\n"
475 " (declare (in) float angle))\n"
476 " ((return (expression float cos (var_ref angle)))))\n"
480 " (declare (in) vec2 angle))\n"
481 " ((return (expression vec2 cos (var_ref angle)))))\n"
485 " (declare (in) vec3 angle))\n"
486 " ((return (expression vec3 cos (var_ref angle)))))\n"
490 " (declare (in) vec4 angle))\n"
491 " ((return (expression vec4 cos (var_ref angle)))))\n"
495 static const char *builtins_110_cross
= {
499 " (declare (in) vec3 arg0)\n"
500 " (declare (in) vec3 arg1))\n"
501 " ((declare () vec3 t)\n"
502 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
503 " (expression float - (expression float * (swiz y (var_ref arg0)) (swiz z (var_ref arg1)))\n"
504 " (expression float * (swiz y (var_ref arg1)) (swiz z (var_ref arg0)))))\n"
505 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
506 " (expression float - (expression float * (swiz z (var_ref arg0)) (swiz x (var_ref arg1)))\n"
507 " (expression float * (swiz z (var_ref arg1)) (swiz x (var_ref arg0)))))\n"
508 " (assign (constant bool (1)) (swiz z (var_ref t))\n"
509 " (expression float - (expression float * (swiz x (var_ref arg0)) (swiz y (var_ref arg1)))\n"
510 " (expression float * (swiz x (var_ref arg1)) (swiz y (var_ref arg0)))))\n"
511 " (return (var_ref t))))\n"
515 static const char *builtins_110_degrees
= {
516 "((function degrees\n"
517 " (signature float\n"
519 " (declare (in) float arg0))\n"
520 " ((return (expression float * (var_ref arg0) (constant float (57.295780))))))\n"
524 " (declare (in) vec2 arg0))\n"
525 " ((return (expression vec2 * (var_ref arg0) (constant float (57.295780))))))\n"
529 " (declare (in) vec3 arg0))\n"
530 " ((return (expression vec3 * (var_ref arg0) (constant float (57.295780))))))\n"
534 " (declare (in) vec4 arg0))\n"
535 " ((return (expression vec4 * (var_ref arg0) (constant float (57.295780))))))\n"
539 static const char *builtins_110_distance
= {
540 "((function distance\n"
541 " (signature float\n"
543 " (declare (in) float p0)\n"
544 " (declare (in) float p1))\n"
545 " ((declare () float p)\n"
546 " (assign (constant bool (1)) (var_ref p) (expression float - (var_ref p0) (var_ref p1)))\n"
547 " (return (expression float sqrt (expression float dot (var_ref p) (var_ref p))))))\n"
549 " (signature float\n"
551 " (declare (in) vec2 p0)\n"
552 " (declare (in) vec2 p1))\n"
553 " ((declare () vec2 p)\n"
554 " (assign (constant bool (1)) (var_ref p) (expression vec2 - (var_ref p0) (var_ref p1)))\n"
555 " (return (expression float sqrt (expression float dot (var_ref p) (var_ref p))))))\n"
557 " (signature float\n"
559 " (declare (in) vec3 p0)\n"
560 " (declare (in) vec3 p1))\n"
561 " ((declare () vec3 p)\n"
562 " (assign (constant bool (1)) (var_ref p) (expression vec3 - (var_ref p0) (var_ref p1)))\n"
563 " (return (expression float sqrt (expression float dot (var_ref p) (var_ref p))))))\n"
565 " (signature float\n"
567 " (declare (in) vec4 p0)\n"
568 " (declare (in) vec4 p1))\n"
569 " ((declare () vec4 p)\n"
570 " (assign (constant bool (1)) (var_ref p) (expression vec4 - (var_ref p0) (var_ref p1)))\n"
571 " (return (expression float sqrt (expression float dot (var_ref p) (var_ref p))))))\n"
575 static const char *builtins_110_dot
= {
577 " (signature float\n"
579 " (declare (in) float arg0)\n"
580 " (declare (in) float arg1))\n"
581 " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
583 " (signature float\n"
585 " (declare (in) vec2 arg0)\n"
586 " (declare (in) vec2 arg1))\n"
587 " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
589 " (signature float\n"
591 " (declare (in) vec3 arg0)\n"
592 " (declare (in) vec3 arg1))\n"
593 " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
595 " (signature float\n"
597 " (declare (in) vec4 arg0)\n"
598 " (declare (in) vec4 arg1))\n"
599 " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
603 static const char *builtins_110_equal
= {
605 " (signature bvec2\n"
607 " (declare (in) vec2 arg0)\n"
608 " (declare (in) vec2 arg1))\n"
609 " ((declare () bvec2 temp)\n"
610 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
611 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
612 " (return (var_ref temp))))\n"
614 " (signature bvec3\n"
616 " (declare (in) vec3 arg0)\n"
617 " (declare (in) vec3 arg1))\n"
618 " ((declare () bvec3 temp)\n"
619 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
620 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
621 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
622 " (return (var_ref temp))))\n"
624 " (signature bvec4\n"
626 " (declare (in) vec4 arg0)\n"
627 " (declare (in) vec4 arg1))\n"
628 " ((declare () bvec4 temp)\n"
629 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
630 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
631 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
632 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool == (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
633 " (return (var_ref temp))))\n"
635 " (signature bvec2\n"
637 " (declare (in) ivec2 arg0)\n"
638 " (declare (in) ivec2 arg1))\n"
639 " ((declare () bvec2 temp)\n"
640 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
641 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
642 " (return (var_ref temp))))\n"
644 " (signature bvec3\n"
646 " (declare (in) ivec3 arg0)\n"
647 " (declare (in) ivec3 arg1))\n"
648 " ((declare () bvec3 temp)\n"
649 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
650 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
651 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
652 " (return (var_ref temp))))\n"
654 " (signature bvec4\n"
656 " (declare (in) ivec4 arg0)\n"
657 " (declare (in) ivec4 arg1))\n"
658 " ((declare () bvec4 temp)\n"
659 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
660 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
661 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
662 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool == (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
663 " (return (var_ref temp))))\n"
667 static const char *builtins_110_exp
= {
669 " (signature float\n"
671 " (declare (in) float arg0))\n"
672 " ((return (expression float exp (var_ref arg0)))))\n"
676 " (declare (in) vec2 arg0))\n"
677 " ((return (expression vec2 exp (var_ref arg0)))))\n"
681 " (declare (in) vec3 arg0))\n"
682 " ((return (expression vec3 exp (var_ref arg0)))))\n"
686 " (declare (in) vec4 arg0))\n"
687 " ((return (expression vec4 exp (var_ref arg0)))))\n"
691 static const char *builtins_110_exp2
= {
693 " (signature float\n"
695 " (declare (in) float arg0))\n"
696 " ((return (expression float exp2 (var_ref arg0)))))\n"
700 " (declare (in) vec2 arg0))\n"
701 " ((return (expression vec2 exp2 (var_ref arg0)))))\n"
705 " (declare (in) vec3 arg0))\n"
706 " ((return (expression vec3 exp2 (var_ref arg0)))))\n"
710 " (declare (in) vec4 arg0))\n"
711 " ((return (expression vec4 exp2 (var_ref arg0)))))\n"
715 static const char *builtins_110_faceforward
= {
716 "((function faceforward\n"
717 " (signature float\n"
719 " (declare (in) float N)\n"
720 " (declare (in) float I)\n"
721 " (declare (in) float Nref))\n"
722 " ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0)))\n"
723 " ((return (var_ref N)))\n"
724 " ((return (expression float neg (var_ref N)))))))\n"
728 " (declare (in) vec2 N)\n"
729 " (declare (in) vec2 I)\n"
730 " (declare (in) vec2 Nref))\n"
731 " ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0)))\n"
732 " ((return (var_ref N)))\n"
733 " ((return (expression vec2 neg (var_ref N)))))))\n"
737 " (declare (in) vec3 N)\n"
738 " (declare (in) vec3 I)\n"
739 " (declare (in) vec3 Nref))\n"
740 " ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0)))\n"
741 " ((return (var_ref N)))\n"
742 " ((return (expression vec3 neg (var_ref N)))))))\n"
746 " (declare (in) vec4 N)\n"
747 " (declare (in) vec4 I)\n"
748 " (declare (in) vec4 Nref))\n"
749 " ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0)))\n"
750 " ((return (var_ref N)))\n"
751 " ((return (expression vec4 neg (var_ref N)))))))\n"
755 static const char *builtins_110_floor
= {
757 " (signature float\n"
759 " (declare (in) float arg0))\n"
760 " ((return (expression float floor (var_ref arg0)))))\n"
764 " (declare (in) vec2 arg0))\n"
765 " ((return (expression vec2 floor (var_ref arg0)))))\n"
769 " (declare (in) vec3 arg0))\n"
770 " ((return (expression vec3 floor (var_ref arg0)))))\n"
774 " (declare (in) vec4 arg0))\n"
775 " ((return (expression vec4 floor (var_ref arg0)))))\n"
779 static const char *builtins_110_fract
= {
781 " (signature float\n"
783 " (declare (in) float x))\n"
784 " ((return (expression float - (var_ref x) (expression float floor (var_ref x))))))\n"
788 " (declare (in) vec2 x))\n"
789 " ((declare () vec2 t)\n"
790 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float - (swiz x (var_ref x)) (expression float floor (swiz x (var_ref x)))))\n"
791 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float - (swiz y (var_ref x)) (expression float floor (swiz y (var_ref x)))))\n"
792 " (return (var_ref t))))\n"
796 " (declare (in) vec3 x))\n"
797 " ((declare () vec3 t)\n"
798 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float - (swiz x (var_ref x)) (expression float floor (swiz x (var_ref x)))))\n"
799 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float - (swiz y (var_ref x)) (expression float floor (swiz y (var_ref x)))))\n"
800 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float - (swiz z (var_ref x)) (expression float floor (swiz z (var_ref x)))))\n"
801 " (return (var_ref t))))\n"
805 " (declare (in) vec4 x))\n"
806 " ((declare () vec4 t)\n"
807 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float - (swiz x (var_ref x)) (expression float floor (swiz x (var_ref x)))))\n"
808 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float - (swiz y (var_ref x)) (expression float floor (swiz y (var_ref x)))))\n"
809 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float - (swiz z (var_ref x)) (expression float floor (swiz z (var_ref x)))))\n"
810 " (assign (constant bool (1)) (swiz w (var_ref t)) (expression float - (swiz w (var_ref x)) (expression float floor (swiz w (var_ref x)))))\n"
811 " (return (var_ref t))))\n"
816 static const char *builtins_110_greaterThan
= {
817 "((function greaterThan\n"
818 " (signature bvec2\n"
820 " (declare (in) vec2 arg0)\n"
821 " (declare (in) vec2 arg1))\n"
822 " ((declare () bvec2 temp)\n"
823 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
824 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
825 " (return (var_ref temp))))\n"
827 " (signature bvec3\n"
829 " (declare (in) vec3 arg0)\n"
830 " (declare (in) vec3 arg1))\n"
831 " ((declare () bvec3 temp)\n"
832 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
833 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
834 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
835 " (return (var_ref temp))))\n"
837 " (signature bvec4\n"
839 " (declare (in) vec4 arg0)\n"
840 " (declare (in) vec4 arg1))\n"
841 " ((declare () bvec4 temp)\n"
842 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
843 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
844 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
845 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool > (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
846 " (return (var_ref temp))))\n"
848 " (signature bvec2\n"
850 " (declare (in) ivec2 arg0)\n"
851 " (declare (in) ivec2 arg1))\n"
852 " ((declare () bvec2 temp)\n"
853 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
854 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
855 " (return (var_ref temp))))\n"
857 " (signature bvec3\n"
859 " (declare (in) ivec3 arg0)\n"
860 " (declare (in) ivec3 arg1))\n"
861 " ((declare () bvec3 temp)\n"
862 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
863 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
864 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
865 " (return (var_ref temp))))\n"
867 " (signature bvec4\n"
869 " (declare (in) ivec4 arg0)\n"
870 " (declare (in) ivec4 arg1))\n"
871 " ((declare () bvec4 temp)\n"
872 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
873 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
874 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
875 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool > (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
876 " (return (var_ref temp))))\n"
880 static const char *builtins_110_greaterThanEqual
= {
881 "((function greaterThanEqual\n"
882 " (signature bvec2\n"
884 " (declare (in) vec2 arg0)\n"
885 " (declare (in) vec2 arg1))\n"
886 " ((declare () bvec2 temp)\n"
887 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
888 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
889 " (return (var_ref temp))))\n"
891 " (signature bvec3\n"
893 " (declare (in) vec3 arg0)\n"
894 " (declare (in) vec3 arg1))\n"
895 " ((declare () bvec3 temp)\n"
896 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
897 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
898 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
899 " (return (var_ref temp))))\n"
901 " (signature bvec4\n"
903 " (declare (in) vec4 arg0)\n"
904 " (declare (in) vec4 arg1))\n"
905 " ((declare () bvec4 temp)\n"
906 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
907 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
908 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
909 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool >= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
910 " (return (var_ref temp))))\n"
912 " (signature bvec2\n"
914 " (declare (in) ivec2 arg0)\n"
915 " (declare (in) ivec2 arg1))\n"
916 " ((declare () bvec2 temp)\n"
917 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
918 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
919 " (return (var_ref temp))))\n"
921 " (signature bvec3\n"
923 " (declare (in) ivec3 arg0)\n"
924 " (declare (in) ivec3 arg1))\n"
925 " ((declare () bvec3 temp)\n"
926 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
927 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
928 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
929 " (return (var_ref temp))))\n"
931 " (signature bvec4\n"
933 " (declare (in) ivec4 arg0)\n"
934 " (declare (in) ivec4 arg1))\n"
935 " ((declare () bvec4 temp)\n"
936 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
937 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
938 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
939 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool >= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
940 " (return (var_ref temp))))\n"
944 static const char *builtins_110_inversesqrt
= {
945 "((function inversesqrt\n"
946 " (signature float\n"
948 " (declare (in) float arg0))\n"
949 " ((return (expression float rsq (var_ref arg0)))))\n"
953 " (declare (in) vec2 arg0))\n"
954 " ((return (expression vec2 rsq (var_ref arg0)))))\n"
958 " (declare (in) vec3 arg0))\n"
959 " ((return (expression vec3 rsq (var_ref arg0)))))\n"
963 " (declare (in) vec4 arg0))\n"
964 " ((return (expression vec4 rsq (var_ref arg0)))))\n"
968 static const char *builtins_110_length
= {
969 "((function length\n"
970 " (signature float\n"
972 " (declare (in) float arg0))\n"
973 " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
975 " (signature float\n"
977 " (declare (in) vec2 arg0))\n"
978 " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
980 " (signature float\n"
982 " (declare (in) vec3 arg0))\n"
983 " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
985 " (signature float\n"
987 " (declare (in) vec4 arg0))\n"
988 " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
992 static const char *builtins_110_lessThan
= {
993 "((function lessThan\n"
994 " (signature bvec2\n"
996 " (declare (in) vec2 arg0)\n"
997 " (declare (in) vec2 arg1))\n"
998 " ((declare () bvec2 temp)\n"
999 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1000 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1001 " (return (var_ref temp))))\n"
1003 " (signature bvec3\n"
1005 " (declare (in) vec3 arg0)\n"
1006 " (declare (in) vec3 arg1))\n"
1007 " ((declare () bvec3 temp)\n"
1008 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1009 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1010 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1011 " (return (var_ref temp))))\n"
1013 " (signature bvec4\n"
1015 " (declare (in) vec4 arg0)\n"
1016 " (declare (in) vec4 arg1))\n"
1017 " ((declare () bvec4 temp)\n"
1018 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1019 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1020 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1021 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool < (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
1022 " (return (var_ref temp))))\n"
1024 " (signature bvec2\n"
1026 " (declare (in) ivec2 arg0)\n"
1027 " (declare (in) ivec2 arg1))\n"
1028 " ((declare () bvec2 temp)\n"
1029 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1030 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1031 " (return (var_ref temp))))\n"
1033 " (signature bvec3\n"
1035 " (declare (in) ivec3 arg0)\n"
1036 " (declare (in) ivec3 arg1))\n"
1037 " ((declare () bvec3 temp)\n"
1038 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1039 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1040 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1041 " (return (var_ref temp))))\n"
1043 " (signature bvec4\n"
1045 " (declare (in) ivec4 arg0)\n"
1046 " (declare (in) ivec4 arg1))\n"
1047 " ((declare () bvec4 temp)\n"
1048 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1049 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1050 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1051 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool < (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
1052 " (return (var_ref temp))))\n"
1056 static const char *builtins_110_lessThanEqual
= {
1057 "((function lessThanEqual\n"
1058 " (signature bvec2\n"
1060 " (declare (in) vec2 arg0)\n"
1061 " (declare (in) vec2 arg1))\n"
1062 " ((declare () bvec2 temp)\n"
1063 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1064 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1065 " (return (var_ref temp))))\n"
1067 " (signature bvec3\n"
1069 " (declare (in) vec3 arg0)\n"
1070 " (declare (in) vec3 arg1))\n"
1071 " ((declare () bvec3 temp)\n"
1072 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1073 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1074 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1075 " (return (var_ref temp))))\n"
1077 " (signature bvec4\n"
1079 " (declare (in) vec4 arg0)\n"
1080 " (declare (in) vec4 arg1))\n"
1081 " ((declare () bvec4 temp)\n"
1082 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1083 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1084 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1085 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool <= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
1086 " (return (var_ref temp))))\n"
1088 " (signature bvec2\n"
1090 " (declare (in) ivec2 arg0)\n"
1091 " (declare (in) ivec2 arg1))\n"
1092 " ((declare () bvec2 temp)\n"
1093 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1094 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1095 " (return (var_ref temp))))\n"
1097 " (signature bvec3\n"
1099 " (declare (in) ivec3 arg0)\n"
1100 " (declare (in) ivec3 arg1))\n"
1101 " ((declare () bvec3 temp)\n"
1102 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1103 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1104 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1105 " (return (var_ref temp))))\n"
1107 " (signature bvec4\n"
1109 " (declare (in) ivec4 arg0)\n"
1110 " (declare (in) ivec4 arg1))\n"
1111 " ((declare () bvec4 temp)\n"
1112 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1113 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1114 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1115 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool <= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
1116 " (return (var_ref temp))))\n"
1120 static const char *builtins_110_log
= {
1122 " (signature float\n"
1124 " (declare (in) float arg0))\n"
1125 " ((return (expression float log (var_ref arg0)))))\n"
1127 " (signature vec2\n"
1129 " (declare (in) vec2 arg0))\n"
1130 " ((return (expression vec2 log (var_ref arg0)))))\n"
1132 " (signature vec3\n"
1134 " (declare (in) vec3 arg0))\n"
1135 " ((return (expression vec3 log (var_ref arg0)))))\n"
1137 " (signature vec4\n"
1139 " (declare (in) vec4 arg0))\n"
1140 " ((return (expression vec4 log (var_ref arg0)))))\n"
1144 static const char *builtins_110_log2
= {
1146 " (signature float\n"
1148 " (declare (in) float arg0))\n"
1149 " ((return (expression float log2 (var_ref arg0)))))\n"
1151 " (signature vec2\n"
1153 " (declare (in) vec2 arg0))\n"
1154 " ((return (expression vec2 log2 (var_ref arg0)))))\n"
1156 " (signature vec3\n"
1158 " (declare (in) vec3 arg0))\n"
1159 " ((return (expression vec3 log2 (var_ref arg0)))))\n"
1161 " (signature vec4\n"
1163 " (declare (in) vec4 arg0))\n"
1164 " ((return (expression vec4 log2 (var_ref arg0)))))\n"
1168 static const char *builtins_110_matrixCompMult
= {
1169 "((function matrixCompMult\n"
1170 " (signature mat2\n"
1172 " (declare (in) mat2 x)\n"
1173 " (declare (in) mat2 y))\n"
1174 " ((declare () mat2 z)\n"
1175 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec2 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
1176 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec2 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
1177 "(return (var_ref z))))\n"
1179 " (signature mat3\n"
1181 " (declare (in) mat3 x)\n"
1182 " (declare (in) mat3 y))\n"
1183 " ((declare () mat3 z)\n"
1184 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec3 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
1185 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec3 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
1186 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (2))) (expression vec3 * (array_ref (var_ref x) (constant int (2))) (array_ref (var_ref y) (constant int (2))))) \n"
1187 "(return (var_ref z))))\n"
1189 " (signature mat4\n"
1191 " (declare (in) mat4 x)\n"
1192 " (declare (in) mat4 y))\n"
1193 " ((declare () mat4 z)\n"
1194 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec4 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
1195 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec4 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
1196 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (2))) (expression vec4 * (array_ref (var_ref x) (constant int (2))) (array_ref (var_ref y) (constant int (2))))) \n"
1197 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (3))) (expression vec4 * (array_ref (var_ref x) (constant int (3))) (array_ref (var_ref y) (constant int (3))))) \n"
1198 "(return (var_ref z))))\n"
1203 static const char *builtins_110_max
= {
1205 " (signature float\n"
1207 " (declare (in) float arg0)\n"
1208 " (declare (in) float arg1))\n"
1209 " ((return (expression float max (var_ref arg0) (var_ref arg1)))))\n"
1211 " (signature vec2\n"
1213 " (declare (in) vec2 arg0)\n"
1214 " (declare (in) vec2 arg1))\n"
1215 " ((return (expression vec2 max (var_ref arg0) (var_ref arg1)))))\n"
1217 " (signature vec3\n"
1219 " (declare (in) vec3 arg0)\n"
1220 " (declare (in) vec3 arg1))\n"
1221 " ((return (expression vec3 max (var_ref arg0) (var_ref arg1)))))\n"
1223 " (signature vec4\n"
1225 " (declare (in) vec4 arg0)\n"
1226 " (declare (in) vec4 arg1))\n"
1227 " ((return (expression vec4 max (var_ref arg0) (var_ref arg1)))))\n"
1229 " (signature vec2\n"
1231 " (declare (in) vec2 arg0)\n"
1232 " (declare (in) float arg1))\n"
1233 " ((declare () vec2 result)\n"
1234 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
1235 " (expression float max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
1236 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
1237 " (expression float max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
1238 " (return (var_ref result))))\n"
1240 " (signature vec3\n"
1242 " (declare (in) vec3 arg0)\n"
1243 " (declare (in) float arg1))\n"
1244 " ((declare () vec3 result)\n"
1245 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
1246 " (expression float max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
1247 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
1248 " (expression float max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
1249 " (assign (constant bool (1)) (swiz z (var_ref result))\n"
1250 " (expression float max (swiz z (var_ref arg0)) (var_ref arg1)))\n"
1251 " (return (var_ref result))))\n"
1253 " (signature vec4\n"
1255 " (declare (in) vec4 arg0)\n"
1256 " (declare (in) float arg1))\n"
1257 " ((declare () vec4 result)\n"
1258 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
1259 " (expression float max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
1260 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
1261 " (expression float max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
1262 " (assign (constant bool (1)) (swiz z (var_ref result))\n"
1263 " (expression float max (swiz z (var_ref arg0)) (var_ref arg1)))\n"
1264 " (assign (constant bool (1)) (swiz w (var_ref result))\n"
1265 " (expression float max (swiz w (var_ref arg0)) (var_ref arg1)))\n"
1266 " (return (var_ref result))))\n"
1270 static const char *builtins_110_min
= {
1272 " (signature float\n"
1274 " (declare (in) float arg0)\n"
1275 " (declare (in) float arg1))\n"
1276 " ((return (expression float min (var_ref arg0) (var_ref arg1)))))\n"
1278 " (signature vec2\n"
1280 " (declare (in) vec2 arg0)\n"
1281 " (declare (in) vec2 arg1))\n"
1282 " ((return (expression vec2 min (var_ref arg0) (var_ref arg1)))))\n"
1284 " (signature vec3\n"
1286 " (declare (in) vec3 arg0)\n"
1287 " (declare (in) vec3 arg1))\n"
1288 " ((return (expression vec3 min (var_ref arg0) (var_ref arg1)))))\n"
1290 " (signature vec4\n"
1292 " (declare (in) vec4 arg0)\n"
1293 " (declare (in) vec4 arg1))\n"
1294 " ((return (expression vec4 min (var_ref arg0) (var_ref arg1)))))\n"
1296 " (signature vec2\n"
1298 " (declare (in) vec2 arg0)\n"
1299 " (declare (in) float arg1))\n"
1300 " ((declare () vec2 result)\n"
1301 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
1302 " (expression float min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
1303 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
1304 " (expression float min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
1305 " (return (var_ref result))))\n"
1307 " (signature vec3\n"
1309 " (declare (in) vec3 arg0)\n"
1310 " (declare (in) float arg1))\n"
1311 " ((declare () vec3 result)\n"
1312 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
1313 " (expression float min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
1314 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
1315 " (expression float min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
1316 " (assign (constant bool (1)) (swiz z (var_ref result))\n"
1317 " (expression float min (swiz z (var_ref arg0)) (var_ref arg1)))\n"
1318 " (return (var_ref result))))\n"
1320 " (signature vec4\n"
1322 " (declare (in) vec4 arg0)\n"
1323 " (declare (in) float arg1))\n"
1324 " ((declare () vec4 result)\n"
1325 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
1326 " (expression float min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
1327 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
1328 " (expression float min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
1329 " (assign (constant bool (1)) (swiz z (var_ref result))\n"
1330 " (expression float min (swiz z (var_ref arg0)) (var_ref arg1)))\n"
1331 " (assign (constant bool (1)) (swiz w (var_ref result))\n"
1332 " (expression float min (swiz w (var_ref arg0)) (var_ref arg1)))\n"
1333 " (return (var_ref result))))\n"
1337 static const char *builtins_110_mix
= {
1339 " (signature float\n"
1341 " (declare (in) float arg0)\n"
1342 " (declare (in) float arg1)\n"
1343 " (declare (in) float arg2))\n"
1344 " ((return (expression float + (expression float * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression float * (var_ref arg1) (var_ref arg2))))))\n"
1346 " (signature vec2\n"
1348 " (declare (in) vec2 arg0)\n"
1349 " (declare (in) vec2 arg1)\n"
1350 " (declare (in) vec2 arg2))\n"
1351 " ((return (expression vec2 + (expression vec2 * (var_ref arg0) (expression vec2 - (constant float (1.000000)) (var_ref arg2))) (expression vec2 * (var_ref arg1) (var_ref arg2))))))\n"
1353 " (signature vec3\n"
1355 " (declare (in) vec3 arg0)\n"
1356 " (declare (in) vec3 arg1)\n"
1357 " (declare (in) vec3 arg2))\n"
1358 " ((return (expression vec3 + (expression vec3 * (var_ref arg0) (expression vec3 - (constant float (1.000000)) (var_ref arg2))) (expression vec3 * (var_ref arg1) (var_ref arg2))))))\n"
1360 " (signature vec4\n"
1362 " (declare (in) vec4 arg0)\n"
1363 " (declare (in) vec4 arg1)\n"
1364 " (declare (in) vec4 arg2))\n"
1365 " ((return (expression vec4 + (expression vec4 * (var_ref arg0) (expression vec4 - (constant float (1.000000)) (var_ref arg2))) (expression vec4 * (var_ref arg1) (var_ref arg2))))))\n"
1367 " (signature vec2\n"
1369 " (declare (in) vec2 arg0)\n"
1370 " (declare (in) vec2 arg1)\n"
1371 " (declare (in) float arg2))\n"
1372 " ((return (expression vec2 + (expression vec2 * (var_ref arg0) (expression vec2 - (constant float (1.000000)) (var_ref arg2))) (expression vec2 * (var_ref arg1) (var_ref arg2))))))\n"
1374 " (signature vec3\n"
1376 " (declare (in) vec3 arg0)\n"
1377 " (declare (in) vec3 arg1)\n"
1378 " (declare (in) float arg2))\n"
1379 " ((return (expression vec3 + (expression vec3 * (var_ref arg0) (expression vec3 - (constant float (1.000000)) (var_ref arg2))) (expression vec3 * (var_ref arg1) (var_ref arg2))))))\n"
1381 " (signature vec4\n"
1383 " (declare (in) vec4 arg0)\n"
1384 " (declare (in) vec4 arg1)\n"
1385 " (declare (in) float arg2))\n"
1386 " ((return (expression vec4 + (expression vec4 * (var_ref arg0) (expression vec4 - (constant float (1.000000)) (var_ref arg2))) (expression vec4 * (var_ref arg1) (var_ref arg2))))))\n"
1390 static const char *builtins_110_mod
= {
1392 " (signature float\n"
1394 " (declare (in) float arg0)\n"
1395 " (declare (in) float arg1))\n"
1396 " ((return (expression float % (var_ref arg0) (var_ref arg1)))))\n"
1398 " (signature vec2\n"
1400 " (declare (in) vec2 arg0)\n"
1401 " (declare (in) vec2 arg1))\n"
1402 " ((return (expression vec2 % (var_ref arg0) (var_ref arg1)))))\n"
1404 " (signature vec3\n"
1406 " (declare (in) vec3 arg0)\n"
1407 " (declare (in) vec3 arg1))\n"
1408 " ((return (expression vec3 % (var_ref arg0) (var_ref arg1)))))\n"
1410 " (signature vec4\n"
1412 " (declare (in) vec4 arg0)\n"
1413 " (declare (in) vec4 arg1))\n"
1414 " ((return (expression vec4 % (var_ref arg0) (var_ref arg1)))))\n"
1416 " (signature vec2\n"
1418 " (declare (in) vec2 arg0)\n"
1419 " (declare (in) float arg1))\n"
1420 " ((declare () vec2 result)\n"
1421 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
1422 " (expression float % (swiz x (var_ref arg0)) (var_ref arg1)))\n"
1423 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
1424 " (expression float % (swiz y (var_ref arg0)) (var_ref arg1)))\n"
1425 " (return (var_ref result))))\n"
1427 " (signature vec3\n"
1429 " (declare (in) vec3 arg0)\n"
1430 " (declare (in) float arg1))\n"
1431 " ((declare () vec3 result)\n"
1432 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
1433 " (expression float % (swiz x (var_ref arg0)) (var_ref arg1)))\n"
1434 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
1435 " (expression float % (swiz y (var_ref arg0)) (var_ref arg1)))\n"
1436 " (assign (constant bool (1)) (swiz z (var_ref result))\n"
1437 " (expression float % (swiz z (var_ref arg0)) (var_ref arg1)))\n"
1438 " (return (var_ref result))))\n"
1440 " (signature vec4\n"
1442 " (declare (in) vec4 arg0)\n"
1443 " (declare (in) float arg1))\n"
1444 " ((declare () vec4 result)\n"
1445 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
1446 " (expression float % (swiz x (var_ref arg0)) (var_ref arg1)))\n"
1447 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
1448 " (expression float % (swiz y (var_ref arg0)) (var_ref arg1)))\n"
1449 " (assign (constant bool (1)) (swiz z (var_ref result))\n"
1450 " (expression float % (swiz z (var_ref arg0)) (var_ref arg1)))\n"
1451 " (assign (constant bool (1)) (swiz w (var_ref result))\n"
1452 " (expression float % (swiz w (var_ref arg0)) (var_ref arg1)))\n"
1453 " (return (var_ref result))))\n"
1457 static const char *builtins_110_noise_fake
= {
1458 "((function noise1\n"
1459 " (signature float\n"
1461 " (declare (in) float x))\n"
1462 " ((return (constant float (0)))))\n"
1463 " (signature float\n"
1465 " (declare (in) vec2 x))\n"
1466 " ((return (constant float (0)))))\n"
1467 " (signature float\n"
1469 " (declare (in) vec3 x))\n"
1470 " ((return (constant float (0)))))\n"
1471 " (signature float\n"
1473 " (declare (in) vec4 x))\n"
1474 " ((return (constant float (0)))))\n"
1477 " (function noise2\n"
1478 " (signature vec2\n"
1480 " (declare (in) float x))\n"
1481 " ((return (constant vec2 (0 0)))))\n"
1482 " (signature vec2\n"
1484 " (declare (in) vec2 x))\n"
1485 " ((return (constant vec2 (0 0)))))\n"
1486 " (signature vec2\n"
1488 " (declare (in) vec3 x))\n"
1489 " ((return (constant vec2 (0 0)))))\n"
1490 " (signature vec2\n"
1492 " (declare (in) vec4 x))\n"
1493 " ((return (constant vec2 (0 0)))))\n"
1496 " (function noise3\n"
1497 " (signature vec3\n"
1499 " (declare (in) float x))\n"
1500 " ((return (constant vec3 (0 0 0)))))\n"
1501 " (signature vec3\n"
1503 " (declare (in) vec2 x))\n"
1504 " ((return (constant vec3 (0 0 0)))))\n"
1505 " (signature vec3\n"
1507 " (declare (in) vec3 x))\n"
1508 " ((return (constant vec3 (0 0 0)))))\n"
1509 " (signature vec3\n"
1511 " (declare (in) vec4 x))\n"
1512 " ((return (constant vec3 (0 0 0)))))\n"
1515 " (function noise4\n"
1516 " (signature vec4\n"
1518 " (declare (in) float x))\n"
1519 " ((return (constant vec4 (0 0 0 0)))))\n"
1520 " (signature vec4\n"
1522 " (declare (in) vec2 x))\n"
1523 " ((return (constant vec4 (0 0 0 0)))))\n"
1524 " (signature vec4\n"
1526 " (declare (in) vec3 x))\n"
1527 " ((return (constant vec4 (0 0 0 0)))))\n"
1528 " (signature vec4\n"
1530 " (declare (in) vec4 x))\n"
1531 " ((return (constant vec4 (0 0 0 0)))))\n"
1536 static const char *builtins_110_normalize
= {
1537 "((function normalize\n"
1538 " (signature float\n"
1540 " (declare (in) float arg0))\n"
1541 " ((return (expression float * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
1543 " (signature vec2\n"
1545 " (declare (in) vec2 arg0))\n"
1546 " ((return (expression vec2 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
1548 " (signature vec3\n"
1550 " (declare (in) vec3 arg0))\n"
1551 " ((return (expression vec3 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
1553 " (signature vec4\n"
1555 " (declare (in) vec4 arg0))\n"
1556 " ((return (expression vec4 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
1560 static const char *builtins_110_not
= {
1562 " (signature bvec2\n"
1564 " (declare (in) bvec2 arg0))\n"
1565 " ((return (expression bvec2 ! (var_ref arg0)))))\n"
1567 " (signature bvec3\n"
1569 " (declare (in) bvec3 arg0))\n"
1570 " ((return (expression bvec3 ! (var_ref arg0)))))\n"
1572 " (signature bvec4\n"
1574 " (declare (in) bvec4 arg0))\n"
1575 " ((return (expression bvec4 ! (var_ref arg0)))))\n"
1579 static const char *builtins_110_notEqual
= {
1580 "((function notEqual\n"
1581 " (signature bvec2\n"
1583 " (declare (in) vec2 arg0)\n"
1584 " (declare (in) vec2 arg1))\n"
1585 " ((declare () bvec2 temp)\n"
1586 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression float != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1587 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression float != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1588 " (return (var_ref temp))))\n"
1590 " (signature bvec3\n"
1592 " (declare (in) vec3 arg0)\n"
1593 " (declare (in) vec3 arg1))\n"
1594 " ((declare () bvec3 temp)\n"
1595 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression float != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1596 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression float != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1597 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression float != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1598 " (return (var_ref temp))))\n"
1600 " (signature bvec4\n"
1602 " (declare (in) vec4 arg0)\n"
1603 " (declare (in) vec4 arg1))\n"
1604 " ((declare () bvec4 temp)\n"
1605 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression float != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1606 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression float != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1607 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression float != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1608 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression float != (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
1609 " (return (var_ref temp))))\n"
1611 " (signature bvec2\n"
1613 " (declare (in) ivec2 arg0)\n"
1614 " (declare (in) ivec2 arg1))\n"
1615 " ((declare () bvec2 temp)\n"
1616 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression int != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1617 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression int != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1618 " (return (var_ref temp))))\n"
1620 " (signature bvec3\n"
1622 " (declare (in) ivec3 arg0)\n"
1623 " (declare (in) ivec3 arg1))\n"
1624 " ((declare () bvec3 temp)\n"
1625 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression int != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1626 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression int != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1627 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression int != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1628 " (return (var_ref temp))))\n"
1630 " (signature bvec4\n"
1632 " (declare (in) ivec4 arg0)\n"
1633 " (declare (in) ivec4 arg1))\n"
1634 " ((declare () bvec4 temp)\n"
1635 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression int != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1636 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression int != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1637 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression int != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1638 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression int != (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
1639 " (return (var_ref temp))))\n"
1643 static const char *builtins_110_pow
= {
1645 " (signature float\n"
1647 " (declare (in) float arg0)\n"
1648 " (declare (in) float arg1))\n"
1649 " ((return (expression float pow (var_ref arg0) (var_ref arg1)))))\n"
1651 " (signature vec2\n"
1653 " (declare (in) vec2 arg0)\n"
1654 " (declare (in) vec2 arg1))\n"
1655 " ((return (expression vec2 pow (var_ref arg0) (var_ref arg1)))))\n"
1657 " (signature vec3\n"
1659 " (declare (in) vec3 arg0)\n"
1660 " (declare (in) vec3 arg1))\n"
1661 " ((return (expression vec3 pow (var_ref arg0) (var_ref arg1)))))\n"
1663 " (signature vec4\n"
1665 " (declare (in) vec4 arg0)\n"
1666 " (declare (in) vec4 arg1))\n"
1667 " ((return (expression vec4 pow (var_ref arg0) (var_ref arg1)))))\n"
1671 static const char *builtins_110_radians
= {
1672 "((function radians\n"
1673 " (signature float\n"
1675 " (declare (in) float arg0))\n"
1676 " ((return (expression float * (var_ref arg0) (constant float (0.017453))))))\n"
1678 " (signature vec2\n"
1680 " (declare (in) vec2 arg0))\n"
1681 " ((return (expression vec2 * (var_ref arg0) (constant float (0.017453))))))\n"
1683 " (signature vec3\n"
1685 " (declare (in) vec3 arg0))\n"
1686 " ((return (expression vec3 * (var_ref arg0) (constant float (0.017453))))))\n"
1688 " (signature vec4\n"
1690 " (declare (in) vec4 arg0))\n"
1691 " ((return (expression vec4 * (var_ref arg0) (constant float (0.017453))))))\n"
1695 static const char *builtins_110_reflect
= {
1696 "((function reflect\n"
1697 " (signature float\n"
1699 " (declare (in) float i)\n"
1700 " (declare (in) float n))\n"
1701 " ((return (expression float -\n"
1703 " (expression float *\n"
1704 " (constant float (2.0))\n"
1705 " (expression float *\n"
1706 " (expression float dot\n"
1709 " (var_ref n)))))))\n"
1711 " (signature vec2\n"
1713 " (declare (in) vec2 i)\n"
1714 " (declare (in) vec2 n))\n"
1715 " ((return (expression vec2 -\n"
1717 " (expression vec2 *\n"
1718 " (constant float (2.0))\n"
1719 " (expression vec2 *\n"
1720 " (expression float dot\n"
1723 " (var_ref n)))))))\n"
1725 " (signature vec3\n"
1727 " (declare (in) vec3 i)\n"
1728 " (declare (in) vec3 n))\n"
1729 " ((return (expression vec3 -\n"
1731 " (expression vec3 *\n"
1732 " (constant float (2.0))\n"
1733 " (expression vec3 *\n"
1734 " (expression float dot\n"
1737 " (var_ref n)))))))\n"
1739 " (signature vec4\n"
1741 " (declare (in) vec4 i)\n"
1742 " (declare (in) vec4 n))\n"
1743 " ((return (expression vec4 -\n"
1745 " (expression vec4 *\n"
1746 " (constant float (2.0))\n"
1747 " (expression vec4 *\n"
1748 " (expression float dot\n"
1751 " (var_ref n)))))))\n"
1756 static const char *builtins_110_refract
= {
1757 "((function refract\n"
1758 " (signature float\n"
1760 " (declare (in) float i)\n"
1761 " (declare (in) float n)\n"
1762 " (declare (in) float eta))\n"
1763 " ((declare () float k)\n"
1764 " (assign (constant bool (1)) (var_ref k)\n"
1765 " (expression float - (constant float (1.0))\n"
1766 " (expression float * (var_ref eta)\n"
1767 " (expression float * (var_ref eta)\n"
1768 " (expression float - (constant float (1.0))\n"
1769 " (expression float * \n"
1770 " (expression float dot (var_ref n) (var_ref i))\n"
1771 " (expression float dot (var_ref n) (var_ref i))))))))\n"
1772 " (if (expression bool < (var_ref k) (constant float (0.0)))\n"
1773 " ((return (constant float (0.0))))\n"
1774 " ((return (expression float -\n"
1775 " (expression float * (var_ref eta) (var_ref i))\n"
1776 " (expression float *\n"
1777 " (expression float +\n"
1778 " (expression float * (var_ref eta)\n"
1779 " (expression float dot (var_ref n) (var_ref i)))\n"
1780 " (expression float sqrt (var_ref k)))\n"
1781 " (var_ref n))))))))\n"
1783 " (signature vec2\n"
1785 " (declare (in) vec2 i)\n"
1786 " (declare (in) vec2 n)\n"
1787 " (declare (in) float eta))\n"
1788 " ((declare () float k)\n"
1789 " (assign (constant bool (1)) (var_ref k)\n"
1790 " (expression float - (constant float (1.0))\n"
1791 " (expression float * (var_ref eta)\n"
1792 " (expression float * (var_ref eta)\n"
1793 " (expression float - (constant float (1.0))\n"
1794 " (expression float * \n"
1795 " (expression float dot (var_ref n) (var_ref i))\n"
1796 " (expression float dot (var_ref n) (var_ref i))))))))\n"
1797 " (if (expression bool < (var_ref k) (constant float (0.0)))\n"
1798 " ((return (constant vec2 (0.0 0.0))))\n"
1799 " ((return (expression vec2 -\n"
1800 " (expression vec2 * (var_ref eta) (var_ref i))\n"
1801 " (expression vec2 *\n"
1802 " (expression float +\n"
1803 " (expression float * (var_ref eta)\n"
1804 " (expression float dot (var_ref n) (var_ref i)))\n"
1805 " (expression float sqrt (var_ref k)))\n"
1806 " (var_ref n))))))))\n"
1808 " (signature vec3\n"
1810 " (declare (in) vec3 i)\n"
1811 " (declare (in) vec3 n)\n"
1812 " (declare (in) float eta))\n"
1813 " ((declare () float k)\n"
1814 " (assign (constant bool (1)) (var_ref k)\n"
1815 " (expression float - (constant float (1.0))\n"
1816 " (expression float * (var_ref eta)\n"
1817 " (expression float * (var_ref eta)\n"
1818 " (expression float - (constant float (1.0))\n"
1819 " (expression float * \n"
1820 " (expression float dot (var_ref n) (var_ref i))\n"
1821 " (expression float dot (var_ref n) (var_ref i))))))))\n"
1822 " (if (expression bool < (var_ref k) (constant float (0.0)))\n"
1823 " ((return (constant vec3 (0.0 0.0))))\n"
1824 " ((return (expression vec3 -\n"
1825 " (expression vec3 * (var_ref eta) (var_ref i))\n"
1826 " (expression vec3 *\n"
1827 " (expression float +\n"
1828 " (expression float * (var_ref eta)\n"
1829 " (expression float dot (var_ref n) (var_ref i)))\n"
1830 " (expression float sqrt (var_ref k)))\n"
1831 " (var_ref n))))))))\n"
1833 " (signature vec4\n"
1835 " (declare (in) vec4 i)\n"
1836 " (declare (in) vec4 n)\n"
1837 " (declare (in) float eta))\n"
1838 " ((declare () float k)\n"
1839 " (assign (constant bool (1)) (var_ref k)\n"
1840 " (expression float - (constant float (1.0))\n"
1841 " (expression float * (var_ref eta)\n"
1842 " (expression float * (var_ref eta)\n"
1843 " (expression float - (constant float (1.0))\n"
1844 " (expression float * \n"
1845 " (expression float dot (var_ref n) (var_ref i))\n"
1846 " (expression float dot (var_ref n) (var_ref i))))))))\n"
1847 " (if (expression bool < (var_ref k) (constant float (0.0)))\n"
1848 " ((return (constant vec4 (0.0 0.0))))\n"
1849 " ((return (expression vec4 -\n"
1850 " (expression vec4 * (var_ref eta) (var_ref i))\n"
1851 " (expression vec4 *\n"
1852 " (expression float +\n"
1853 " (expression float * (var_ref eta)\n"
1854 " (expression float dot (var_ref n) (var_ref i)))\n"
1855 " (expression float sqrt (var_ref k)))\n"
1856 " (var_ref n))))))))\n"
1861 static const char *builtins_110_sign
= {
1863 " (signature float\n"
1865 " (declare (in) float x))\n"
1866 " ((return (expression float sign (var_ref x)))))\n"
1868 " (signature vec2\n"
1870 " (declare (in) vec2 x))\n"
1871 " ((declare () vec2 t)\n"
1872 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float sign (swiz x (var_ref x))))\n"
1873 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float sign (swiz y (var_ref x))))\n"
1874 " (return (var_ref t))))\n"
1876 " (signature vec3\n"
1878 " (declare (in) vec3 x))\n"
1879 " ((declare () vec3 t)\n"
1880 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float sign (swiz x (var_ref x))))\n"
1881 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float sign (swiz y (var_ref x))))\n"
1882 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float sign (swiz z (var_ref x))))\n"
1883 " (return (var_ref t))))\n"
1885 " (signature vec4\n"
1887 " (declare (in) vec4 x))\n"
1888 " ((declare () vec4 t)\n"
1889 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float sign (swiz x (var_ref x))))\n"
1890 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float sign (swiz y (var_ref x))))\n"
1891 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float sign (swiz z (var_ref x))))\n"
1892 " (assign (constant bool (1)) (swiz w (var_ref t)) (expression float sign (swiz w (var_ref x))))\n"
1893 " (return (var_ref t))))\n"
1898 static const char *builtins_110_sin
= {
1900 " (signature float\n"
1902 " (declare (in) float angle))\n"
1903 " ((return (expression float sin (var_ref angle)))))\n"
1905 " (signature vec2\n"
1907 " (declare (in) vec2 angle))\n"
1908 " ((return (expression vec2 sin (var_ref angle)))))\n"
1910 " (signature vec3\n"
1912 " (declare (in) vec3 angle))\n"
1913 " ((return (expression vec3 sin (var_ref angle)))))\n"
1915 " (signature vec4\n"
1917 " (declare (in) vec4 angle))\n"
1918 " ((return (expression vec4 sin (var_ref angle)))))\n"
1922 static const char *builtins_110_smoothstep
= {
1923 "((function smoothstep\n"
1924 " (signature float\n"
1926 " (declare (in) float edge0)\n"
1927 " (declare (in) float edge1)\n"
1928 " (declare (in) float x))\n"
1929 " ((declare () float t)\n"
1931 " (assign (constant bool (1)) (var_ref t)\n"
1932 " (expression float max\n"
1933 " (expression float min\n"
1934 " (expression float / (expression float - (var_ref x) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1935 " (constant float (1.0)))\n"
1936 " (constant float (0.0))))\n"
1937 " (return (expression float * (var_ref t) (expression float * (var_ref t) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (var_ref t))))))))\n"
1939 " (signature vec2\n"
1941 " (declare (in) float edge0)\n"
1942 " (declare (in) float edge1)\n"
1943 " (declare (in) vec2 x))\n"
1944 " ((declare () vec2 t)\n"
1945 " (declare () vec2 retval)\n"
1947 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
1948 " (expression float max\n"
1949 " (expression float min\n"
1950 " (expression float / (expression float - (swiz x (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1951 " (constant float (1.0)))\n"
1952 " (constant float (0.0))))\n"
1953 " (assign (constant bool (1)) (swiz x (var_ref retval)) (expression float * (swiz x (var_ref t)) (expression float * (swiz x (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz x (var_ref t)))))))\n"
1955 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
1956 " (expression float max\n"
1957 " (expression float min\n"
1958 " (expression float / (expression float - (swiz y (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1959 " (constant float (1.0)))\n"
1960 " (constant float (0.0))))\n"
1961 " (assign (constant bool (1)) (swiz y (var_ref retval)) (expression float * (swiz y (var_ref t)) (expression float * (swiz y (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz y (var_ref t)))))))\n"
1962 " (return (var_ref retval))\n"
1965 " (signature vec3\n"
1967 " (declare (in) float edge0)\n"
1968 " (declare (in) float edge1)\n"
1969 " (declare (in) vec3 x))\n"
1970 " ((declare () vec3 t)\n"
1971 " (declare () vec3 retval)\n"
1973 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
1974 " (expression float max\n"
1975 " (expression float min\n"
1976 " (expression float / (expression float - (swiz x (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1977 " (constant float (1.0)))\n"
1978 " (constant float (0.0))))\n"
1979 " (assign (constant bool (1)) (swiz x (var_ref retval)) (expression float * (swiz x (var_ref t)) (expression float * (swiz x (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz x (var_ref t)))))))\n"
1981 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
1982 " (expression float max\n"
1983 " (expression float min\n"
1984 " (expression float / (expression float - (swiz y (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1985 " (constant float (1.0)))\n"
1986 " (constant float (0.0))))\n"
1987 " (assign (constant bool (1)) (swiz y (var_ref retval)) (expression float * (swiz y (var_ref t)) (expression float * (swiz y (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz y (var_ref t)))))))\n"
1989 " (assign (constant bool (1)) (swiz z (var_ref t))\n"
1990 " (expression float max\n"
1991 " (expression float min\n"
1992 " (expression float / (expression float - (swiz z (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1993 " (constant float (1.0)))\n"
1994 " (constant float (0.0))))\n"
1995 " (assign (constant bool (1)) (swiz z (var_ref retval)) (expression float * (swiz z (var_ref t)) (expression float * (swiz z (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz z (var_ref t)))))))\n"
1996 " (return (var_ref retval))\n"
2000 " (signature vec4\n"
2002 " (declare (in) float edge0)\n"
2003 " (declare (in) float edge1)\n"
2004 " (declare (in) vec4 x))\n"
2005 " ((declare () vec4 t)\n"
2006 " (declare () vec4 retval)\n"
2008 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
2009 " (expression float max\n"
2010 " (expression float min\n"
2011 " (expression float / (expression float - (swiz x (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
2012 " (constant float (1.0)))\n"
2013 " (constant float (0.0))))\n"
2014 " (assign (constant bool (1)) (swiz x (var_ref retval)) (expression float * (swiz x (var_ref t)) (expression float * (swiz x (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz x (var_ref t)))))))\n"
2016 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
2017 " (expression float max\n"
2018 " (expression float min\n"
2019 " (expression float / (expression float - (swiz y (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
2020 " (constant float (1.0)))\n"
2021 " (constant float (0.0))))\n"
2022 " (assign (constant bool (1)) (swiz y (var_ref retval)) (expression float * (swiz y (var_ref t)) (expression float * (swiz y (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz y (var_ref t)))))))\n"
2024 " (assign (constant bool (1)) (swiz z (var_ref t))\n"
2025 " (expression float max\n"
2026 " (expression float min\n"
2027 " (expression float / (expression float - (swiz z (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
2028 " (constant float (1.0)))\n"
2029 " (constant float (0.0))))\n"
2030 " (assign (constant bool (1)) (swiz z (var_ref retval)) (expression float * (swiz z (var_ref t)) (expression float * (swiz z (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz z (var_ref t)))))))\n"
2032 " (assign (constant bool (1)) (swiz w (var_ref t))\n"
2033 " (expression float max\n"
2034 " (expression float min\n"
2035 " (expression float / (expression float - (swiz w (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
2036 " (constant float (1.0)))\n"
2037 " (constant float (0.0))))\n"
2038 " (assign (constant bool (1)) (swiz w (var_ref retval)) (expression float * (swiz w (var_ref t)) (expression float * (swiz w (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz w (var_ref t)))))))\n"
2039 " (return (var_ref retval))\n"
2042 " (signature vec2\n"
2044 " (declare (in) vec2 edge0)\n"
2045 " (declare (in) vec2 edge1)\n"
2046 " (declare (in) vec2 x))\n"
2047 " ((declare () vec2 t)\n"
2048 " (declare () vec2 retval)\n"
2050 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
2051 " (expression float max\n"
2052 " (expression float min\n"
2053 " (expression float / (expression float - (swiz x (var_ref x)) (swiz x (var_ref edge0))) (expression float - (swiz x (var_ref edge1)) (swiz x (var_ref edge0))))\n"
2054 " (constant float (1.0)))\n"
2055 " (constant float (0.0))))\n"
2056 " (assign (constant bool (1)) (swiz x (var_ref retval)) (expression float * (swiz x (var_ref t)) (expression float * (swiz x (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz x (var_ref t)))))))\n"
2058 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
2059 " (expression float max\n"
2060 " (expression float min\n"
2061 " (expression float / (expression float - (swiz y (var_ref x)) (swiz y (var_ref edge0))) (expression float - (swiz y (var_ref edge1)) (swiz y (var_ref edge0))))\n"
2062 " (constant float (1.0)))\n"
2063 " (constant float (0.0))))\n"
2064 " (assign (constant bool (1)) (swiz y (var_ref retval)) (expression float * (swiz y (var_ref t)) (expression float * (swiz y (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz y (var_ref t)))))))\n"
2065 " (return (var_ref retval))\n"
2068 " (signature vec3\n"
2070 " (declare (in) vec3 edge0)\n"
2071 " (declare (in) vec3 edge1)\n"
2072 " (declare (in) vec3 x))\n"
2073 " ((declare () vec3 t)\n"
2074 " (declare () vec3 retval)\n"
2076 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
2077 " (expression float max\n"
2078 " (expression float min\n"
2079 " (expression float / (expression float - (swiz x (var_ref x)) (swiz x (var_ref edge0))) (expression float - (swiz x (var_ref edge1)) (swiz x (var_ref edge0))))\n"
2080 " (constant float (1.0)))\n"
2081 " (constant float (0.0))))\n"
2082 " (assign (constant bool (1)) (swiz x (var_ref retval)) (expression float * (swiz x (var_ref t)) (expression float * (swiz x (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz x (var_ref t)))))))\n"
2084 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
2085 " (expression float max\n"
2086 " (expression float min\n"
2087 " (expression float / (expression float - (swiz y (var_ref x)) (swiz y (var_ref edge0))) (expression float - (swiz y (var_ref edge1)) (swiz y (var_ref edge0))))\n"
2088 " (constant float (1.0)))\n"
2089 " (constant float (0.0))))\n"
2090 " (assign (constant bool (1)) (swiz y (var_ref retval)) (expression float * (swiz y (var_ref t)) (expression float * (swiz y (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz y (var_ref t)))))))\n"
2092 " (assign (constant bool (1)) (swiz z (var_ref t))\n"
2093 " (expression float max\n"
2094 " (expression float min\n"
2095 " (expression float / (expression float - (swiz z (var_ref x)) (swiz z (var_ref edge0))) (expression float - (swiz z (var_ref edge1)) (swiz z (var_ref edge0))))\n"
2096 " (constant float (1.0)))\n"
2097 " (constant float (0.0))))\n"
2098 " (assign (constant bool (1)) (swiz z (var_ref retval)) (expression float * (swiz z (var_ref t)) (expression float * (swiz z (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz z (var_ref t)))))))\n"
2099 " (return (var_ref retval))\n"
2103 " (signature vec4\n"
2105 " (declare (in) vec4 edge0)\n"
2106 " (declare (in) vec4 edge1)\n"
2107 " (declare (in) vec4 x))\n"
2108 " ((declare () vec4 t)\n"
2109 " (declare () vec4 retval)\n"
2111 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
2112 " (expression float max\n"
2113 " (expression float min\n"
2114 " (expression float / (expression float - (swiz x (var_ref x)) (swiz x (var_ref edge0))) (expression float - (swiz x (var_ref edge1)) (swiz x (var_ref edge0))))\n"
2115 " (constant float (1.0)))\n"
2116 " (constant float (0.0))))\n"
2117 " (assign (constant bool (1)) (swiz x (var_ref retval)) (expression float * (swiz x (var_ref t)) (expression float * (swiz x (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz x (var_ref t)))))))\n"
2119 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
2120 " (expression float max\n"
2121 " (expression float min\n"
2122 " (expression float / (expression float - (swiz y (var_ref x)) (swiz y (var_ref edge0))) (expression float - (swiz y (var_ref edge1)) (swiz y (var_ref edge0))))\n"
2123 " (constant float (1.0)))\n"
2124 " (constant float (0.0))))\n"
2125 " (assign (constant bool (1)) (swiz y (var_ref retval)) (expression float * (swiz y (var_ref t)) (expression float * (swiz y (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz y (var_ref t)))))))\n"
2127 " (assign (constant bool (1)) (swiz z (var_ref t))\n"
2128 " (expression float max\n"
2129 " (expression float min\n"
2130 " (expression float / (expression float - (swiz z (var_ref x)) (swiz z (var_ref edge0))) (expression float - (swiz z (var_ref edge1)) (swiz z (var_ref edge0))))\n"
2131 " (constant float (1.0)))\n"
2132 " (constant float (0.0))))\n"
2133 " (assign (constant bool (1)) (swiz z (var_ref retval)) (expression float * (swiz z (var_ref t)) (expression float * (swiz z (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz z (var_ref t)))))))\n"
2135 " (assign (constant bool (1)) (swiz w (var_ref t))\n"
2136 " (expression float max\n"
2137 " (expression float min\n"
2138 " (expression float / (expression float - (swiz w (var_ref x)) (swiz w (var_ref edge0))) (expression float - (swiz w (var_ref edge1)) (swiz w (var_ref edge0))))\n"
2139 " (constant float (1.0)))\n"
2140 " (constant float (0.0))))\n"
2141 " (assign (constant bool (1)) (swiz w (var_ref retval)) (expression float * (swiz w (var_ref t)) (expression float * (swiz w (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz w (var_ref t)))))))\n"
2142 " (return (var_ref retval))\n"
2149 static const char *builtins_110_sqrt
= {
2151 " (signature float\n"
2153 " (declare (in) float arg0))\n"
2154 " ((return (expression float sqrt (var_ref arg0)))))\n"
2156 " (signature vec2\n"
2158 " (declare (in) vec2 arg0))\n"
2159 " ((return (expression vec2 sqrt (var_ref arg0)))))\n"
2161 " (signature vec3\n"
2163 " (declare (in) vec3 arg0))\n"
2164 " ((return (expression vec3 sqrt (var_ref arg0)))))\n"
2166 " (signature vec4\n"
2168 " (declare (in) vec4 arg0))\n"
2169 " ((return (expression vec4 sqrt (var_ref arg0)))))\n"
2173 static const char *builtins_110_step
= {
2175 " (signature float\n"
2177 " (declare (in) float edge)\n"
2178 " (declare (in) float x))\n"
2179 " ((return (expression float b2f (expression bool < (var_ref x) (var_ref edge))))))\n"
2181 " (signature vec2\n"
2183 " (declare (in) float edge)\n"
2184 " (declare (in) vec2 x))\n"
2185 " ((declare () vec2 t)\n"
2186 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool < (swiz x (var_ref x))(var_ref edge))))\n"
2187 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(var_ref edge))))\n"
2188 " (return (var_ref t))))\n"
2190 " (signature vec3\n"
2192 " (declare (in) float edge)\n"
2193 " (declare (in) vec3 x))\n"
2194 " ((declare () vec3 t)\n"
2195 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool < (swiz x (var_ref x))(var_ref edge))))\n"
2196 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(var_ref edge))))\n"
2197 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool < (swiz z (var_ref x))(var_ref edge))))\n"
2198 " (return (var_ref t))))\n"
2200 " (signature vec4\n"
2202 " (declare (in) float edge)\n"
2203 " (declare (in) vec4 x))\n"
2204 " ((declare () vec4 t)\n"
2205 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool < (swiz x (var_ref x))(var_ref edge))))\n"
2206 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(var_ref edge))))\n"
2207 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool < (swiz z (var_ref x))(var_ref edge))))\n"
2208 " (assign (constant bool (1)) (swiz w (var_ref t)) (expression float b2f (expression bool < (swiz w (var_ref x))(var_ref edge))))\n"
2209 " (return (var_ref t))))\n"
2211 " (signature vec2\n"
2213 " (declare (in) vec2 edge)\n"
2214 " (declare (in) vec2 x))\n"
2215 " ((declare () vec2 t)\n"
2216 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool < (swiz x (var_ref x))(swiz x (var_ref edge)))))\n"
2217 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(swiz y (var_ref edge)))))\n"
2218 " (return (var_ref t))))\n"
2220 " (signature vec3\n"
2222 " (declare (in) vec3 edge)\n"
2223 " (declare (in) vec3 x))\n"
2224 " ((declare () vec3 t)\n"
2225 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool < (swiz x (var_ref x))(swiz x (var_ref edge)))))\n"
2226 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(swiz y (var_ref edge)))))\n"
2227 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool < (swiz z (var_ref x))(swiz z (var_ref edge)))))\n"
2228 " (return (var_ref t))))\n"
2230 " (signature vec4\n"
2232 " (declare (in) vec4 edge)\n"
2233 " (declare (in) vec4 x))\n"
2234 " ((declare () vec4 t)\n"
2235 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool < (swiz x (var_ref x))(swiz x (var_ref edge)))))\n"
2236 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(swiz y (var_ref edge)))))\n"
2237 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(swiz z (var_ref edge)))))\n"
2238 " (assign (constant bool (1)) (swiz w (var_ref t)) (expression float b2f (expression bool < (swiz w (var_ref x))(swiz w (var_ref edge)))))\n"
2239 " (return (var_ref t))))\n"
2244 static const char *builtins_110_tan
= {
2246 " (signature float\n"
2248 " (declare (in) float angle))\n"
2249 " ((return (expression float / (expression float sin (var_ref angle)) (expression float cos (var_ref angle))))))\n"
2251 " (signature vec2\n"
2253 " (declare (in) vec2 angle))\n"
2254 " ((return (expression float / (expression float sin (var_ref angle)) (expression vec2 cos (var_ref angle))))))\n"
2256 " (signature vec3\n"
2258 " (declare (in) vec3 angle))\n"
2259 " ((return (expression float / (expression float sin (var_ref angle)) (expression vec3 cos (var_ref angle))))))\n"
2261 " (signature vec4\n"
2263 " (declare (in) vec4 angle))\n"
2264 " ((return (expression float / (expression float sin (var_ref angle)) (expression vec4 cos (var_ref angle))))))\n"
2268 static const char *builtins_110_textures
= {
2269 "((function texture1D\n"
2270 " (signature vec4\n"
2272 " (declare (in) sampler1D sampler)\n"
2273 " (declare (in) float P) )\n"
2274 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2277 " (function texture1DLod\n"
2278 " (signature vec4\n"
2280 " (declare (in) sampler1D sampler)\n"
2281 " (declare (in) float P) \n"
2282 " (declare (in) float lod) )\n"
2283 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
2286 " (function texture1DProj\n"
2287 " (signature vec4\n"
2289 " (declare (in) sampler1D sampler)\n"
2290 " (declare (in) vec2 P) )\n"
2291 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
2293 " (signature vec4\n"
2295 " (declare (in) sampler1D sampler)\n"
2296 " (declare (in) vec4 P) )\n"
2297 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
2300 " (function texture1DProjLod\n"
2301 " (signature vec4\n"
2303 " (declare (in) sampler1D sampler)\n"
2304 " (declare (in) vec2 P) \n"
2305 " (declare (in) float lod) )\n"
2306 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
2308 " (signature vec4\n"
2310 " (declare (in) sampler1D sampler)\n"
2311 " (declare (in) vec4 P) \n"
2312 " (declare (in) float lod) )\n"
2313 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
2316 " (function texture2D\n"
2317 " (signature vec4\n"
2319 " (declare (in) sampler2D sampler)\n"
2320 " (declare (in) vec2 P) )\n"
2321 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2324 "(function texture2DLod\n"
2325 " (signature vec4\n"
2327 " (declare (in) sampler2D sampler)\n"
2328 " (declare (in) vec2 P) \n"
2329 " (declare (in) float lod) )\n"
2330 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
2333 " (function texture2DProj\n"
2334 " (signature vec4\n"
2336 " (declare (in) sampler2D sampler)\n"
2337 " (declare (in) vec3 P) )\n"
2338 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
2340 " (signature vec4\n"
2342 " (declare (in) sampler2D sampler)\n"
2343 " (declare (in) vec4 P) )\n"
2344 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
2347 " (function texture2DProjLod\n"
2348 " (signature vec4\n"
2350 " (declare (in) sampler2D sampler)\n"
2351 " (declare (in) vec3 P) \n"
2352 " (declare (in) float lod) )\n"
2353 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
2355 " (signature vec4\n"
2357 " (declare (in) sampler2D sampler)\n"
2358 " (declare (in) vec4 P) \n"
2359 " (declare (in) float lod) )\n"
2360 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
2363 " (function texture3D\n"
2364 " (signature vec4\n"
2366 " (declare (in) sampler3D sampler)\n"
2367 " (declare (in) vec3 P) )\n"
2368 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2371 " (function texture3DLod\n"
2372 " (signature vec4\n"
2374 " (declare (in) sampler3D sampler)\n"
2375 " (declare (in) vec3 P) \n"
2376 " (declare (in) float lod) )\n"
2377 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
2380 " (function texture3DProj\n"
2381 " (signature vec4\n"
2383 " (declare (in) sampler3D sampler)\n"
2384 " (declare (in) vec4 P) )\n"
2385 " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
2388 " (function texture3DProjLod\n"
2389 " (signature vec4\n"
2391 " (declare (in) sampler3D sampler)\n"
2392 " (declare (in) vec4 P) \n"
2393 " (declare (in) float lod) )\n"
2394 " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
2397 " (function textureCube\n"
2398 " (signature vec4\n"
2400 " (declare (in) samplerCube sampler)\n"
2401 " (declare (in) vec3 P) )\n"
2402 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2405 " (function textureCubeLod\n"
2406 " (signature vec4\n"
2408 " (declare (in) samplerCube sampler)\n"
2409 " (declare (in) vec3 P) \n"
2410 " (declare (in) float lod) )\n"
2411 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
2414 " (function shadow1D\n"
2415 " (signature vec4\n"
2417 " (declare (in) sampler1DShadow sampler)\n"
2418 " (declare (in) vec3 P) )\n"
2419 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
2422 " (function shadow1DLod\n"
2423 " (signature vec4\n"
2425 " (declare (in) sampler1DShadow sampler)\n"
2426 " (declare (in) vec3 P) \n"
2427 " (declare (in) float lod) )\n"
2428 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))\n"
2431 " (function shadow1DProj\n"
2432 " (signature vec4\n"
2434 " (declare (in) sampler1DShadow sampler)\n"
2435 " (declare (in) vec4 P) )\n"
2436 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) ))))\n"
2439 " (function shadow1DProjLod\n"
2440 " (signature vec4\n"
2442 " (declare (in) sampler1DShadow sampler)\n"
2443 " (declare (in) vec4 P) \n"
2444 " (declare (in) float lod) )\n"
2445 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) (var_ref lod) ))))\n"
2448 " (function shadow2D\n"
2449 " (signature vec4\n"
2451 " (declare (in) sampler2DShadow sampler)\n"
2452 " (declare (in) vec3 P) )\n"
2453 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
2456 " (function shadow2DLod\n"
2457 " (signature vec4\n"
2459 " (declare (in) sampler2DShadow sampler)\n"
2460 " (declare (in) vec3 P) \n"
2461 " (declare (in) float lod) )\n"
2462 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))\n"
2465 " (function shadow2DProj\n"
2466 " (signature vec4\n"
2468 " (declare (in) sampler2DShadow sampler)\n"
2469 " (declare (in) vec4 P) )\n"
2470 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) ))))\n"
2473 " (function shadow2DProjLod\n"
2474 " (signature vec4\n"
2476 " (declare (in) sampler2DShadow sampler)\n"
2477 " (declare (in) vec4 P) \n"
2478 " (declare (in) float lod) )\n"
2479 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) (var_ref lod) ))))\n"
2484 static const char *functions_for_110
[] = {
2494 builtins_110_degrees
,
2495 builtins_110_distance
,
2500 builtins_110_faceforward
,
2503 builtins_110_greaterThan
,
2504 builtins_110_greaterThanEqual
,
2505 builtins_110_inversesqrt
,
2506 builtins_110_length
,
2507 builtins_110_lessThan
,
2508 builtins_110_lessThanEqual
,
2511 builtins_110_matrixCompMult
,
2516 builtins_110_noise_fake
,
2517 builtins_110_normalize
,
2519 builtins_110_notEqual
,
2521 builtins_110_radians
,
2522 builtins_110_reflect
,
2523 builtins_110_refract
,
2526 builtins_110_smoothstep
,
2530 builtins_110_textures
,
2533 /* 110_fs builtins */
2535 static const char *builtins_110_fs_derivatives
= {
2537 " (signature float\n"
2539 " (declare (in) float p))\n"
2540 " ((return (expression float dFdx (var_ref p)))))\n"
2542 " (signature vec2\n"
2544 " (declare (in) vec2 p))\n"
2545 " ((return (expression vec2 dFdx (var_ref p)))))\n"
2547 " (signature vec3\n"
2549 " (declare (in) vec3 p))\n"
2550 " ((return (expression vec3 dFdx (var_ref p)))))\n"
2552 " (signature vec4\n"
2554 " (declare (in) vec4 p))\n"
2555 " ((return (expression vec4 dFdx (var_ref p)))))\n"
2559 " (signature float\n"
2561 " (declare (in) float p))\n"
2562 " ((return (expression float dFdy (var_ref p)))))\n"
2564 " (signature vec2\n"
2566 " (declare (in) vec2 p))\n"
2567 " ((return (expression vec2 dFdy (var_ref p)))))\n"
2569 " (signature vec3\n"
2571 " (declare (in) vec3 p))\n"
2572 " ((return (expression vec3 dFdy (var_ref p)))))\n"
2574 " (signature vec4\n"
2576 " (declare (in) vec4 p))\n"
2577 " ((return (expression vec4 dFdy (var_ref p)))))\n"
2580 " (function fwidth\n"
2581 " (signature float\n"
2583 " (declare (in) float p))\n"
2584 " ((return (expression float +\n"
2585 " (expression float abs (expression float dFdx (var_ref p)))\n"
2586 " (expression float abs (expression float dFdy (var_ref p)))))))\n"
2588 " (signature vec2\n"
2590 " (declare (in) vec2 p))\n"
2591 " ((return (expression vec2 +\n"
2592 " (expression vec2 abs (expression vec2 dFdx (var_ref p)))\n"
2593 " (expression vec2 abs (expression vec2 dFdy (var_ref p)))))))\n"
2595 " (signature vec3\n"
2597 " (declare (in) vec3 p))\n"
2598 " ((return (expression vec3 +\n"
2599 " (expression vec3 abs (expression vec3 dFdx (var_ref p)))\n"
2600 " (expression vec3 abs (expression vec3 dFdy (var_ref p)))))))\n"
2602 " (signature vec4\n"
2604 " (declare (in) vec4 p))\n"
2605 " ((return (expression vec4 +\n"
2606 " (expression vec4 abs (expression vec4 dFdx (var_ref p)))\n"
2607 " (expression vec4 abs (expression vec4 dFdy (var_ref p)))))))\n"
2611 static const char *builtins_110_fs_textures
= {
2612 "((function texture1D\n"
2613 " (signature vec4\n"
2615 " (declare (in) sampler1D sampler)\n"
2616 " (declare (in) float P) \n"
2617 " (declare (in) float bias) )\n"
2618 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
2621 " (function texture1DProj\n"
2622 " (signature vec4\n"
2624 " (declare (in) sampler1D sampler)\n"
2625 " (declare (in) vec2 P) \n"
2626 " (declare (in) float bias) )\n"
2627 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
2629 " (signature vec4\n"
2631 " (declare (in) sampler1D sampler)\n"
2632 " (declare (in) vec4 P) \n"
2633 " (declare (in) float bias) )\n"
2634 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
2637 " (function texture2D\n"
2638 " (signature vec4\n"
2640 " (declare (in) sampler2D sampler)\n"
2641 " (declare (in) vec2 P) \n"
2642 " (declare (in) float bias) )\n"
2643 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
2646 " (function texture2DProj\n"
2647 " (signature vec4\n"
2649 " (declare (in) sampler2D sampler)\n"
2650 " (declare (in) vec3 P) \n"
2651 " (declare (in) float bias) )\n"
2652 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
2654 " (signature vec4\n"
2656 " (declare (in) sampler2D sampler)\n"
2657 " (declare (in) vec4 P) \n"
2658 " (declare (in) float bias) )\n"
2659 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
2662 " (function texture3D\n"
2663 " (signature vec4\n"
2665 " (declare (in) sampler3D sampler)\n"
2666 " (declare (in) vec3 P) \n"
2667 " (declare (in) float bias) )\n"
2668 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
2671 " (function texture3DProj\n"
2672 " (signature vec4\n"
2674 " (declare (in) sampler3D sampler)\n"
2675 " (declare (in) vec4 P) \n"
2676 " (declare (in) float bias) )\n"
2677 " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
2680 " (function textureCube\n"
2681 " (signature vec4\n"
2683 " (declare (in) samplerCube sampler)\n"
2684 " (declare (in) vec3 P) \n"
2685 " (declare (in) float bias) )\n"
2686 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
2689 " (function shadow1D\n"
2690 " (signature vec4\n"
2692 " (declare (in) sampler1DShadow sampler)\n"
2693 " (declare (in) vec3 P) \n"
2694 " (declare (in) float bias) )\n"
2695 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))\n"
2698 " (function shadow1DProj\n"
2699 " (signature vec4\n"
2701 " (declare (in) sampler1DShadow sampler)\n"
2702 " (declare (in) vec4 P) \n"
2703 " (declare (in) float bias) )\n"
2704 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) (var_ref bias) ))))\n"
2707 " (function shadow2D\n"
2708 " (signature vec4\n"
2710 " (declare (in) sampler2DShadow sampler)\n"
2711 " (declare (in) vec3 P) \n"
2712 " (declare (in) float bias) )\n"
2713 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))\n"
2716 " (function shadow2DProj\n"
2717 " (signature vec4\n"
2719 " (declare (in) sampler2DShadow sampler)\n"
2720 " (declare (in) vec4 P) \n"
2721 " (declare (in) float bias) )\n"
2722 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) (var_ref bias) ))))\n"
2727 static const char *functions_for_110_fs
[] = {
2728 builtins_110_fs_derivatives
,
2729 builtins_110_fs_textures
,
2732 /* 110_vs builtins */
2734 static const char *builtins_110_vs_ftransform
= {
2735 "((function ftransform\n"
2736 " (signature vec4\n"
2738 " ((return (expression vec4 *\n"
2739 " (var_ref gl_ModelViewProjectionMatrix)\n"
2740 " (var_ref gl_Vertex)))))\n"
2744 static const char *functions_for_110_vs
[] = {
2745 builtins_110_vs_ftransform
,
2750 static const char *builtins_120_matrixCompMult
= {
2751 "((function matrixCompMult\n"
2752 " (signature mat2x3\n"
2754 " (declare (in) mat2x3 x)\n"
2755 " (declare (in) mat2x3 y))\n"
2756 " ((declare () mat2x3 z)\n"
2757 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec3 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
2758 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec3 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
2759 "(return (var_ref z))))\n"
2761 " (signature mat3x2\n"
2763 " (declare (in) mat3x2 x)\n"
2764 " (declare (in) mat3x2 y))\n"
2765 " ((declare () mat3x2 z)\n"
2766 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec2 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
2767 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec2 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
2768 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (2))) (expression vec2 * (array_ref (var_ref x) (constant int (2))) (array_ref (var_ref y) (constant int (2))))) \n"
2769 "(return (var_ref z))))\n"
2771 " (signature mat2x4\n"
2773 " (declare (in) mat2x4 x)\n"
2774 " (declare (in) mat2x4 y))\n"
2775 " ((declare () mat2x4 z)\n"
2776 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec4 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
2777 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec4 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
2778 "(return (var_ref z))))\n"
2780 " (signature mat4x2\n"
2782 " (declare (in) mat4x2 x)\n"
2783 " (declare (in) mat4x2 y))\n"
2784 " ((declare () mat4x2 z)\n"
2785 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec2 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
2786 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec2 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
2787 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (2))) (expression vec2 * (array_ref (var_ref x) (constant int (2))) (array_ref (var_ref y) (constant int (2))))) \n"
2788 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (3))) (expression vec2 * (array_ref (var_ref x) (constant int (3))) (array_ref (var_ref y) (constant int (3))))) \n"
2789 "(return (var_ref z))))\n"
2791 " (signature mat3x4\n"
2793 " (declare (in) mat3x4 x)\n"
2794 " (declare (in) mat3x4 y))\n"
2795 " ((declare () mat3x4 z)\n"
2796 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec4 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
2797 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec4 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
2798 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (2))) (expression vec4 * (array_ref (var_ref x) (constant int (2))) (array_ref (var_ref y) (constant int (2))))) \n"
2799 "(return (var_ref z))))\n"
2801 " (signature mat4x3\n"
2803 " (declare (in) mat4x3 x)\n"
2804 " (declare (in) mat4x3 y))\n"
2805 " ((declare () mat4x3 z)\n"
2806 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec3 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
2807 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec3 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
2808 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (2))) (expression vec3 * (array_ref (var_ref x) (constant int (2))) (array_ref (var_ref y) (constant int (2))))) \n"
2809 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (3))) (expression vec3 * (array_ref (var_ref x) (constant int (3))) (array_ref (var_ref y) (constant int (3))))) \n"
2810 "(return (var_ref z))))\n"
2814 static const char *builtins_120_outerProduct
= {
2815 "((function outerProduct\n"
2816 " (signature mat2\n"
2818 " (declare (in) vec2 u)\n"
2819 " (declare (in) vec2 v))\n"
2820 " ((declare () mat2 m)\n"
2821 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref v) (swiz x (var_ref u)))) \n"
2822 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref v) (swiz y (var_ref u)))) \n"
2823 "(return (var_ref m))))\n"
2825 " (signature mat2x3\n"
2827 " (declare (in) vec2 u)\n"
2828 " (declare (in) vec3 v))\n"
2829 " ((declare () mat2x3 m)\n"
2830 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref v) (swiz x (var_ref u)))) \n"
2831 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref v) (swiz y (var_ref u)))) \n"
2832 "(return (var_ref m))))\n"
2834 " (signature mat2x4\n"
2836 " (declare (in) vec2 u)\n"
2837 " (declare (in) vec4 v))\n"
2838 " ((declare () mat2x4 m)\n"
2839 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref v) (swiz x (var_ref u)))) \n"
2840 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref v) (swiz y (var_ref u)))) \n"
2841 "(return (var_ref m))))\n"
2843 " (signature mat3x2\n"
2845 " (declare (in) vec3 u)\n"
2846 " (declare (in) vec2 v))\n"
2847 " ((declare () mat3x2 m)\n"
2848 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref v) (swiz x (var_ref u)))) \n"
2849 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref v) (swiz y (var_ref u)))) \n"
2850 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec2 * (var_ref v) (swiz z (var_ref u)))) \n"
2851 "(return (var_ref m))))\n"
2853 " (signature mat3\n"
2855 " (declare (in) vec3 u)\n"
2856 " (declare (in) vec3 v))\n"
2857 " ((declare () mat3 m)\n"
2858 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref v) (swiz x (var_ref u)))) \n"
2859 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref v) (swiz y (var_ref u)))) \n"
2860 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec3 * (var_ref v) (swiz z (var_ref u)))) \n"
2861 "(return (var_ref m))))\n"
2863 " (signature mat3x4\n"
2865 " (declare (in) vec3 u)\n"
2866 " (declare (in) vec4 v))\n"
2867 " ((declare () mat3x4 m)\n"
2868 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref v) (swiz x (var_ref u)))) \n"
2869 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref v) (swiz y (var_ref u)))) \n"
2870 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec4 * (var_ref v) (swiz z (var_ref u)))) \n"
2871 "(return (var_ref m))))\n"
2873 " (signature mat4x2\n"
2875 " (declare (in) vec4 u)\n"
2876 " (declare (in) vec2 v))\n"
2877 " ((declare () mat4x2 m)\n"
2878 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref v) (swiz x (var_ref u)))) \n"
2879 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref v) (swiz y (var_ref u)))) \n"
2880 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec2 * (var_ref v) (swiz z (var_ref u)))) \n"
2881 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (3))) (expression vec2 * (var_ref v) (swiz w (var_ref u)))) \n"
2882 "(return (var_ref m))))\n"
2884 " (signature mat4x3\n"
2886 " (declare (in) vec4 u)\n"
2887 " (declare (in) vec3 v))\n"
2888 " ((declare () mat4x3 m)\n"
2889 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref v) (swiz x (var_ref u)))) \n"
2890 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref v) (swiz y (var_ref u)))) \n"
2891 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec3 * (var_ref v) (swiz z (var_ref u)))) \n"
2892 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (3))) (expression vec3 * (var_ref v) (swiz w (var_ref u)))) \n"
2893 "(return (var_ref m))))\n"
2895 " (signature mat4\n"
2897 " (declare (in) vec4 u)\n"
2898 " (declare (in) vec4 v))\n"
2899 " ((declare () mat4 m)\n"
2900 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref v) (swiz x (var_ref u)))) \n"
2901 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref v) (swiz y (var_ref u)))) \n"
2902 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec4 * (var_ref v) (swiz z (var_ref u)))) \n"
2903 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (3))) (expression vec4 * (var_ref v) (swiz w (var_ref u)))) \n"
2904 "(return (var_ref m))))\n"
2909 static const char *builtins_120_transpose
= {
2910 "((function transpose\n"
2911 " (signature mat2\n"
2913 " (declare (in) mat2 m))\n"
2914 " ((declare () mat2 t)\n"
2915 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
2916 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
2917 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
2918 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
2919 "(return (var_ref t))))\n"
2921 " (signature mat3x2\n"
2923 " (declare (in) mat2x3 m))\n"
2924 " ((declare () mat3x2 t)\n"
2925 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
2926 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
2927 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
2928 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
2929 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
2930 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
2931 "(return (var_ref t))))\n"
2933 " (signature mat4x2\n"
2935 " (declare (in) mat2x4 m))\n"
2936 " ((declare () mat4x2 t)\n"
2937 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
2938 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
2939 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
2940 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (0))))) \n"
2941 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
2942 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
2943 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
2944 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (1))))) \n"
2945 "(return (var_ref t))))\n"
2947 " (signature mat2x3\n"
2949 " (declare (in) mat3x2 m))\n"
2950 " ((declare () mat2x3 t)\n"
2951 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
2952 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
2953 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
2954 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
2955 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
2956 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
2957 "(return (var_ref t))))\n"
2959 " (signature mat3\n"
2961 " (declare (in) mat3 m))\n"
2962 " ((declare () mat3 t)\n"
2963 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
2964 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
2965 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
2966 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
2967 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
2968 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
2969 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
2970 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
2971 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (2))))) \n"
2972 "(return (var_ref t))))\n"
2974 " (signature mat4x3\n"
2976 " (declare (in) mat3x4 m))\n"
2977 " ((declare () mat4x3 t)\n"
2978 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
2979 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
2980 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
2981 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (0))))) \n"
2982 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
2983 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
2984 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
2985 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (1))))) \n"
2986 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
2987 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
2988 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (2))))) \n"
2989 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (2))))) \n"
2990 "(return (var_ref t))))\n"
2992 " (signature mat2x4\n"
2994 " (declare (in) mat4x2 m))\n"
2995 " ((declare () mat2x4 t)\n"
2996 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
2997 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
2998 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
2999 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
3000 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
3001 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
3002 " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (3))))) \n"
3003 " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (3))))) \n"
3004 "(return (var_ref t))))\n"
3006 " (signature mat3x4\n"
3008 " (declare (in) mat4x3 m))\n"
3009 " ((declare () mat3x4 t)\n"
3010 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
3011 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
3012 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
3013 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
3014 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
3015 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
3016 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
3017 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
3018 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (2))))) \n"
3019 " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (3))))) \n"
3020 " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (3))))) \n"
3021 " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (3))))) \n"
3022 "(return (var_ref t))))\n"
3024 " (signature mat4\n"
3026 " (declare (in) mat4 m))\n"
3027 " ((declare () mat4 t)\n"
3028 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
3029 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
3030 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
3031 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (0))))) \n"
3032 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
3033 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
3034 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
3035 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (1))))) \n"
3036 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
3037 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
3038 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (2))))) \n"
3039 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (2))))) \n"
3040 " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (3))))) \n"
3041 " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (3))))) \n"
3042 " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (3))))) \n"
3043 " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (3))))) \n"
3044 "(return (var_ref t))))\n"
3051 static const char *functions_for_120
[] = {
3052 builtins_120_matrixCompMult
,
3053 builtins_120_outerProduct
,
3054 builtins_120_transpose
,
3059 static const char *builtins_130_clamp
= {
3060 "((function clamp\n"
3063 " (declare (in) int arg0)\n"
3064 " (declare (in) int arg1)\n"
3065 " (declare (in) int arg2))\n"
3066 " ((return (expression int max (expression int min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
3068 " (signature ivec2\n"
3070 " (declare (in) ivec2 arg0)\n"
3071 " (declare (in) ivec2 arg1)\n"
3072 " (declare (in) ivec2 arg2))\n"
3073 " ((return (expression ivec2 max (expression ivec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
3075 " (signature ivec3\n"
3077 " (declare (in) ivec3 arg0)\n"
3078 " (declare (in) ivec3 arg1)\n"
3079 " (declare (in) ivec3 arg2))\n"
3080 " ((return (expression ivec3 max (expression ivec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
3082 " (signature ivec4\n"
3084 " (declare (in) ivec4 arg0)\n"
3085 " (declare (in) ivec4 arg1)\n"
3086 " (declare (in) ivec4 arg2))\n"
3087 " ((return (expression ivec4 max (expression ivec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
3089 " (signature ivec2\n"
3091 " (declare (in) ivec2 arg0)\n"
3092 " (declare (in) int arg1)\n"
3093 " (declare (in) int arg2))\n"
3094 " ((declare () ivec2 result)\n"
3095 " (assign (constant bool (1)) (swiz x (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
3096 " (assign (constant bool (1)) (swiz y (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
3097 " (return (var_ref result))))\n"
3099 " (signature ivec3\n"
3101 " (declare (in) ivec3 arg0)\n"
3102 " (declare (in) int arg1)\n"
3103 " (declare (in) int arg2))\n"
3104 " ((declare () ivec3 result)\n"
3105 " (assign (constant bool (1)) (swiz x (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
3106 " (assign (constant bool (1)) (swiz y (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
3107 " (assign (constant bool (1)) (swiz z (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
3108 " (return (var_ref result))))\n"
3110 " (signature ivec4\n"
3112 " (declare (in) ivec4 arg0)\n"
3113 " (declare (in) int arg1)\n"
3114 " (declare (in) int arg2))\n"
3115 " ((declare () ivec4 result)\n"
3116 " (assign (constant bool (1)) (swiz x (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
3117 " (assign (constant bool (1)) (swiz y (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
3118 " (assign (constant bool (1)) (swiz z (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
3119 " (assign (constant bool (1)) (swiz w (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz w (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
3120 " (return (var_ref result))))\n"
3122 " (signature uint\n"
3124 " (declare (in) uint arg0)\n"
3125 " (declare (in) uint arg1)\n"
3126 " (declare (in) uint arg2))\n"
3127 " ((return (expression uint max (expression uint min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
3129 " (signature uvec2\n"
3131 " (declare (in) uvec2 arg0)\n"
3132 " (declare (in) uvec2 arg1)\n"
3133 " (declare (in) uvec2 arg2))\n"
3134 " ((return (expression uvec2 max (expression uvec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
3136 " (signature uvec3\n"
3138 " (declare (in) uvec3 arg0)\n"
3139 " (declare (in) uvec3 arg1)\n"
3140 " (declare (in) uvec3 arg2))\n"
3141 " ((return (expression uvec3 max (expression uvec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
3143 " (signature uvec4\n"
3145 " (declare (in) uvec4 arg0)\n"
3146 " (declare (in) uvec4 arg1)\n"
3147 " (declare (in) uvec4 arg2))\n"
3148 " ((return (expression uvec4 max (expression uvec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
3150 " (signature uvec2\n"
3152 " (declare (in) uvec2 arg0)\n"
3153 " (declare (in) uint arg1)\n"
3154 " (declare (in) uint arg2))\n"
3155 " ((declare () uvec2 result)\n"
3156 " (assign (constant bool (1)) (swiz x (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
3157 " (assign (constant bool (1)) (swiz y (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
3158 " (return (var_ref result))))\n"
3160 " (signature uvec3\n"
3162 " (declare (in) uvec3 arg0)\n"
3163 " (declare (in) uint arg1)\n"
3164 " (declare (in) uint arg2))\n"
3165 " ((declare () uvec3 result)\n"
3166 " (assign (constant bool (1)) (swiz x (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
3167 " (assign (constant bool (1)) (swiz y (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
3168 " (assign (constant bool (1)) (swiz z (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
3169 " (return (var_ref result))))\n"
3171 " (signature uvec4\n"
3173 " (declare (in) uvec4 arg0)\n"
3174 " (declare (in) uint arg1)\n"
3175 " (declare (in) uint arg2))\n"
3176 " ((declare () uvec4 result)\n"
3177 " (assign (constant bool (1)) (swiz x (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
3178 " (assign (constant bool (1)) (swiz y (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
3179 " (assign (constant bool (1)) (swiz z (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
3180 " (assign (constant bool (1)) (swiz w (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz w (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
3181 " (return (var_ref result))))\n"
3185 static const char *builtins_130_cosh
= {
3187 " (signature float\n"
3189 " (declare (in) float x))\n"
3190 " ((return (expression float * (constant float (0.5))\n"
3191 " (expression float +\n"
3192 " (expression float exp (var_ref x))\n"
3193 " (expression float exp (expression float neg (var_ref x))))))))\n"
3194 " (signature vec2\n"
3196 " (declare (in) vec2 x))\n"
3197 " ((return (expression vec2 * (constant vec2 (0.5))\n"
3198 " (expression vec2 +\n"
3199 " (expression vec2 exp (var_ref x))\n"
3200 " (expression vec2 exp (expression vec2 neg (var_ref x))))))))\n"
3201 " (signature vec3\n"
3203 " (declare (in) vec3 x))\n"
3204 " ((return (expression vec3 * (constant vec3 (0.5))\n"
3205 " (expression vec3 +\n"
3206 " (expression vec3 exp (var_ref x))\n"
3207 " (expression vec3 exp (expression vec3 neg (var_ref x))))))))\n"
3208 " (signature vec4\n"
3210 " (declare (in) vec4 x))\n"
3211 " ((return (expression vec4 * (constant vec4 (0.5))\n"
3212 " (expression vec4 +\n"
3213 " (expression vec4 exp (var_ref x))\n"
3214 " (expression vec4 exp (expression vec4 neg (var_ref x))))))))\n"
3218 static const char *builtins_130_equal
= {
3219 "((function equal\n"
3220 " (signature bvec2\n"
3222 " (declare (in) uvec2 arg0)\n"
3223 " (declare (in) uvec2 arg1))\n"
3224 " ((declare () bvec2 temp)\n"
3225 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3226 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3227 " (return (var_ref temp))))\n"
3229 " (signature bvec3\n"
3231 " (declare (in) uvec3 arg0)\n"
3232 " (declare (in) uvec3 arg1))\n"
3233 " ((declare () bvec3 temp)\n"
3234 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3235 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3236 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
3237 " (return (var_ref temp))))\n"
3239 " (signature bvec4\n"
3241 " (declare (in) uvec4 arg0)\n"
3242 " (declare (in) uvec4 arg1))\n"
3243 " ((declare () bvec4 temp)\n"
3244 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3245 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3246 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
3247 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool == (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
3248 " (return (var_ref temp))))\n"
3252 static const char *builtins_130_greaterThan
= {
3253 "((function greaterThan\n"
3254 " (signature bvec2\n"
3256 " (declare (in) uvec2 arg0)\n"
3257 " (declare (in) uvec2 arg1))\n"
3258 " ((declare () bvec2 temp)\n"
3259 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3260 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3261 " (return (var_ref temp))))\n"
3263 " (signature bvec3\n"
3265 " (declare (in) uvec3 arg0)\n"
3266 " (declare (in) uvec3 arg1))\n"
3267 " ((declare () bvec3 temp)\n"
3268 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3269 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3270 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
3271 " (return (var_ref temp))))\n"
3273 " (signature bvec4\n"
3275 " (declare (in) uvec4 arg0)\n"
3276 " (declare (in) uvec4 arg1))\n"
3277 " ((declare () bvec4 temp)\n"
3278 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3279 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3280 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
3281 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool > (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
3282 " (return (var_ref temp))))\n"
3286 static const char *builtins_130_greaterThanEqual
= {
3287 "((function greaterThanEqual\n"
3288 " (signature bvec2\n"
3290 " (declare (in) uvec2 arg0)\n"
3291 " (declare (in) uvec2 arg1))\n"
3292 " ((declare () bvec2 temp)\n"
3293 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3294 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3295 " (return (var_ref temp))))\n"
3297 " (signature bvec3\n"
3299 " (declare (in) uvec3 arg0)\n"
3300 " (declare (in) uvec3 arg1))\n"
3301 " ((declare () bvec3 temp)\n"
3302 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3303 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3304 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
3305 " (return (var_ref temp))))\n"
3307 " (signature bvec4\n"
3309 " (declare (in) uvec4 arg0)\n"
3310 " (declare (in) uvec4 arg1))\n"
3311 " ((declare () bvec4 temp)\n"
3312 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3313 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3314 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
3315 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool >= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
3316 " (return (var_ref temp))))\n"
3320 static const char *builtins_130_lessThan
= {
3321 "((function lessThan\n"
3322 " (signature bvec2\n"
3324 " (declare (in) uvec2 arg0)\n"
3325 " (declare (in) uvec2 arg1))\n"
3326 " ((declare () bvec2 temp)\n"
3327 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3328 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3329 " (return (var_ref temp))))\n"
3331 " (signature bvec3\n"
3333 " (declare (in) uvec3 arg0)\n"
3334 " (declare (in) uvec3 arg1))\n"
3335 " ((declare () bvec3 temp)\n"
3336 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3337 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3338 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
3339 " (return (var_ref temp))))\n"
3341 " (signature bvec4\n"
3343 " (declare (in) uvec4 arg0)\n"
3344 " (declare (in) uvec4 arg1))\n"
3345 " ((declare () bvec4 temp)\n"
3346 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3347 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3348 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
3349 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool < (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
3350 " (return (var_ref temp))))\n"
3354 static const char *builtins_130_lessThanEqual
= {
3355 "((function lessThanEqual\n"
3356 " (signature bvec2\n"
3358 " (declare (in) uvec2 arg0)\n"
3359 " (declare (in) uvec2 arg1))\n"
3360 " ((declare () bvec2 temp)\n"
3361 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3362 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3363 " (return (var_ref temp))))\n"
3365 " (signature bvec3\n"
3367 " (declare (in) uvec3 arg0)\n"
3368 " (declare (in) uvec3 arg1))\n"
3369 " ((declare () bvec3 temp)\n"
3370 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3371 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3372 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
3373 " (return (var_ref temp))))\n"
3375 " (signature bvec4\n"
3377 " (declare (in) uvec4 arg0)\n"
3378 " (declare (in) uvec4 arg1))\n"
3379 " ((declare () bvec4 temp)\n"
3380 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3381 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3382 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
3383 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool <= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
3384 " (return (var_ref temp))))\n"
3388 static const char *builtins_130_max
= {
3392 " (declare (in) int arg0)\n"
3393 " (declare (in) int arg1))\n"
3394 " ((return (expression int max (var_ref arg0) (var_ref arg1)))))\n"
3396 " (signature ivec2\n"
3398 " (declare (in) ivec2 arg0)\n"
3399 " (declare (in) ivec2 arg1))\n"
3400 " ((return (expression ivec2 max (var_ref arg0) (var_ref arg1)))))\n"
3402 " (signature ivec3\n"
3404 " (declare (in) ivec3 arg0)\n"
3405 " (declare (in) ivec3 arg1))\n"
3406 " ((return (expression ivec3 max (var_ref arg0) (var_ref arg1)))))\n"
3408 " (signature ivec4\n"
3410 " (declare (in) ivec4 arg0)\n"
3411 " (declare (in) ivec4 arg1))\n"
3412 " ((return (expression ivec4 max (var_ref arg0) (var_ref arg1)))))\n"
3414 " (signature ivec2\n"
3416 " (declare (in) ivec2 arg0)\n"
3417 " (declare (in) int arg1))\n"
3418 " ((declare () ivec2 result)\n"
3419 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
3420 " (expression int max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
3421 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
3422 " (expression int max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
3423 " (return (var_ref result))))\n"
3425 " (signature ivec3\n"
3427 " (declare (in) ivec3 arg0)\n"
3428 " (declare (in) int arg1))\n"
3429 " ((declare () ivec3 result)\n"
3430 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
3431 " (expression int max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
3432 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
3433 " (expression int max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
3434 " (assign (constant bool (1)) (swiz z (var_ref result))\n"
3435 " (expression int max (swiz z (var_ref arg0)) (var_ref arg1)))\n"
3436 " (return (var_ref result))))\n"
3438 " (signature ivec4\n"
3440 " (declare (in) ivec4 arg0)\n"
3441 " (declare (in) int arg1))\n"
3442 " ((declare () ivec4 result)\n"
3443 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
3444 " (expression int max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
3445 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
3446 " (expression int max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
3447 " (assign (constant bool (1)) (swiz z (var_ref result))\n"
3448 " (expression int max (swiz z (var_ref arg0)) (var_ref arg1)))\n"
3449 " (assign (constant bool (1)) (swiz w (var_ref result))\n"
3450 " (expression int max (swiz w (var_ref arg0)) (var_ref arg1)))\n"
3451 " (return (var_ref result))))\n"
3453 " (signature uint\n"
3455 " (declare (in) uint arg0)\n"
3456 " (declare (in) uint arg1))\n"
3457 " ((return (expression uint max (var_ref arg0) (var_ref arg1)))))\n"
3459 " (signature uvec2\n"
3461 " (declare (in) uvec2 arg0)\n"
3462 " (declare (in) uvec2 arg1))\n"
3463 " ((return (expression uvec2 max (var_ref arg0) (var_ref arg1)))))\n"
3465 " (signature uvec3\n"
3467 " (declare (in) uvec3 arg0)\n"
3468 " (declare (in) uvec3 arg1))\n"
3469 " ((return (expression uvec3 max (var_ref arg0) (var_ref arg1)))))\n"
3471 " (signature uvec4\n"
3473 " (declare (in) uvec4 arg0)\n"
3474 " (declare (in) uvec4 arg1))\n"
3475 " ((return (expression uvec4 max (var_ref arg0) (var_ref arg1)))))\n"
3477 " (signature uvec2\n"
3479 " (declare (in) uvec2 arg0)\n"
3480 " (declare (in) uint arg1))\n"
3481 " ((declare () uvec2 result)\n"
3482 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
3483 " (expression uint max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
3484 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
3485 " (expression uint max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
3486 " (return (var_ref result))))\n"
3488 " (signature uvec3\n"
3490 " (declare (in) uvec3 arg0)\n"
3491 " (declare (in) uint arg1))\n"
3492 " ((declare () uvec3 result)\n"
3493 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
3494 " (expression uint max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
3495 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
3496 " (expression uint max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
3497 " (assign (constant bool (1)) (swiz z (var_ref result))\n"
3498 " (expression uint max (swiz z (var_ref arg0)) (var_ref arg1)))\n"
3499 " (return (var_ref result))))\n"
3501 " (signature uvec4\n"
3503 " (declare (in) uvec4 arg0)\n"
3504 " (declare (in) uint arg1))\n"
3505 " ((declare () uvec4 result)\n"
3506 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
3507 " (expression uint max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
3508 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
3509 " (expression uint max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
3510 " (assign (constant bool (1)) (swiz z (var_ref result))\n"
3511 " (expression uint max (swiz z (var_ref arg0)) (var_ref arg1)))\n"
3512 " (assign (constant bool (1)) (swiz w (var_ref result))\n"
3513 " (expression uint max (swiz w (var_ref arg0)) (var_ref arg1)))\n"
3514 " (return (var_ref result))))\n"
3518 static const char *builtins_130_min
= {
3522 " (declare (in) int arg0)\n"
3523 " (declare (in) int arg1))\n"
3524 " ((return (expression int min (var_ref arg0) (var_ref arg1)))))\n"
3526 " (signature ivec2\n"
3528 " (declare (in) ivec2 arg0)\n"
3529 " (declare (in) ivec2 arg1))\n"
3530 " ((return (expression ivec2 min (var_ref arg0) (var_ref arg1)))))\n"
3532 " (signature ivec3\n"
3534 " (declare (in) ivec3 arg0)\n"
3535 " (declare (in) ivec3 arg1))\n"
3536 " ((return (expression ivec3 min (var_ref arg0) (var_ref arg1)))))\n"
3538 " (signature ivec4\n"
3540 " (declare (in) ivec4 arg0)\n"
3541 " (declare (in) ivec4 arg1))\n"
3542 " ((return (expression ivec4 min (var_ref arg0) (var_ref arg1)))))\n"
3544 " (signature ivec2\n"
3546 " (declare (in) ivec2 arg0)\n"
3547 " (declare (in) int arg1))\n"
3548 " ((declare () ivec2 result)\n"
3549 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
3550 " (expression int min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
3551 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
3552 " (expression int min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
3553 " (return (var_ref result))))\n"
3555 " (signature ivec3\n"
3557 " (declare (in) ivec3 arg0)\n"
3558 " (declare (in) int arg1))\n"
3559 " ((declare () ivec3 result)\n"
3560 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
3561 " (expression int min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
3562 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
3563 " (expression int min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
3564 " (assign (constant bool (1)) (swiz z (var_ref result))\n"
3565 " (expression int min (swiz z (var_ref arg0)) (var_ref arg1)))\n"
3566 " (return (var_ref result))))\n"
3568 " (signature ivec4\n"
3570 " (declare (in) ivec4 arg0)\n"
3571 " (declare (in) int arg1))\n"
3572 " ((declare () ivec4 result)\n"
3573 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
3574 " (expression int min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
3575 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
3576 " (expression int min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
3577 " (assign (constant bool (1)) (swiz z (var_ref result))\n"
3578 " (expression int min (swiz z (var_ref arg0)) (var_ref arg1)))\n"
3579 " (assign (constant bool (1)) (swiz w (var_ref result))\n"
3580 " (expression int min (swiz w (var_ref arg0)) (var_ref arg1)))\n"
3581 " (return (var_ref result))))\n"
3583 " (signature uint\n"
3585 " (declare (in) uint arg0)\n"
3586 " (declare (in) uint arg1))\n"
3587 " ((return (expression uint min (var_ref arg0) (var_ref arg1)))))\n"
3589 " (signature uvec2\n"
3591 " (declare (in) uvec2 arg0)\n"
3592 " (declare (in) uvec2 arg1))\n"
3593 " ((return (expression uvec2 min (var_ref arg0) (var_ref arg1)))))\n"
3595 " (signature uvec3\n"
3597 " (declare (in) uvec3 arg0)\n"
3598 " (declare (in) uvec3 arg1))\n"
3599 " ((return (expression uvec3 min (var_ref arg0) (var_ref arg1)))))\n"
3601 " (signature uvec4\n"
3603 " (declare (in) uvec4 arg0)\n"
3604 " (declare (in) uvec4 arg1))\n"
3605 " ((return (expression uvec4 min (var_ref arg0) (var_ref arg1)))))\n"
3607 " (signature uvec2\n"
3609 " (declare (in) uvec2 arg0)\n"
3610 " (declare (in) uint arg1))\n"
3611 " ((declare () uvec2 result)\n"
3612 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
3613 " (expression uint min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
3614 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
3615 " (expression uint min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
3616 " (return (var_ref result))))\n"
3618 " (signature uvec3\n"
3620 " (declare (in) uvec3 arg0)\n"
3621 " (declare (in) uint arg1))\n"
3622 " ((declare () uvec3 result)\n"
3623 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
3624 " (expression uint min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
3625 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
3626 " (expression uint min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
3627 " (assign (constant bool (1)) (swiz z (var_ref result))\n"
3628 " (expression uint min (swiz z (var_ref arg0)) (var_ref arg1)))\n"
3629 " (return (var_ref result))))\n"
3631 " (signature uvec4\n"
3633 " (declare (in) uvec4 arg0)\n"
3634 " (declare (in) uint arg1))\n"
3635 " ((declare () uvec4 result)\n"
3636 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
3637 " (expression uint min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
3638 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
3639 " (expression uint min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
3640 " (assign (constant bool (1)) (swiz z (var_ref result))\n"
3641 " (expression uint min (swiz z (var_ref arg0)) (var_ref arg1)))\n"
3642 " (assign (constant bool (1)) (swiz w (var_ref result))\n"
3643 " (expression uint min (swiz w (var_ref arg0)) (var_ref arg1)))\n"
3644 " (return (var_ref result))))\n"
3648 static const char *builtins_130_notEqual
= {
3649 "((function notEqual\n"
3650 " (signature bvec2\n"
3652 " (declare (in) uvec2 arg0)\n"
3653 " (declare (in) uvec2 arg1))\n"
3654 " ((declare () bvec2 temp)\n"
3655 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3656 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3657 " (return (var_ref temp))))\n"
3659 " (signature bvec3\n"
3661 " (declare (in) uvec3 arg0)\n"
3662 " (declare (in) uvec3 arg1))\n"
3663 " ((declare () bvec3 temp)\n"
3664 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3665 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3666 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
3667 " (return (var_ref temp))))\n"
3669 " (signature bvec4\n"
3671 " (declare (in) uvec4 arg0)\n"
3672 " (declare (in) uvec4 arg1))\n"
3673 " ((declare () bvec4 temp)\n"
3674 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3675 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3676 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
3677 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool != (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
3678 " (return (var_ref temp))))\n"
3682 static const char *builtins_130_sign
= {
3686 " (declare (in) int x))\n"
3687 " ((return (expression int / (var_ref x) (expression int abs (var_ref x))))))\n"
3689 " (signature ivec2\n"
3691 " (declare (in) ivec2 x))\n"
3692 " ((declare () ivec2 t)\n"
3693 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression int sign (swiz x (var_ref x))))\n"
3694 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression int sign (swiz y (var_ref x))))\n"
3695 " (return (var_ref t))))\n"
3697 " (signature ivec3\n"
3699 " (declare (in) ivec3 x))\n"
3700 " ((declare () ivec3 t)\n"
3701 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression int sign (swiz x (var_ref x))))\n"
3702 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression int sign (swiz y (var_ref x))))\n"
3703 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression int sign (swiz z (var_ref x))))\n"
3704 " (return (var_ref t))))\n"
3706 " (signature ivec4\n"
3708 " (declare (in) ivec4 x))\n"
3709 " ((declare () ivec4 t)\n"
3710 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression int sign (swiz x (var_ref x))))\n"
3711 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression int sign (swiz y (var_ref x))))\n"
3712 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression int sign (swiz z (var_ref x))))\n"
3713 " (assign (constant bool (1)) (swiz w (var_ref t)) (expression int sign (swiz w (var_ref x))))\n"
3714 " (return (var_ref t))))\n"
3719 static const char *builtins_130_sinh
= {
3721 " (signature float\n"
3723 " (declare (in) float x))\n"
3724 " ((return (expression float * (constant float (0.5))\n"
3725 " (expression float -\n"
3726 " (expression float exp (var_ref x))\n"
3727 " (expression float exp (expression float neg (var_ref x))))))))\n"
3728 " (signature vec2\n"
3730 " (declare (in) vec2 x))\n"
3731 " ((return (expression vec2 * (constant vec2 (0.5))\n"
3732 " (expression vec2 -\n"
3733 " (expression vec2 exp (var_ref x))\n"
3734 " (expression vec2 exp (expression vec2 neg (var_ref x))))))))\n"
3735 " (signature vec3\n"
3737 " (declare (in) vec3 x))\n"
3738 " ((return (expression vec3 * (constant vec3 (0.5))\n"
3739 " (expression vec3 -\n"
3740 " (expression vec3 exp (var_ref x))\n"
3741 " (expression vec3 exp (expression vec3 neg (var_ref x))))))))\n"
3742 " (signature vec4\n"
3744 " (declare (in) vec4 x))\n"
3745 " ((return (expression vec4 * (constant vec4 (0.5))\n"
3746 " (expression vec4 -\n"
3747 " (expression vec4 exp (var_ref x))\n"
3748 " (expression vec4 exp (expression vec4 neg (var_ref x))))))))\n"
3752 static const char *builtins_130_tanh
= {
3754 " (signature float\n"
3756 " (declare (in) float x))\n"
3757 " ((return (expression float /\n"
3758 " (expression float -\n"
3759 " (expression float exp (var_ref x))\n"
3760 " (expression float exp (expression float neg (var_ref x))))\n"
3761 " (expression float +\n"
3762 " (expression float exp (var_ref x))\n"
3763 " (expression float exp (expression float neg (var_ref x))))))))\n"
3764 " (signature vec2\n"
3766 " (declare (in) vec2 x))\n"
3767 " ((return (expression vec2 /\n"
3768 " (expression vec2 -\n"
3769 " (expression vec2 exp (var_ref x))\n"
3770 " (expression vec2 exp (expression vec2 neg (var_ref x))))\n"
3771 " (expression vec2 +\n"
3772 " (expression vec2 exp (var_ref x))\n"
3773 " (expression vec2 exp (expression vec2 neg (var_ref x))))))))\n"
3774 " (signature vec3\n"
3776 " (declare (in) vec3 x))\n"
3777 " ((return (expression vec3 /\n"
3778 " (expression vec3 -\n"
3779 " (expression vec3 exp (var_ref x))\n"
3780 " (expression vec3 exp (expression vec3 neg (var_ref x))))\n"
3781 " (expression vec3 +\n"
3782 " (expression vec3 exp (var_ref x))\n"
3783 " (expression vec3 exp (expression vec3 neg (var_ref x))))))))\n"
3784 " (signature vec4\n"
3786 " (declare (in) vec4 x))\n"
3787 " ((return (expression vec4 /\n"
3788 " (expression vec4 -\n"
3789 " (expression vec4 exp (var_ref x))\n"
3790 " (expression vec4 exp (expression vec4 neg (var_ref x))))\n"
3791 " (expression vec4 +\n"
3792 " (expression vec4 exp (var_ref x))\n"
3793 " (expression vec4 exp (expression vec4 neg (var_ref x))))))))\n"
3797 static const char *builtins_130_texelFetch
= {
3798 "((function texelFetch\n"
3799 " (signature vec4\n"
3801 " (declare (in) sampler1D sampler)\n"
3802 " (declare (in) int P) \n"
3803 " (declare (in) int lod) )\n"
3804 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3806 " (signature ivec4\n"
3808 " (declare (in) isampler1D sampler)\n"
3809 " (declare (in) int P) \n"
3810 " (declare (in) int lod) )\n"
3811 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3813 " (signature uvec4\n"
3815 " (declare (in) usampler1D sampler)\n"
3816 " (declare (in) int P) \n"
3817 " (declare (in) int lod) )\n"
3818 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3820 " (signature vec4\n"
3822 " (declare (in) sampler2D sampler)\n"
3823 " (declare (in) ivec2 P) \n"
3824 " (declare (in) int lod) )\n"
3825 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3827 " (signature ivec4\n"
3829 " (declare (in) isampler2D sampler)\n"
3830 " (declare (in) ivec2 P) \n"
3831 " (declare (in) int lod) )\n"
3832 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3834 " (signature uvec4\n"
3836 " (declare (in) usampler2D sampler)\n"
3837 " (declare (in) ivec2 P) \n"
3838 " (declare (in) int lod) )\n"
3839 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3841 " (signature vec4\n"
3843 " (declare (in) sampler3D sampler)\n"
3844 " (declare (in) ivec3 P) \n"
3845 " (declare (in) int lod) )\n"
3846 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3848 " (signature ivec4\n"
3850 " (declare (in) isampler3D sampler)\n"
3851 " (declare (in) ivec3 P) \n"
3852 " (declare (in) int lod) )\n"
3853 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3855 " (signature uvec4\n"
3857 " (declare (in) usampler3D sampler)\n"
3858 " (declare (in) ivec3 P) \n"
3859 " (declare (in) int lod) )\n"
3860 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3862 " (signature vec4\n"
3864 " (declare (in) sampler1DArray sampler)\n"
3865 " (declare (in) ivec2 P) \n"
3866 " (declare (in) int lod) )\n"
3867 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3869 " (signature ivec4\n"
3871 " (declare (in) isampler1DArray sampler)\n"
3872 " (declare (in) ivec2 P) \n"
3873 " (declare (in) int lod) )\n"
3874 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3876 " (signature uvec4\n"
3878 " (declare (in) usampler1DArray sampler)\n"
3879 " (declare (in) ivec2 P) \n"
3880 " (declare (in) int lod) )\n"
3881 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3883 " (signature vec4\n"
3885 " (declare (in) sampler2DArray sampler)\n"
3886 " (declare (in) ivec3 P) \n"
3887 " (declare (in) int lod) )\n"
3888 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3890 " (signature ivec4\n"
3892 " (declare (in) isampler2DArray sampler)\n"
3893 " (declare (in) ivec3 P) \n"
3894 " (declare (in) int lod) )\n"
3895 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3897 " (signature uvec4\n"
3899 " (declare (in) usampler2DArray sampler)\n"
3900 " (declare (in) ivec3 P) \n"
3901 " (declare (in) int lod) )\n"
3902 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3907 static const char *builtins_130_texture
= {
3908 "((function texture\n"
3909 " (signature vec4\n"
3911 " (declare (in) sampler1D sampler)\n"
3912 " (declare (in) float P) )\n"
3913 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
3915 " (signature ivec4\n"
3917 " (declare (in) isampler1D sampler)\n"
3918 " (declare (in) float P) )\n"
3919 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
3921 " (signature uvec4\n"
3923 " (declare (in) usampler1D sampler)\n"
3924 " (declare (in) float P) )\n"
3925 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
3927 " (signature vec4\n"
3929 " (declare (in) sampler2D sampler)\n"
3930 " (declare (in) vec2 P) )\n"
3931 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
3933 " (signature ivec4\n"
3935 " (declare (in) isampler2D sampler)\n"
3936 " (declare (in) vec2 P) )\n"
3937 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
3939 " (signature uvec4\n"
3941 " (declare (in) usampler2D sampler)\n"
3942 " (declare (in) vec2 P) )\n"
3943 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
3945 " (signature vec4\n"
3947 " (declare (in) sampler3D sampler)\n"
3948 " (declare (in) vec3 P) )\n"
3949 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
3951 " (signature ivec4\n"
3953 " (declare (in) isampler3D sampler)\n"
3954 " (declare (in) vec3 P) )\n"
3955 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
3957 " (signature uvec4\n"
3959 " (declare (in) usampler3D sampler)\n"
3960 " (declare (in) vec3 P) )\n"
3961 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
3963 " (signature vec4\n"
3965 " (declare (in) samplerCube sampler)\n"
3966 " (declare (in) vec3 P) )\n"
3967 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
3969 " (signature ivec4\n"
3971 " (declare (in) isamplerCube sampler)\n"
3972 " (declare (in) vec3 P) )\n"
3973 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
3975 " (signature uvec4\n"
3977 " (declare (in) usamplerCube sampler)\n"
3978 " (declare (in) vec3 P) )\n"
3979 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
3981 " (signature vec4\n"
3983 " (declare (in) sampler1DArray sampler)\n"
3984 " (declare (in) vec2 P) )\n"
3985 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
3987 " (signature ivec4\n"
3989 " (declare (in) isampler1DArray sampler)\n"
3990 " (declare (in) vec2 P) )\n"
3991 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
3993 " (signature uvec4\n"
3995 " (declare (in) usampler1DArray sampler)\n"
3996 " (declare (in) vec2 P) )\n"
3997 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
3999 " (signature vec4\n"
4001 " (declare (in) sampler2DArray sampler)\n"
4002 " (declare (in) vec3 P) )\n"
4003 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
4005 " (signature ivec4\n"
4007 " (declare (in) isampler2DArray sampler)\n"
4008 " (declare (in) vec3 P) )\n"
4009 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
4011 " (signature uvec4\n"
4013 " (declare (in) usampler2DArray sampler)\n"
4014 " (declare (in) vec3 P) )\n"
4015 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
4020 static const char *builtins_130_textureGrad
= {
4021 "((function textureGrad\n"
4022 " (signature vec4\n"
4024 " (declare (in) sampler1D sampler)\n"
4025 " (declare (in) float P) \n"
4026 " (declare (in) float dPdx) \n"
4027 " (declare (in) float dPdy) )\n"
4028 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4030 " (signature ivec4\n"
4032 " (declare (in) isampler1D sampler)\n"
4033 " (declare (in) float P) \n"
4034 " (declare (in) float dPdx) \n"
4035 " (declare (in) float dPdy) )\n"
4036 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4038 " (signature uvec4\n"
4040 " (declare (in) usampler1D sampler)\n"
4041 " (declare (in) float P) \n"
4042 " (declare (in) float dPdx) \n"
4043 " (declare (in) float dPdy) )\n"
4044 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4046 " (signature vec4\n"
4048 " (declare (in) sampler2D sampler)\n"
4049 " (declare (in) vec2 P) \n"
4050 " (declare (in) vec2 dPdx) \n"
4051 " (declare (in) vec2 dPdy) )\n"
4052 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4054 " (signature ivec4\n"
4056 " (declare (in) isampler2D sampler)\n"
4057 " (declare (in) vec2 P) \n"
4058 " (declare (in) vec2 dPdx) \n"
4059 " (declare (in) vec2 dPdy) )\n"
4060 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4062 " (signature uvec4\n"
4064 " (declare (in) usampler2D sampler)\n"
4065 " (declare (in) vec2 P) \n"
4066 " (declare (in) vec2 dPdx) \n"
4067 " (declare (in) vec2 dPdy) )\n"
4068 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4070 " (signature vec4\n"
4072 " (declare (in) sampler3D sampler)\n"
4073 " (declare (in) vec3 P) \n"
4074 " (declare (in) vec3 dPdx) \n"
4075 " (declare (in) vec3 dPdy) )\n"
4076 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4078 " (signature ivec4\n"
4080 " (declare (in) isampler3D sampler)\n"
4081 " (declare (in) vec3 P) \n"
4082 " (declare (in) vec3 dPdx) \n"
4083 " (declare (in) vec3 dPdy) )\n"
4084 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4086 " (signature uvec4\n"
4088 " (declare (in) usampler3D sampler)\n"
4089 " (declare (in) vec3 P) \n"
4090 " (declare (in) vec3 dPdx) \n"
4091 " (declare (in) vec3 dPdy) )\n"
4092 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4094 " (signature vec4\n"
4096 " (declare (in) samplerCube sampler)\n"
4097 " (declare (in) vec3 P) \n"
4098 " (declare (in) vec3 dPdx) \n"
4099 " (declare (in) vec3 dPdy) )\n"
4100 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4102 " (signature ivec4\n"
4104 " (declare (in) isamplerCube sampler)\n"
4105 " (declare (in) vec3 P) \n"
4106 " (declare (in) vec3 dPdx) \n"
4107 " (declare (in) vec3 dPdy) )\n"
4108 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4110 " (signature uvec4\n"
4112 " (declare (in) usamplerCube sampler)\n"
4113 " (declare (in) vec3 P) \n"
4114 " (declare (in) vec3 dPdx) \n"
4115 " (declare (in) vec3 dPdy) )\n"
4116 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4118 " (signature vec4\n"
4120 " (declare (in) sampler1DArray sampler)\n"
4121 " (declare (in) vec2 P) \n"
4122 " (declare (in) vec2 dPdx) \n"
4123 " (declare (in) vec2 dPdy) )\n"
4124 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4126 " (signature ivec4\n"
4128 " (declare (in) isampler1DArray sampler)\n"
4129 " (declare (in) vec2 P) \n"
4130 " (declare (in) vec2 dPdx) \n"
4131 " (declare (in) vec2 dPdy) )\n"
4132 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4134 " (signature uvec4\n"
4136 " (declare (in) usampler1DArray sampler)\n"
4137 " (declare (in) vec2 P) \n"
4138 " (declare (in) vec2 dPdx) \n"
4139 " (declare (in) vec2 dPdy) )\n"
4140 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4142 " (signature vec4\n"
4144 " (declare (in) sampler2DArray sampler)\n"
4145 " (declare (in) vec3 P) \n"
4146 " (declare (in) vec3 dPdx) \n"
4147 " (declare (in) vec3 dPdy) )\n"
4148 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4150 " (signature ivec4\n"
4152 " (declare (in) isampler2DArray sampler)\n"
4153 " (declare (in) vec3 P) \n"
4154 " (declare (in) vec3 dPdx) \n"
4155 " (declare (in) vec3 dPdy) )\n"
4156 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4158 " (signature uvec4\n"
4160 " (declare (in) usampler2DArray sampler)\n"
4161 " (declare (in) vec3 P) \n"
4162 " (declare (in) vec3 dPdx) \n"
4163 " (declare (in) vec3 dPdy) )\n"
4164 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4170 static const char *builtins_130_textureLod
= {
4171 "((function textureLod\n"
4172 " (signature vec4\n"
4174 " (declare (in) sampler1D sampler)\n"
4175 " (declare (in) float P) \n"
4176 " (declare (in) float lod) )\n"
4177 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
4179 " (signature ivec4\n"
4181 " (declare (in) isampler1D sampler)\n"
4182 " (declare (in) float P) \n"
4183 " (declare (in) float lod) )\n"
4184 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
4186 " (signature uvec4\n"
4188 " (declare (in) usampler1D sampler)\n"
4189 " (declare (in) float P) \n"
4190 " (declare (in) float lod) )\n"
4191 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
4193 " (signature vec4\n"
4195 " (declare (in) sampler2D sampler)\n"
4196 " (declare (in) vec2 P) \n"
4197 " (declare (in) float lod) )\n"
4198 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
4200 " (signature ivec4\n"
4202 " (declare (in) isampler2D sampler)\n"
4203 " (declare (in) vec2 P) \n"
4204 " (declare (in) float lod) )\n"
4205 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
4207 " (signature uvec4\n"
4209 " (declare (in) usampler2D sampler)\n"
4210 " (declare (in) vec2 P) \n"
4211 " (declare (in) float lod) )\n"
4212 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
4214 " (signature vec4\n"
4216 " (declare (in) sampler3D sampler)\n"
4217 " (declare (in) vec3 P) \n"
4218 " (declare (in) float lod) )\n"
4219 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
4221 " (signature ivec4\n"
4223 " (declare (in) isampler3D sampler)\n"
4224 " (declare (in) vec3 P) \n"
4225 " (declare (in) float lod) )\n"
4226 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
4228 " (signature uvec4\n"
4230 " (declare (in) usampler3D sampler)\n"
4231 " (declare (in) vec3 P) \n"
4232 " (declare (in) float lod) )\n"
4233 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
4235 " (signature vec4\n"
4237 " (declare (in) samplerCube sampler)\n"
4238 " (declare (in) vec3 P) \n"
4239 " (declare (in) float lod) )\n"
4240 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
4242 " (signature ivec4\n"
4244 " (declare (in) isamplerCube sampler)\n"
4245 " (declare (in) vec3 P) \n"
4246 " (declare (in) float lod) )\n"
4247 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
4249 " (signature uvec4\n"
4251 " (declare (in) usamplerCube sampler)\n"
4252 " (declare (in) vec3 P) \n"
4253 " (declare (in) float lod) )\n"
4254 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
4256 " (signature vec4\n"
4258 " (declare (in) sampler1DArray sampler)\n"
4259 " (declare (in) vec2 P) \n"
4260 " (declare (in) float lod) )\n"
4261 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
4263 " (signature ivec4\n"
4265 " (declare (in) isampler1DArray sampler)\n"
4266 " (declare (in) vec2 P) \n"
4267 " (declare (in) float lod) )\n"
4268 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
4270 " (signature uvec4\n"
4272 " (declare (in) usampler1DArray sampler)\n"
4273 " (declare (in) vec2 P) \n"
4274 " (declare (in) float lod) )\n"
4275 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
4277 " (signature vec4\n"
4279 " (declare (in) sampler2DArray sampler)\n"
4280 " (declare (in) vec3 P) \n"
4281 " (declare (in) float lod) )\n"
4282 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
4284 " (signature ivec4\n"
4286 " (declare (in) isampler2DArray sampler)\n"
4287 " (declare (in) vec3 P) \n"
4288 " (declare (in) float lod) )\n"
4289 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
4291 " (signature uvec4\n"
4293 " (declare (in) usampler2DArray sampler)\n"
4294 " (declare (in) vec3 P) \n"
4295 " (declare (in) float lod) )\n"
4296 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
4301 static const char *builtins_130_textureProj
= {
4302 "((function textureProj\n"
4303 " (signature vec4\n"
4305 " (declare (in) sampler1D sampler)\n"
4306 " (declare (in) vec2 P) )\n"
4307 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
4309 " (signature ivec4\n"
4311 " (declare (in) isampler1D sampler)\n"
4312 " (declare (in) vec2 P) )\n"
4313 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
4315 " (signature uvec4\n"
4317 " (declare (in) usampler1D sampler)\n"
4318 " (declare (in) vec2 P) )\n"
4319 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
4321 " (signature vec4\n"
4323 " (declare (in) sampler1D sampler)\n"
4324 " (declare (in) vec4 P) )\n"
4325 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
4327 " (signature ivec4\n"
4329 " (declare (in) isampler1D sampler)\n"
4330 " (declare (in) vec4 P) )\n"
4331 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
4333 " (signature uvec4\n"
4335 " (declare (in) usampler1D sampler)\n"
4336 " (declare (in) vec4 P) )\n"
4337 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
4339 " (signature vec4\n"
4341 " (declare (in) sampler2D sampler)\n"
4342 " (declare (in) vec3 P) )\n"
4343 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
4345 " (signature ivec4\n"
4347 " (declare (in) isampler2D sampler)\n"
4348 " (declare (in) vec3 P) )\n"
4349 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
4351 " (signature uvec4\n"
4353 " (declare (in) usampler2D sampler)\n"
4354 " (declare (in) vec3 P) )\n"
4355 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
4357 " (signature vec4\n"
4359 " (declare (in) sampler2D sampler)\n"
4360 " (declare (in) vec4 P) )\n"
4361 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
4363 " (signature ivec4\n"
4365 " (declare (in) isampler2D sampler)\n"
4366 " (declare (in) vec4 P) )\n"
4367 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
4369 " (signature uvec4\n"
4371 " (declare (in) usampler2D sampler)\n"
4372 " (declare (in) vec4 P) )\n"
4373 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
4375 " (signature vec4\n"
4377 " (declare (in) sampler3D sampler)\n"
4378 " (declare (in) vec4 P) )\n"
4379 " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
4381 " (signature ivec4\n"
4383 " (declare (in) isampler3D sampler)\n"
4384 " (declare (in) vec4 P) )\n"
4385 " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
4387 " (signature uvec4\n"
4389 " (declare (in) usampler3D sampler)\n"
4390 " (declare (in) vec4 P) )\n"
4391 " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
4396 static const char *builtins_130_textureProjGrad
= {
4397 "((function textureLod\n"
4398 " (signature vec4\n"
4400 " (declare (in) sampler1D sampler)\n"
4401 " (declare (in) vec2 P) \n"
4402 " (declare (in) float dPdx) \n"
4403 " (declare (in) float dPdy) )\n"
4404 " ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4406 " (signature ivec4\n"
4408 " (declare (in) isampler1D sampler)\n"
4409 " (declare (in) vec2 P) \n"
4410 " (declare (in) float dPdx) \n"
4411 " (declare (in) float dPdy) )\n"
4412 " ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4414 " (signature uvec4\n"
4416 " (declare (in) usampler1D sampler)\n"
4417 " (declare (in) vec2 P) \n"
4418 " (declare (in) float dPdx) \n"
4419 " (declare (in) float dPdy) )\n"
4420 " ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4422 " (signature vec4\n"
4424 " (declare (in) sampler1D sampler)\n"
4425 " (declare (in) vec4 P) \n"
4426 " (declare (in) float dPdx) \n"
4427 " (declare (in) float dPdy) )\n"
4428 " ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4430 " (signature ivec4\n"
4432 " (declare (in) isampler1D sampler)\n"
4433 " (declare (in) vec4 P) \n"
4434 " (declare (in) float dPdx) \n"
4435 " (declare (in) float dPdy) )\n"
4436 " ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4438 " (signature uvec4\n"
4440 " (declare (in) usampler1D sampler)\n"
4441 " (declare (in) vec4 P) \n"
4442 " (declare (in) float dPdx) \n"
4443 " (declare (in) float dPdy) )\n"
4444 " ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4446 " (signature vec4\n"
4448 " (declare (in) sampler2D sampler)\n"
4449 " (declare (in) vec3 P) \n"
4450 " (declare (in) vec2 dPdx) \n"
4451 " (declare (in) vec2 dPdy) )\n"
4452 " ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4454 " (signature ivec4\n"
4456 " (declare (in) isampler2D sampler)\n"
4457 " (declare (in) vec3 P) \n"
4458 " (declare (in) vec2 dPdx) \n"
4459 " (declare (in) vec2 dPdy) )\n"
4460 " ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4462 " (signature uvec4\n"
4464 " (declare (in) usampler2D sampler)\n"
4465 " (declare (in) vec3 P) \n"
4466 " (declare (in) vec2 dPdx) \n"
4467 " (declare (in) vec2 dPdy) )\n"
4468 " ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4470 " (signature vec4\n"
4472 " (declare (in) sampler2D sampler)\n"
4473 " (declare (in) vec4 P) \n"
4474 " (declare (in) vec2 dPdx) \n"
4475 " (declare (in) vec2 dPdy) )\n"
4476 " ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4478 " (signature ivec4\n"
4480 " (declare (in) isampler2D sampler)\n"
4481 " (declare (in) vec4 P) \n"
4482 " (declare (in) vec2 dPdx) \n"
4483 " (declare (in) vec2 dPdy) )\n"
4484 " ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4486 " (signature uvec4\n"
4488 " (declare (in) usampler2D sampler)\n"
4489 " (declare (in) vec4 P) \n"
4490 " (declare (in) vec2 dPdx) \n"
4491 " (declare (in) vec2 dPdy) )\n"
4492 " ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4494 " (signature vec4\n"
4496 " (declare (in) sampler3D sampler)\n"
4497 " (declare (in) vec4 P) \n"
4498 " (declare (in) vec3 dPdx) \n"
4499 " (declare (in) vec3 dPdy) )\n"
4500 " ((return (txd (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4502 " (signature ivec4\n"
4504 " (declare (in) isampler3D sampler)\n"
4505 " (declare (in) vec4 P) \n"
4506 " (declare (in) vec3 dPdx) \n"
4507 " (declare (in) vec3 dPdy) )\n"
4508 " ((return (txd (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4510 " (signature uvec4\n"
4512 " (declare (in) usampler3D sampler)\n"
4513 " (declare (in) vec4 P) \n"
4514 " (declare (in) vec3 dPdx) \n"
4515 " (declare (in) vec3 dPdy) )\n"
4516 " ((return (txd (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
4521 static const char *builtins_130_textureProjLod
= {
4522 "((function textureLod\n"
4523 " (signature vec4\n"
4525 " (declare (in) sampler1D sampler)\n"
4526 " (declare (in) vec2 P) \n"
4527 " (declare (in) float lod) )\n"
4528 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
4530 " (signature ivec4\n"
4532 " (declare (in) isampler1D sampler)\n"
4533 " (declare (in) vec2 P) \n"
4534 " (declare (in) float lod) )\n"
4535 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
4537 " (signature uvec4\n"
4539 " (declare (in) usampler1D sampler)\n"
4540 " (declare (in) vec2 P) \n"
4541 " (declare (in) float lod) )\n"
4542 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
4544 " (signature vec4\n"
4546 " (declare (in) sampler1D sampler)\n"
4547 " (declare (in) vec4 P) \n"
4548 " (declare (in) float lod) )\n"
4549 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
4551 " (signature ivec4\n"
4553 " (declare (in) isampler1D sampler)\n"
4554 " (declare (in) vec4 P) \n"
4555 " (declare (in) float lod) )\n"
4556 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
4558 " (signature uvec4\n"
4560 " (declare (in) usampler1D sampler)\n"
4561 " (declare (in) vec4 P) \n"
4562 " (declare (in) float lod) )\n"
4563 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
4565 " (signature vec4\n"
4567 " (declare (in) sampler2D sampler)\n"
4568 " (declare (in) vec3 P) \n"
4569 " (declare (in) float lod) )\n"
4570 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
4572 " (signature ivec4\n"
4574 " (declare (in) isampler2D sampler)\n"
4575 " (declare (in) vec3 P) \n"
4576 " (declare (in) float lod) )\n"
4577 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
4579 " (signature uvec4\n"
4581 " (declare (in) usampler2D sampler)\n"
4582 " (declare (in) vec3 P) \n"
4583 " (declare (in) float lod) )\n"
4584 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
4586 " (signature vec4\n"
4588 " (declare (in) sampler2D sampler)\n"
4589 " (declare (in) vec4 P) \n"
4590 " (declare (in) float lod) )\n"
4591 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
4593 " (signature ivec4\n"
4595 " (declare (in) isampler2D sampler)\n"
4596 " (declare (in) vec4 P) \n"
4597 " (declare (in) float lod) )\n"
4598 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
4600 " (signature uvec4\n"
4602 " (declare (in) usampler2D sampler)\n"
4603 " (declare (in) vec4 P) \n"
4604 " (declare (in) float lod) )\n"
4605 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
4607 " (signature vec4\n"
4609 " (declare (in) sampler3D sampler)\n"
4610 " (declare (in) vec4 P) \n"
4611 " (declare (in) float lod) )\n"
4612 " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
4614 " (signature ivec4\n"
4616 " (declare (in) isampler3D sampler)\n"
4617 " (declare (in) vec4 P) \n"
4618 " (declare (in) float lod) )\n"
4619 " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
4621 " (signature uvec4\n"
4623 " (declare (in) usampler3D sampler)\n"
4624 " (declare (in) vec4 P) \n"
4625 " (declare (in) float lod) )\n"
4626 " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
4631 static const char *functions_for_130
[] = {
4635 builtins_130_greaterThan
,
4636 builtins_130_greaterThanEqual
,
4637 builtins_130_lessThan
,
4638 builtins_130_lessThanEqual
,
4641 builtins_130_notEqual
,
4645 builtins_130_texelFetch
,
4646 builtins_130_texture
,
4647 builtins_130_textureGrad
,
4648 builtins_130_textureLod
,
4649 builtins_130_textureProj
,
4650 builtins_130_textureProjGrad
,
4651 builtins_130_textureProjLod
,
4654 /* 130_fs builtins */
4656 static const char *builtins_130_fs_texture
= {
4657 "((function texture\n"
4658 " (signature vec4\n"
4660 " (declare (in) sampler1D sampler)\n"
4661 " (declare (in) float P) \n"
4662 " (declare (in) float bias) )\n"
4663 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
4665 " (signature ivec4\n"
4667 " (declare (in) isampler1D sampler)\n"
4668 " (declare (in) float P) \n"
4669 " (declare (in) float bias) )\n"
4670 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
4672 " (signature uvec4\n"
4674 " (declare (in) usampler1D sampler)\n"
4675 " (declare (in) float P) \n"
4676 " (declare (in) float bias) )\n"
4677 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
4679 " (signature vec4\n"
4681 " (declare (in) sampler2D sampler)\n"
4682 " (declare (in) vec2 P) \n"
4683 " (declare (in) float bias) )\n"
4684 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
4686 " (signature ivec4\n"
4688 " (declare (in) isampler2D sampler)\n"
4689 " (declare (in) vec2 P) \n"
4690 " (declare (in) float bias) )\n"
4691 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
4693 " (signature uvec4\n"
4695 " (declare (in) usampler2D sampler)\n"
4696 " (declare (in) vec2 P) \n"
4697 " (declare (in) float bias) )\n"
4698 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
4700 " (signature vec4\n"
4702 " (declare (in) sampler3D sampler)\n"
4703 " (declare (in) vec3 P) \n"
4704 " (declare (in) float bias) )\n"
4705 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
4707 " (signature ivec4\n"
4709 " (declare (in) isampler3D sampler)\n"
4710 " (declare (in) vec3 P) \n"
4711 " (declare (in) float bias) )\n"
4712 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
4714 " (signature uvec4\n"
4716 " (declare (in) usampler3D sampler)\n"
4717 " (declare (in) vec3 P) \n"
4718 " (declare (in) float bias) )\n"
4719 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
4721 " (signature vec4\n"
4723 " (declare (in) samplerCube sampler)\n"
4724 " (declare (in) vec3 P) \n"
4725 " (declare (in) float bias) )\n"
4726 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
4728 " (signature ivec4\n"
4730 " (declare (in) isamplerCube sampler)\n"
4731 " (declare (in) vec3 P) \n"
4732 " (declare (in) float bias) )\n"
4733 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
4735 " (signature uvec4\n"
4737 " (declare (in) usamplerCube sampler)\n"
4738 " (declare (in) vec3 P) \n"
4739 " (declare (in) float bias) )\n"
4740 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
4742 " (signature vec4\n"
4744 " (declare (in) sampler1DArray sampler)\n"
4745 " (declare (in) vec2 P) \n"
4746 " (declare (in) float bias) )\n"
4747 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
4749 " (signature ivec4\n"
4751 " (declare (in) isampler1DArray sampler)\n"
4752 " (declare (in) vec2 P) \n"
4753 " (declare (in) float bias) )\n"
4754 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
4756 " (signature uvec4\n"
4758 " (declare (in) usampler1DArray sampler)\n"
4759 " (declare (in) vec2 P) \n"
4760 " (declare (in) float bias) )\n"
4761 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
4763 " (signature vec4\n"
4765 " (declare (in) sampler2DArray sampler)\n"
4766 " (declare (in) vec3 P) \n"
4767 " (declare (in) float bias) )\n"
4768 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
4770 " (signature ivec4\n"
4772 " (declare (in) isampler2DArray sampler)\n"
4773 " (declare (in) vec3 P) \n"
4774 " (declare (in) float bias) )\n"
4775 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
4777 " (signature uvec4\n"
4779 " (declare (in) usampler2DArray sampler)\n"
4780 " (declare (in) vec3 P) \n"
4781 " (declare (in) float bias) )\n"
4782 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
4787 static const char *builtins_130_fs_textureProj
= {
4788 "((function textureProj\n"
4789 " (signature vec4\n"
4791 " (declare (in) sampler1D sampler)\n"
4792 " (declare (in) vec2 P) \n"
4793 " (declare (in) float bias) )\n"
4794 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
4796 " (signature ivec4\n"
4798 " (declare (in) isampler1D sampler)\n"
4799 " (declare (in) vec2 P) \n"
4800 " (declare (in) float bias) )\n"
4801 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
4803 " (signature uvec4\n"
4805 " (declare (in) usampler1D sampler)\n"
4806 " (declare (in) vec2 P) \n"
4807 " (declare (in) float bias) )\n"
4808 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
4810 " (signature vec4\n"
4812 " (declare (in) sampler1D sampler)\n"
4813 " (declare (in) vec4 P) \n"
4814 " (declare (in) float bias) )\n"
4815 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
4817 " (signature ivec4\n"
4819 " (declare (in) isampler1D sampler)\n"
4820 " (declare (in) vec4 P) \n"
4821 " (declare (in) float bias) )\n"
4822 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
4824 " (signature uvec4\n"
4826 " (declare (in) usampler1D sampler)\n"
4827 " (declare (in) vec4 P) \n"
4828 " (declare (in) float bias) )\n"
4829 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
4831 " (signature vec4\n"
4833 " (declare (in) sampler2D sampler)\n"
4834 " (declare (in) vec3 P) \n"
4835 " (declare (in) float bias) )\n"
4836 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
4838 " (signature ivec4\n"
4840 " (declare (in) isampler2D sampler)\n"
4841 " (declare (in) vec3 P) \n"
4842 " (declare (in) float bias) )\n"
4843 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
4845 " (signature uvec4\n"
4847 " (declare (in) usampler2D sampler)\n"
4848 " (declare (in) vec3 P) \n"
4849 " (declare (in) float bias) )\n"
4850 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
4852 " (signature vec4\n"
4854 " (declare (in) sampler2D sampler)\n"
4855 " (declare (in) vec4 P) \n"
4856 " (declare (in) float bias) )\n"
4857 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
4859 " (signature ivec4\n"
4861 " (declare (in) isampler2D sampler)\n"
4862 " (declare (in) vec4 P) \n"
4863 " (declare (in) float bias) )\n"
4864 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
4866 " (signature uvec4\n"
4868 " (declare (in) usampler2D sampler)\n"
4869 " (declare (in) vec4 P) \n"
4870 " (declare (in) float bias) )\n"
4871 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
4873 " (signature vec4\n"
4875 " (declare (in) sampler3D sampler)\n"
4876 " (declare (in) vec4 P) \n"
4877 " (declare (in) float bias) )\n"
4878 " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
4880 " (signature ivec4\n"
4882 " (declare (in) isampler3D sampler)\n"
4883 " (declare (in) vec4 P) \n"
4884 " (declare (in) float bias) )\n"
4885 " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
4887 " (signature uvec4\n"
4889 " (declare (in) usampler3D sampler)\n"
4890 " (declare (in) vec4 P) \n"
4891 " (declare (in) float bias) )\n"
4892 " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
4897 static const char *functions_for_130_fs
[] = {
4898 builtins_130_fs_texture
,
4899 builtins_130_fs_textureProj
,
4902 /* ARB_texture_rectangle builtins */
4904 static const char *builtins_ARB_texture_rectangle_textures
= {
4905 "((function texture2DRect\n"
4906 " (signature vec4\n"
4908 " (declare (in) sampler2DRect sampler)\n"
4909 " (declare (in) vec2 P) )\n"
4910 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
4913 " (function shadow2DRect\n"
4914 " (signature vec4\n"
4916 " (declare (in) sampler2DRectShadow sampler)\n"
4917 " (declare (in) vec3 P) )\n"
4918 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
4923 static const char *functions_for_ARB_texture_rectangle
[] = {
4924 builtins_ARB_texture_rectangle_textures
,
4927 /* EXT_texture_array builtins */
4929 static const char *builtins_EXT_texture_array_textures
= {
4930 "((function texture1DArray\n"
4931 " (signature vec4\n"
4933 " (declare (in) sampler1DArray sampler)\n"
4934 " (declare (in) vec2 P) )\n"
4935 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
4938 " (function texture1DArrayLod\n"
4939 " (signature vec4\n"
4941 " (declare (in) sampler1DArray sampler)\n"
4942 " (declare (in) vec2 P) \n"
4943 " (declare (in) float lod) )\n"
4944 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
4947 " (function texture2DArray\n"
4948 " (signature vec4\n"
4950 " (declare (in) sampler2DArray sampler)\n"
4951 " (declare (in) vec3 P) )\n"
4952 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
4955 " (function texture2DArrayLod\n"
4956 " (signature vec4\n"
4958 " (declare (in) sampler2DArray sampler)\n"
4959 " (declare (in) vec3 P) \n"
4960 " (declare (in) float lod) )\n"
4961 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
4964 " (function shadow1DArray\n"
4965 " (signature vec4\n"
4967 " (declare (in) sampler1DArrayShadow sampler)\n"
4968 " (declare (in) vec3 P) )\n"
4969 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
4972 " (function shadow1DArrayLod\n"
4973 " (signature vec4\n"
4975 " (declare (in) sampler1DArrayShadow sampler)\n"
4976 " (declare (in) vec3 P) \n"
4977 " (declare (in) float lod) )\n"
4978 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))\n"
4981 " (function shadow2DArray\n"
4982 " (signature vec4\n"
4984 " (declare (in) sampler2DArrayShadow sampler)\n"
4985 " (declare (in) vec4 P) )\n"
4986 " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) 1 (swiz w (var_ref P)) ))))\n"
4991 static const char *functions_for_EXT_texture_array
[] = {
4992 builtins_EXT_texture_array_textures
,
4995 /* EXT_texture_array_fs builtins */
4997 static const char *builtins_EXT_texture_array_fs_textures
= {
4998 "((function texture1DArray\n"
4999 " (signature vec4\n"
5001 " (declare (in) sampler1DArray sampler)\n"
5002 " (declare (in) vec2 P) \n"
5003 " (declare (in) float bias) )\n"
5004 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
5007 " (function texture2DArray\n"
5008 " (signature vec4\n"
5010 " (declare (in) sampler2DArray sampler)\n"
5011 " (declare (in) vec3 P) \n"
5012 " (declare (in) float bias) )\n"
5013 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
5016 " (function shadow1DArray\n"
5017 " (signature vec4\n"
5019 " (declare (in) sampler1DArrayShadow sampler)\n"
5020 " (declare (in) vec3 P) \n"
5021 " (declare (in) float bias) )\n"
5022 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))\n"
5027 static const char *functions_for_EXT_texture_array_fs
[] = {
5028 builtins_EXT_texture_array_fs_textures
,
5032 _mesa_glsl_initialize_functions(exec_list
*instructions
,
5033 struct _mesa_glsl_parse_state
*state
)
5035 if (state
->language_version
>= 110)
5036 read_builtins(state
, instructions
,
5038 sizeof(functions_for_110
) / sizeof(const char *));
5040 if (state
->target
== fragment_shader
&& state
->language_version
>= 110)
5041 read_builtins(state
, instructions
,
5042 functions_for_110_fs
,
5043 sizeof(functions_for_110_fs
) / sizeof(const char *));
5045 if (state
->target
== vertex_shader
&& state
->language_version
>= 110)
5046 read_builtins(state
, instructions
,
5047 functions_for_110_vs
,
5048 sizeof(functions_for_110_vs
) / sizeof(const char *));
5050 if (state
->language_version
>= 120)
5051 read_builtins(state
, instructions
,
5053 sizeof(functions_for_120
) / sizeof(const char *));
5055 if (state
->language_version
>= 130)
5056 read_builtins(state
, instructions
,
5058 sizeof(functions_for_130
) / sizeof(const char *));
5060 if (state
->target
== fragment_shader
&& state
->language_version
>= 130)
5061 read_builtins(state
, instructions
,
5062 functions_for_130_fs
,
5063 sizeof(functions_for_130_fs
) / sizeof(const char *));
5065 if (state
->ARB_texture_rectangle_enable
)
5066 read_builtins(state
, instructions
,
5067 functions_for_ARB_texture_rectangle
,
5068 sizeof(functions_for_ARB_texture_rectangle
) / sizeof(const char *));
5070 if (state
->EXT_texture_array_enable
)
5071 read_builtins(state
, instructions
,
5072 functions_for_EXT_texture_array
,
5073 sizeof(functions_for_EXT_texture_array
) / sizeof(const char *));
5075 if (state
->target
== fragment_shader
&& state
->EXT_texture_array_enable
)
5076 read_builtins(state
, instructions
,
5077 functions_for_EXT_texture_array_fs
,
5078 sizeof(functions_for_EXT_texture_array_fs
) / sizeof(const char *));