blob: 2bfc17115fc101847595f09a7635d276732e277f [file] [log] [blame]
Kenneth Graunkeb3262122010-04-28 23:01:33 -07001/* DO NOT MODIFY - automatically generated by generate_builtins.pl */
Eric Anholtc22c4002010-03-26 18:20:30 -07002/*
3 * Copyright © 2010 Intel Corporation
4 *
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:
11 *
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
14 * Software.
15 *
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.
23 */
24
Kenneth Graunkeb3262122010-04-28 23:01:33 -070025#include <stdio.h>
Eric Anholtc22c4002010-03-26 18:20:30 -070026#include "glsl_parser_extras.h"
Kenneth Graunkeb3262122010-04-28 23:01:33 -070027#include "ir_reader.h"
Eric Anholtddd2e832010-03-27 12:59:42 -070028
Eric Anholtc22c4002010-03-26 18:20:30 -070029void
Kenneth Graunkeb3262122010-04-28 23:01:33 -070030read_builtins(_mesa_glsl_parse_state *st, exec_list *instructions,
31 const char **functions, unsigned count)
Eric Anholtc22c4002010-03-26 18:20:30 -070032{
Kenneth Graunkeb3262122010-04-28 23:01:33 -070033 if (st->error)
34 return;
Eric Anholtc22c4002010-03-26 18:20:30 -070035
Kenneth Graunkeb3262122010-04-28 23:01:33 -070036 for (unsigned i = 0; i < count; i++) {
37 _mesa_glsl_read_ir(st, instructions, functions[i]);
Eric Anholtc22c4002010-03-26 18:20:30 -070038
Kenneth Graunkeb3262122010-04-28 23:01:33 -070039 if (st->error) {
40 printf("error reading builtin: %.35s ...\n", functions[i]);
41 return;
42 }
Eric Anholtcc4ef152010-04-08 15:35:34 -070043 }
44}
45
Kenneth Graunke4b0029a2010-06-08 16:29:17 -070046/* 110 builtins */
Eric Anholt53afc362010-03-27 13:55:04 -070047
Kenneth Graunkeb3262122010-04-28 23:01:33 -070048static const char *builtins_110_abs = {
49 "((function abs\n"
50 " (signature float\n"
51 " (parameters\n"
52 " (declare (in) float arg0))\n"
53 " ((return (expression float abs (var_ref arg0)))))\n"
54 "\n"
55 " (signature vec2\n"
56 " (parameters\n"
57 " (declare (in) vec2 arg0))\n"
58 " ((return (expression vec2 abs (var_ref arg0)))))\n"
59 "\n"
60 " (signature vec3\n"
61 " (parameters\n"
62 " (declare (in) vec3 arg0))\n"
63 " ((return (expression vec3 abs (var_ref arg0)))))\n"
64 "\n"
65 " (signature vec4\n"
66 " (parameters\n"
67 " (declare (in) vec4 arg0))\n"
68 " ((return (expression vec4 abs (var_ref arg0)))))\n"
69 "))\n"
70};
Eric Anholt53afc362010-03-27 13:55:04 -070071
Kenneth Graunkeb3262122010-04-28 23:01:33 -070072static const char *builtins_110_all = {
73 "((function all\n"
74 " (signature bool\n"
75 " (parameters\n"
76 " (declare (in) bvec2 arg0))\n"
77 " ((return (expression bool && (swiz x (var_ref arg0))(swiz y (var_ref arg0))))))\n"
78 "\n"
79 " (signature bool\n"
80 " (parameters\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"
83 "\n"
84 " (signature bool\n"
85 " (parameters\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"
88 "))\n"
89};
Eric Anholt53afc362010-03-27 13:55:04 -070090
Kenneth Graunkeb3262122010-04-28 23:01:33 -070091static const char *builtins_110_any = {
92 "((function any\n"
93 " (signature bool\n"
94 " (parameters\n"
95 " (declare (in) bvec2 arg0))\n"
96 " ((return (expression bool || (swiz x (var_ref arg0))(swiz y (var_ref arg0))))))\n"
97 "\n"
98 " (signature bool\n"
99 " (parameters\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"
102 "\n"
103 " (signature bool\n"
104 " (parameters\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"
107 "))\n"
108};
Eric Anholt53afc362010-03-27 13:55:04 -0700109
Eric Anholt5e58e542010-05-19 12:19:54 -0700110static const char *builtins_110_asin = {
111 "((function asin\n"
112 " (signature float\n"
113 " (parameters\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"
133 "\n"
134 " (signature float\n"
135 " (parameters\n"
136 " (declare (in) vec2 x))\n"
137 " ((return (expression vec2 *\n"
138 " (expression vec2 -\n"
139 " (expression vec2 *\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"
155 "\n"
156 " (signature float\n"
157 " (parameters\n"
158 " (declare (in) vec3 x))\n"
159 " ((return (expression vec3 *\n"
160 " (expression vec3 -\n"
161 " (expression vec3 *\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"
177 "\n"
178 " (signature float\n"
179 " (parameters\n"
180 " (declare (in) vec4 x))\n"
181 " ((return (expression vec4 *\n"
182 " (expression vec4 -\n"
183 " (expression vec4 *\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"
199 "))\n"
200};
201
Eric Anholt60fa1a92010-05-19 12:44:23 -0700202static const char *builtins_110_atan = {
203 "((function atan\n"
204 " (signature float\n"
205 " (parameters\n"
206 " (declare (in) float x))\n"
207 " ((return (call asin ((expression float *\n"
208 " (var_ref x)\n"
209 " (expression float rsq\n"
210 " (expression float +\n"
211 " (expression float *\n"
212 " (var_ref x)\n"
213 " (var_ref x))\n"
214 " (constant float (1.0))))))))))\n"
215 "\n"
216 " (signature vec2\n"
217 " (parameters\n"
218 " (declare (in) vec2 y_over_x))\n"
219 " ((return (call asin ((expression vec2 *\n"
220 " (var_ref y_over_x)\n"
221 " (expression vec2 rsq\n"
222 " (expression vec2 +\n"
223 " (expression vec2 *\n"
224 " (var_ref y_over_x)\n"
225 " (var_ref y_over_x))\n"
226 " (constant float (1.0))))))))))\n"
227 "\n"
228 " (signature vec3\n"
229 " (parameters\n"
230 " (declare (in) vec3 y_over_x))\n"
231 " ((return (call asin ((expression vec3 *\n"
232 " (var_ref y_over_x)\n"
233 " (expression vec3 rsq\n"
234 " (expression vec3 +\n"
235 " (expression vec3 *\n"
236 " (var_ref y_over_x)\n"
237 " (var_ref y_over_x))\n"
238 " (constant float (1.0))))))))))\n"
239 "\n"
240 " (signature vec4\n"
241 " (parameters\n"
242 " (declare (in) vec4 y_over_x))\n"
243 " ((return (call asin ((expression vec4 *\n"
244 " (var_ref y_over_x)\n"
245 " (expression vec4 rsq\n"
246 " (expression vec4 +\n"
247 " (expression vec4 *\n"
248 " (var_ref y_over_x)\n"
249 " (var_ref y_over_x))\n"
250 " (constant float (1.0))))))))))\n"
251 "\n"
252 " (signature float\n"
253 " (parameters\n"
254 " (declare (in) float y)\n"
255 " (declare (in) float x))\n"
256 " ((declare () float r)\n"
257 " (if (expression bool >\n"
258 " (expression float abs (var_ref x))\n"
259 " (constant float (.0001)))\n"
260 " ((assign (constant bool (1))\n"
261 " (var_ref r) (call atan ((expression float /\n"
262 " (var_ref y)\n"
263 " (var_ref x)))))\n"
264 " (if (expression bool <\n"
265 " (var_ref x)\n"
266 " (constant float (0.0)))\n"
267 " ((assign (constant bool (1))\n"
268 " (var_ref r)\n"
269 " (expression float +\n"
270 " (var_ref r)\n"
271 " (expression float *\n"
272 " (expression int sign (var_ref y))\n"
273 " (constant float (3.1415926))))))\n"
274 " ()))\n"
275 " ())\n"
276 " (return (var_ref r))))\n"
277 "\n"
278 " (signature vec2\n"
279 " (parameters\n"
280 " (declare (in) vec2 y)\n"
281 " (declare (in) vec2 x))\n"
282 " ((declare () vec2 r)\n"
283 " (if (expression bool >\n"
284 " (expression vec2 abs (var_ref x))\n"
285 " (constant float (.0001)))\n"
286 " ((assign (constant bool (1))\n"
287 " (var_ref r) (call atan ((expression vec2 /\n"
288 " (var_ref y)\n"
289 " (var_ref x)))))\n"
290 " (if (expression bool <\n"
291 " (var_ref x)\n"
292 " (constant float (0.0)))\n"
293 " ((assign (constant bool (1))\n"
294 " (var_ref r)\n"
295 " (expression vec2 +\n"
296 " (var_ref r)\n"
297 " (expression vec2 *\n"
298 " (expression int sign (var_ref y))\n"
299 " (constant float (3.1415926))))))\n"
300 " ()))\n"
301 " ())\n"
302 " (return (var_ref r))))\n"
303 "\n"
304 " (signature vec3\n"
305 " (parameters\n"
306 " (declare (in) vec3 y)\n"
307 " (declare (in) vec3 x))\n"
308 " ((declare () vec3 r)\n"
309 " (if (expression bool >\n"
310 " (expression vec3 abs (var_ref x))\n"
311 " (constant float (.0001)))\n"
312 " ((assign (constant bool (1))\n"
313 " (var_ref r) (call atan ((expression vec3 /\n"
314 " (var_ref y)\n"
315 " (var_ref x)))))\n"
316 " (if (expression bool <\n"
317 " (var_ref x)\n"
318 " (constant float (0.0)))\n"
319 " ((assign (constant bool (1))\n"
320 " (var_ref r)\n"
321 " (expression vec3 +\n"
322 " (var_ref r)\n"
323 " (expression vec3 *\n"
324 " (expression int sign (var_ref y))\n"
325 " (constant float (3.1415926))))))\n"
326 " ()))\n"
327 " ())\n"
328 " (return (var_ref r))))\n"
329 "\n"
330 " (signature vec4\n"
331 " (parameters\n"
332 " (declare (in) vec4 y)\n"
333 " (declare (in) vec4 x))\n"
334 " ((declare () vec4 r)\n"
335 " (if (expression bool >\n"
336 " (expression vec4 abs (var_ref x))\n"
337 " (constant float (.0001)))\n"
338 " ((assign (constant bool (1))\n"
339 " (var_ref r) (call atan ((expression vec4 /\n"
340 " (var_ref y)\n"
341 " (var_ref x)))))\n"
342 " (if (expression bool <\n"
343 " (var_ref x)\n"
344 " (constant float (0.0)))\n"
345 " ((assign (constant bool (1))\n"
346 " (var_ref r)\n"
347 " (expression vec4 +\n"
348 " (var_ref r)\n"
349 " (expression vec4 *\n"
350 " (expression int sign (var_ref y))\n"
351 " (constant float (3.1415926))))))\n"
352 " ()))\n"
353 " ())\n"
354 " (return (var_ref r))))\n"
355 "\n"
356 "))\n"
357};
358
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700359static const char *builtins_110_ceil = {
360 "((function ceil\n"
361 " (signature float\n"
362 " (parameters\n"
363 " (declare (in) float arg0))\n"
364 " ((return (expression float ceil (var_ref arg0)))))\n"
365 "\n"
366 " (signature vec2\n"
367 " (parameters\n"
368 " (declare (in) vec2 arg0))\n"
369 " ((return (expression vec2 ceil (var_ref arg0)))))\n"
370 "\n"
371 " (signature vec3\n"
372 " (parameters\n"
373 " (declare (in) vec3 arg0))\n"
374 " ((return (expression vec3 ceil (var_ref arg0)))))\n"
375 "\n"
376 " (signature vec4\n"
377 " (parameters\n"
378 " (declare (in) vec4 arg0))\n"
379 " ((return (expression vec4 ceil (var_ref arg0)))))\n"
380 "))\n"
381};
Eric Anholt53afc362010-03-27 13:55:04 -0700382
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700383static const char *builtins_110_clamp = {
384 "((function clamp\n"
385 " (signature float\n"
386 " (parameters\n"
387 " (declare (in) float arg0)\n"
388 " (declare (in) float arg1)\n"
389 " (declare (in) float arg2))\n"
390 " ((return (expression float max (expression float min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
391 "\n"
392 " (signature vec2\n"
393 " (parameters\n"
394 " (declare (in) vec2 arg0)\n"
395 " (declare (in) vec2 arg1)\n"
396 " (declare (in) vec2 arg2))\n"
397 " ((return (expression vec2 max (expression vec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
398 "\n"
399 " (signature vec3\n"
400 " (parameters\n"
401 " (declare (in) vec3 arg0)\n"
402 " (declare (in) vec3 arg1)\n"
403 " (declare (in) vec3 arg2))\n"
404 " ((return (expression vec3 max (expression vec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
405 "\n"
406 " (signature vec4\n"
407 " (parameters\n"
408 " (declare (in) vec4 arg0)\n"
409 " (declare (in) vec4 arg1)\n"
410 " (declare (in) vec4 arg2))\n"
411 " ((return (expression vec4 max (expression vec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
Kenneth Graunkecdf17262010-06-09 13:10:00 -0700412 "\n"
413 " (signature vec2\n"
414 " (parameters\n"
415 " (declare (in) vec2 arg0)\n"
416 " (declare (in) float arg1)\n"
417 " (declare (in) float arg2))\n"
418 " ((declare () vec2 result)\n"
419 " (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"
420 " (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"
421 " (return (var_ref result))))\n"
422 "\n"
423 " (signature vec3\n"
424 " (parameters\n"
425 " (declare (in) vec3 arg0)\n"
426 " (declare (in) float arg1)\n"
427 " (declare (in) float arg2))\n"
428 " ((declare () vec3 result)\n"
429 " (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"
430 " (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"
431 " (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"
432 " (return (var_ref result))))\n"
433 "\n"
434 " (signature vec4\n"
435 " (parameters\n"
436 " (declare (in) vec4 arg0)\n"
437 " (declare (in) float arg1)\n"
438 " (declare (in) float arg2))\n"
439 " ((declare () vec4 result)\n"
440 " (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"
441 " (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"
442 " (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"
443 " (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"
444 " (return (var_ref result))))\n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700445 "))\n"
446};
Eric Anholt53afc362010-03-27 13:55:04 -0700447
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700448static const char *builtins_110_cos = {
449 "((function cos\n"
450 " (signature float\n"
451 " (parameters\n"
452 " (declare (in) float angle))\n"
453 " ((return (expression float cos (var_ref angle)))))\n"
454 "\n"
455 " (signature vec2\n"
456 " (parameters\n"
457 " (declare (in) vec2 angle))\n"
458 " ((return (expression vec2 cos (var_ref angle)))))\n"
459 "\n"
460 " (signature vec3\n"
461 " (parameters\n"
462 " (declare (in) vec3 angle))\n"
463 " ((return (expression vec3 cos (var_ref angle)))))\n"
464 "\n"
465 " (signature vec4\n"
466 " (parameters\n"
467 " (declare (in) vec4 angle))\n"
468 " ((return (expression vec4 cos (var_ref angle)))))\n"
469 "))\n"
470};
471
472static const char *builtins_110_cross = {
473 "((function cross\n"
474 " (signature vec3\n"
475 " (parameters\n"
476 " (declare (in) vec3 arg0)\n"
477 " (declare (in) vec3 arg1))\n"
478 " ((declare () vec3 t)\n"
479 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
480 " (expression float - (expression float * (swiz y (var_ref arg0)) (swiz z (var_ref arg1)))\n"
481 " (expression float * (swiz y (var_ref arg1)) (swiz z (var_ref arg0)))))\n"
482 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
483 " (expression float - (expression float * (swiz z (var_ref arg0)) (swiz x (var_ref arg1)))\n"
484 " (expression float * (swiz z (var_ref arg1)) (swiz x (var_ref arg0)))))\n"
485 " (assign (constant bool (1)) (swiz z (var_ref t))\n"
486 " (expression float - (expression float * (swiz x (var_ref arg0)) (swiz y (var_ref arg1)))\n"
487 " (expression float * (swiz x (var_ref arg1)) (swiz y (var_ref arg0)))))\n"
488 " (return (var_ref t))))\n"
489 "))\n"
490};
491
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700492static const char *builtins_110_degrees = {
493 "((function degrees\n"
494 " (signature float\n"
495 " (parameters\n"
496 " (declare (in) float arg0))\n"
497 " ((return (expression float * (var_ref arg0) (constant float (57.295780))))))\n"
498 "\n"
499 " (signature vec2\n"
500 " (parameters\n"
501 " (declare (in) vec2 arg0))\n"
502 " ((return (expression vec2 * (var_ref arg0) (constant float (57.295780))))))\n"
503 "\n"
504 " (signature vec3\n"
505 " (parameters\n"
506 " (declare (in) vec3 arg0))\n"
507 " ((return (expression vec3 * (var_ref arg0) (constant float (57.295780))))))\n"
508 "\n"
509 " (signature vec4\n"
510 " (parameters\n"
511 " (declare (in) vec4 arg0))\n"
512 " ((return (expression vec4 * (var_ref arg0) (constant float (57.295780))))))\n"
513 "))\n"
514};
Eric Anholt53afc362010-03-27 13:55:04 -0700515
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700516static const char *builtins_110_dot = {
517 "((function dot\n"
518 " (signature float\n"
519 " (parameters\n"
520 " (declare (in) float arg0)\n"
521 " (declare (in) float arg1))\n"
522 " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
523 "\n"
524 " (signature float\n"
525 " (parameters\n"
526 " (declare (in) vec2 arg0)\n"
527 " (declare (in) vec2 arg1))\n"
528 " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
529 "\n"
530 " (signature float\n"
531 " (parameters\n"
532 " (declare (in) vec3 arg0)\n"
533 " (declare (in) vec3 arg1))\n"
534 " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
535 "\n"
536 " (signature float\n"
537 " (parameters\n"
538 " (declare (in) vec4 arg0)\n"
539 " (declare (in) vec4 arg1))\n"
540 " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
541 "))\n"
542};
Kenneth Graunke9fa99f32010-04-21 12:30:22 -0700543
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700544static const char *builtins_110_equal = {
545 "((function equal\n"
546 " (signature bvec2\n"
547 " (parameters\n"
548 " (declare (in) vec2 arg0)\n"
549 " (declare (in) vec2 arg1))\n"
550 " ((declare () bvec2 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700551 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
552 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700553 " (return (var_ref temp))))\n"
554 "\n"
555 " (signature bvec3\n"
556 " (parameters\n"
557 " (declare (in) vec3 arg0)\n"
558 " (declare (in) vec3 arg1))\n"
559 " ((declare () bvec3 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700560 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
561 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
562 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700563 " (return (var_ref temp))))\n"
564 "\n"
565 " (signature bvec4\n"
566 " (parameters\n"
567 " (declare (in) vec4 arg0)\n"
568 " (declare (in) vec4 arg1))\n"
569 " ((declare () bvec4 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700570 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
571 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
572 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
573 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool == (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700574 " (return (var_ref temp))))\n"
575 "\n"
576 " (signature bvec2\n"
577 " (parameters\n"
578 " (declare (in) ivec2 arg0)\n"
579 " (declare (in) ivec2 arg1))\n"
580 " ((declare () bvec2 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700581 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
582 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700583 " (return (var_ref temp))))\n"
584 "\n"
585 " (signature bvec3\n"
586 " (parameters\n"
587 " (declare (in) ivec3 arg0)\n"
588 " (declare (in) ivec3 arg1))\n"
589 " ((declare () bvec3 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700590 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
591 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
592 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700593 " (return (var_ref temp))))\n"
594 "\n"
595 " (signature bvec4\n"
596 " (parameters\n"
597 " (declare (in) ivec4 arg0)\n"
598 " (declare (in) ivec4 arg1))\n"
599 " ((declare () bvec4 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700600 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
601 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
602 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
603 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool == (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700604 " (return (var_ref temp))))\n"
605 "))\n"
606};
Eric Anholtc22c4002010-03-26 18:20:30 -0700607
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700608static const char *builtins_110_exp = {
609 "((function exp\n"
610 " (signature float\n"
611 " (parameters\n"
612 " (declare (in) float arg0))\n"
613 " ((return (expression float exp (var_ref arg0)))))\n"
614 "\n"
615 " (signature vec2\n"
616 " (parameters\n"
617 " (declare (in) vec2 arg0))\n"
618 " ((return (expression vec2 exp (var_ref arg0)))))\n"
619 "\n"
620 " (signature vec3\n"
621 " (parameters\n"
622 " (declare (in) vec3 arg0))\n"
623 " ((return (expression vec3 exp (var_ref arg0)))))\n"
624 "\n"
625 " (signature vec4\n"
626 " (parameters\n"
627 " (declare (in) vec4 arg0))\n"
628 " ((return (expression vec4 exp (var_ref arg0)))))\n"
629 "))\n"
630};
Eric Anholt76a91e12010-03-27 14:04:43 -0700631
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700632static const char *builtins_110_exp2 = {
633 "((function exp2\n"
634 " (signature float\n"
635 " (parameters\n"
636 " (declare (in) float arg0))\n"
637 " ((return (expression float exp2 (var_ref arg0)))))\n"
638 "\n"
639 " (signature vec2\n"
640 " (parameters\n"
641 " (declare (in) vec2 arg0))\n"
642 " ((return (expression vec2 exp2 (var_ref arg0)))))\n"
643 "\n"
644 " (signature vec3\n"
645 " (parameters\n"
646 " (declare (in) vec3 arg0))\n"
647 " ((return (expression vec3 exp2 (var_ref arg0)))))\n"
648 "\n"
649 " (signature vec4\n"
650 " (parameters\n"
651 " (declare (in) vec4 arg0))\n"
652 " ((return (expression vec4 exp2 (var_ref arg0)))))\n"
653 "))\n"
654};
Eric Anholt76a91e12010-03-27 14:04:43 -0700655
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700656static const char *builtins_110_floor = {
657 "((function floor\n"
658 " (signature float\n"
659 " (parameters\n"
660 " (declare (in) float arg0))\n"
661 " ((return (expression float floor (var_ref arg0)))))\n"
662 "\n"
663 " (signature vec2\n"
664 " (parameters\n"
665 " (declare (in) vec2 arg0))\n"
666 " ((return (expression vec2 floor (var_ref arg0)))))\n"
667 "\n"
668 " (signature vec3\n"
669 " (parameters\n"
670 " (declare (in) vec3 arg0))\n"
671 " ((return (expression vec3 floor (var_ref arg0)))))\n"
672 "\n"
673 " (signature vec4\n"
674 " (parameters\n"
675 " (declare (in) vec4 arg0))\n"
676 " ((return (expression vec4 floor (var_ref arg0)))))\n"
677 "))\n"
678};
Eric Anholt76a91e12010-03-27 14:04:43 -0700679
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700680static const char *builtins_110_fract = {
681 "((function fract\n"
682 " (signature float\n"
683 " (parameters\n"
684 " (declare (in) float x))\n"
685 " ((return (expression float - (var_ref x) (expression float floor (var_ref x))))))\n"
686 "\n"
687 " (signature vec2\n"
688 " (parameters\n"
689 " (declare (in) vec2 x))\n"
690 " ((declare () vec2 t)\n"
691 " (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"
692 " (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"
693 " (return (var_ref t))))\n"
694 "\n"
695 " (signature vec3\n"
696 " (parameters\n"
697 " (declare (in) vec3 x))\n"
698 " ((declare () vec3 t)\n"
699 " (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"
700 " (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"
701 " (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"
702 " (return (var_ref t))))\n"
703 "\n"
704 " (signature vec4\n"
705 " (parameters\n"
706 " (declare (in) vec4 x))\n"
707 " ((declare () vec4 t)\n"
708 " (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"
709 " (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"
710 " (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"
711 " (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"
712 " (return (var_ref t))))\n"
713 "))\n"
714 "\n"
715};
716
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700717static const char *builtins_110_greaterThan = {
718 "((function greaterThan\n"
719 " (signature bvec2\n"
720 " (parameters\n"
721 " (declare (in) vec2 arg0)\n"
722 " (declare (in) vec2 arg1))\n"
723 " ((declare () bvec2 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700724 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
725 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700726 " (return (var_ref temp))))\n"
727 "\n"
728 " (signature bvec3\n"
729 " (parameters\n"
730 " (declare (in) vec3 arg0)\n"
731 " (declare (in) vec3 arg1))\n"
732 " ((declare () bvec3 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700733 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
734 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
735 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700736 " (return (var_ref temp))))\n"
737 "\n"
738 " (signature bvec4\n"
739 " (parameters\n"
740 " (declare (in) vec4 arg0)\n"
741 " (declare (in) vec4 arg1))\n"
742 " ((declare () bvec4 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700743 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
744 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
745 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
746 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool > (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700747 " (return (var_ref temp))))\n"
748 "\n"
749 " (signature bvec2\n"
750 " (parameters\n"
751 " (declare (in) ivec2 arg0)\n"
752 " (declare (in) ivec2 arg1))\n"
753 " ((declare () bvec2 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700754 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
755 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700756 " (return (var_ref temp))))\n"
757 "\n"
758 " (signature bvec3\n"
759 " (parameters\n"
760 " (declare (in) ivec3 arg0)\n"
761 " (declare (in) ivec3 arg1))\n"
762 " ((declare () bvec3 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700763 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
764 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
765 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700766 " (return (var_ref temp))))\n"
767 "\n"
768 " (signature bvec4\n"
769 " (parameters\n"
770 " (declare (in) ivec4 arg0)\n"
771 " (declare (in) ivec4 arg1))\n"
772 " ((declare () bvec4 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700773 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
774 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
775 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
776 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool > (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700777 " (return (var_ref temp))))\n"
778 "))\n"
779};
Eric Anholt76a91e12010-03-27 14:04:43 -0700780
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700781static const char *builtins_110_greaterThanEqual = {
782 "((function greaterThanEqual\n"
783 " (signature bvec2\n"
784 " (parameters\n"
785 " (declare (in) vec2 arg0)\n"
786 " (declare (in) vec2 arg1))\n"
787 " ((declare () bvec2 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700788 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
789 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700790 " (return (var_ref temp))))\n"
791 "\n"
792 " (signature bvec3\n"
793 " (parameters\n"
794 " (declare (in) vec3 arg0)\n"
795 " (declare (in) vec3 arg1))\n"
796 " ((declare () bvec3 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700797 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
798 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
799 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700800 " (return (var_ref temp))))\n"
801 "\n"
802 " (signature bvec4\n"
803 " (parameters\n"
804 " (declare (in) vec4 arg0)\n"
805 " (declare (in) vec4 arg1))\n"
806 " ((declare () bvec4 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700807 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
808 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
809 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
810 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool >= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700811 " (return (var_ref temp))))\n"
812 "\n"
813 " (signature bvec2\n"
814 " (parameters\n"
815 " (declare (in) ivec2 arg0)\n"
816 " (declare (in) ivec2 arg1))\n"
817 " ((declare () bvec2 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700818 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
819 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700820 " (return (var_ref temp))))\n"
821 "\n"
822 " (signature bvec3\n"
823 " (parameters\n"
824 " (declare (in) ivec3 arg0)\n"
825 " (declare (in) ivec3 arg1))\n"
826 " ((declare () bvec3 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700827 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
828 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
829 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700830 " (return (var_ref temp))))\n"
831 "\n"
832 " (signature bvec4\n"
833 " (parameters\n"
834 " (declare (in) ivec4 arg0)\n"
835 " (declare (in) ivec4 arg1))\n"
836 " ((declare () bvec4 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700837 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
838 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
839 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
840 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool >= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700841 " (return (var_ref temp))))\n"
842 "))\n"
843};
Eric Anholt76a91e12010-03-27 14:04:43 -0700844
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700845static const char *builtins_110_inversesqrt = {
846 "((function inversesqrt\n"
847 " (signature float\n"
848 " (parameters\n"
849 " (declare (in) float arg0))\n"
850 " ((return (expression float rsq (var_ref arg0)))))\n"
851 "\n"
852 " (signature vec2\n"
853 " (parameters\n"
854 " (declare (in) vec2 arg0))\n"
855 " ((return (expression vec2 rsq (var_ref arg0)))))\n"
856 "\n"
857 " (signature vec3\n"
858 " (parameters\n"
859 " (declare (in) vec3 arg0))\n"
860 " ((return (expression vec3 rsq (var_ref arg0)))))\n"
861 "\n"
862 " (signature vec4\n"
863 " (parameters\n"
864 " (declare (in) vec4 arg0))\n"
865 " ((return (expression vec4 rsq (var_ref arg0)))))\n"
866 "))\n"
867};
Eric Anholt76a91e12010-03-27 14:04:43 -0700868
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700869static const char *builtins_110_length = {
870 "((function length\n"
871 " (signature float\n"
872 " (parameters\n"
873 " (declare (in) float arg0))\n"
874 " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
875 "\n"
876 " (signature float\n"
877 " (parameters\n"
878 " (declare (in) vec2 arg0))\n"
879 " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
880 "\n"
881 " (signature float\n"
882 " (parameters\n"
883 " (declare (in) vec3 arg0))\n"
884 " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
885 "\n"
886 " (signature float\n"
887 " (parameters\n"
888 " (declare (in) vec4 arg0))\n"
889 " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
890 "))\n"
891};
Kenneth Graunke9fa99f32010-04-21 12:30:22 -0700892
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700893static const char *builtins_110_lessThan = {
894 "((function lessThan\n"
895 " (signature bvec2\n"
896 " (parameters\n"
897 " (declare (in) vec2 arg0)\n"
898 " (declare (in) vec2 arg1))\n"
899 " ((declare () bvec2 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700900 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
901 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700902 " (return (var_ref temp))))\n"
903 "\n"
904 " (signature bvec3\n"
905 " (parameters\n"
906 " (declare (in) vec3 arg0)\n"
907 " (declare (in) vec3 arg1))\n"
908 " ((declare () bvec3 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700909 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
910 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
911 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700912 " (return (var_ref temp))))\n"
913 "\n"
914 " (signature bvec4\n"
915 " (parameters\n"
916 " (declare (in) vec4 arg0)\n"
917 " (declare (in) vec4 arg1))\n"
918 " ((declare () bvec4 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700919 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
920 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
921 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
922 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool < (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700923 " (return (var_ref temp))))\n"
924 "\n"
925 " (signature bvec2\n"
926 " (parameters\n"
927 " (declare (in) ivec2 arg0)\n"
928 " (declare (in) ivec2 arg1))\n"
929 " ((declare () bvec2 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700930 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
931 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700932 " (return (var_ref temp))))\n"
933 "\n"
934 " (signature bvec3\n"
935 " (parameters\n"
936 " (declare (in) ivec3 arg0)\n"
937 " (declare (in) ivec3 arg1))\n"
938 " ((declare () bvec3 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700939 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
940 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
941 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700942 " (return (var_ref temp))))\n"
943 "\n"
944 " (signature bvec4\n"
945 " (parameters\n"
946 " (declare (in) ivec4 arg0)\n"
947 " (declare (in) ivec4 arg1))\n"
948 " ((declare () bvec4 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700949 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
950 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
951 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
952 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool < (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700953 " (return (var_ref temp))))\n"
954 "))\n"
955};
Eric Anholt76a91e12010-03-27 14:04:43 -0700956
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700957static const char *builtins_110_lessThanEqual = {
958 "((function lessThanEqual\n"
959 " (signature bvec2\n"
960 " (parameters\n"
961 " (declare (in) vec2 arg0)\n"
962 " (declare (in) vec2 arg1))\n"
963 " ((declare () bvec2 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700964 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
965 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700966 " (return (var_ref temp))))\n"
967 "\n"
968 " (signature bvec3\n"
969 " (parameters\n"
970 " (declare (in) vec3 arg0)\n"
971 " (declare (in) vec3 arg1))\n"
972 " ((declare () bvec3 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700973 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
974 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
975 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700976 " (return (var_ref temp))))\n"
977 "\n"
978 " (signature bvec4\n"
979 " (parameters\n"
980 " (declare (in) vec4 arg0)\n"
981 " (declare (in) vec4 arg1))\n"
982 " ((declare () bvec4 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700983 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
984 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
985 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
986 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool <= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700987 " (return (var_ref temp))))\n"
988 "\n"
989 " (signature bvec2\n"
990 " (parameters\n"
991 " (declare (in) ivec2 arg0)\n"
992 " (declare (in) ivec2 arg1))\n"
993 " ((declare () bvec2 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -0700994 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
995 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -0700996 " (return (var_ref temp))))\n"
997 "\n"
998 " (signature bvec3\n"
999 " (parameters\n"
1000 " (declare (in) ivec3 arg0)\n"
1001 " (declare (in) ivec3 arg1))\n"
1002 " ((declare () bvec3 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07001003 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1004 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1005 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07001006 " (return (var_ref temp))))\n"
1007 "\n"
1008 " (signature bvec4\n"
1009 " (parameters\n"
1010 " (declare (in) ivec4 arg0)\n"
1011 " (declare (in) ivec4 arg1))\n"
1012 " ((declare () bvec4 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07001013 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1014 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1015 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1016 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool <= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07001017 " (return (var_ref temp))))\n"
1018 "))\n"
1019};
Eric Anholtfeeb43b2010-04-08 15:02:59 -07001020
Kenneth Graunkeb3262122010-04-28 23:01:33 -07001021static const char *builtins_110_log = {
1022 "((function log\n"
1023 " (signature float\n"
1024 " (parameters\n"
1025 " (declare (in) float arg0))\n"
1026 " ((return (expression float log (var_ref arg0)))))\n"
1027 "\n"
1028 " (signature vec2\n"
1029 " (parameters\n"
1030 " (declare (in) vec2 arg0))\n"
1031 " ((return (expression vec2 log (var_ref arg0)))))\n"
1032 "\n"
1033 " (signature vec3\n"
1034 " (parameters\n"
1035 " (declare (in) vec3 arg0))\n"
1036 " ((return (expression vec3 log (var_ref arg0)))))\n"
1037 "\n"
1038 " (signature vec4\n"
1039 " (parameters\n"
1040 " (declare (in) vec4 arg0))\n"
1041 " ((return (expression vec4 log (var_ref arg0)))))\n"
1042 "))\n"
1043};
Eric Anholtfeeb43b2010-04-08 15:02:59 -07001044
Kenneth Graunkeb3262122010-04-28 23:01:33 -07001045static const char *builtins_110_log2 = {
1046 "((function log2\n"
1047 " (signature float\n"
1048 " (parameters\n"
1049 " (declare (in) float arg0))\n"
1050 " ((return (expression float log2 (var_ref arg0)))))\n"
1051 "\n"
1052 " (signature vec2\n"
1053 " (parameters\n"
1054 " (declare (in) vec2 arg0))\n"
1055 " ((return (expression vec2 log2 (var_ref arg0)))))\n"
1056 "\n"
1057 " (signature vec3\n"
1058 " (parameters\n"
1059 " (declare (in) vec3 arg0))\n"
1060 " ((return (expression vec3 log2 (var_ref arg0)))))\n"
1061 "\n"
1062 " (signature vec4\n"
1063 " (parameters\n"
1064 " (declare (in) vec4 arg0))\n"
1065 " ((return (expression vec4 log2 (var_ref arg0)))))\n"
1066 "))\n"
1067};
Eric Anholtfeeb43b2010-04-08 15:02:59 -07001068
Kenneth Graunkeb3262122010-04-28 23:01:33 -07001069static const char *builtins_110_max = {
1070 "((function max\n"
1071 " (signature float\n"
1072 " (parameters\n"
1073 " (declare (in) float arg0)\n"
1074 " (declare (in) float arg1))\n"
1075 " ((return (expression float max (var_ref arg0) (var_ref arg1)))))\n"
1076 "\n"
1077 " (signature vec2\n"
1078 " (parameters\n"
1079 " (declare (in) vec2 arg0)\n"
1080 " (declare (in) vec2 arg1))\n"
1081 " ((return (expression vec2 max (var_ref arg0) (var_ref arg1)))))\n"
1082 "\n"
1083 " (signature vec3\n"
1084 " (parameters\n"
1085 " (declare (in) vec3 arg0)\n"
1086 " (declare (in) vec3 arg1))\n"
1087 " ((return (expression vec3 max (var_ref arg0) (var_ref arg1)))))\n"
1088 "\n"
1089 " (signature vec4\n"
1090 " (parameters\n"
1091 " (declare (in) vec4 arg0)\n"
1092 " (declare (in) vec4 arg1))\n"
1093 " ((return (expression vec4 max (var_ref arg0) (var_ref arg1)))))\n"
Kenneth Graunke76796ed2010-06-09 13:05:40 -07001094 "\n"
1095 " (signature vec2\n"
1096 " (parameters\n"
1097 " (declare (in) vec2 arg0)\n"
1098 " (declare (in) float arg1))\n"
1099 " ((declare () vec2 result)\n"
1100 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
1101 " (expression float max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
1102 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
1103 " (expression float max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
1104 " (return (var_ref result))))\n"
1105 "\n"
1106 " (signature vec3\n"
1107 " (parameters\n"
1108 " (declare (in) vec3 arg0)\n"
1109 " (declare (in) float arg1))\n"
1110 " ((declare () vec3 result)\n"
1111 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
1112 " (expression float max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
1113 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
1114 " (expression float max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
1115 " (assign (constant bool (1)) (swiz z (var_ref result))\n"
1116 " (expression float max (swiz z (var_ref arg0)) (var_ref arg1)))\n"
1117 " (return (var_ref result))))\n"
Kenneth Graunkecdf17262010-06-09 13:10:00 -07001118 "\n"
Kenneth Graunke76796ed2010-06-09 13:05:40 -07001119 " (signature vec4\n"
1120 " (parameters\n"
1121 " (declare (in) vec4 arg0)\n"
1122 " (declare (in) float arg1))\n"
1123 " ((declare () vec4 result)\n"
1124 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
1125 " (expression float max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
1126 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
1127 " (expression float max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
1128 " (assign (constant bool (1)) (swiz z (var_ref result))\n"
1129 " (expression float max (swiz z (var_ref arg0)) (var_ref arg1)))\n"
1130 " (assign (constant bool (1)) (swiz w (var_ref result))\n"
1131 " (expression float max (swiz w (var_ref arg0)) (var_ref arg1)))\n"
1132 " (return (var_ref result))))\n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07001133 "))\n"
1134};
Eric Anholtfeeb43b2010-04-08 15:02:59 -07001135
Kenneth Graunkeb3262122010-04-28 23:01:33 -07001136static const char *builtins_110_min = {
1137 "((function min\n"
1138 " (signature float\n"
1139 " (parameters\n"
1140 " (declare (in) float arg0)\n"
1141 " (declare (in) float arg1))\n"
1142 " ((return (expression float min (var_ref arg0) (var_ref arg1)))))\n"
1143 "\n"
1144 " (signature vec2\n"
1145 " (parameters\n"
1146 " (declare (in) vec2 arg0)\n"
1147 " (declare (in) vec2 arg1))\n"
1148 " ((return (expression vec2 min (var_ref arg0) (var_ref arg1)))))\n"
1149 "\n"
1150 " (signature vec3\n"
1151 " (parameters\n"
1152 " (declare (in) vec3 arg0)\n"
1153 " (declare (in) vec3 arg1))\n"
1154 " ((return (expression vec3 min (var_ref arg0) (var_ref arg1)))))\n"
1155 "\n"
1156 " (signature vec4\n"
1157 " (parameters\n"
1158 " (declare (in) vec4 arg0)\n"
1159 " (declare (in) vec4 arg1))\n"
1160 " ((return (expression vec4 min (var_ref arg0) (var_ref arg1)))))\n"
Kenneth Graunke47d44c82010-06-09 13:03:18 -07001161 "\n"
1162 " (signature vec2\n"
1163 " (parameters\n"
1164 " (declare (in) vec2 arg0)\n"
1165 " (declare (in) float arg1))\n"
1166 " ((declare () vec2 result)\n"
1167 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
1168 " (expression float min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
1169 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
1170 " (expression float min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
1171 " (return (var_ref result))))\n"
1172 "\n"
1173 " (signature vec3\n"
1174 " (parameters\n"
1175 " (declare (in) vec3 arg0)\n"
1176 " (declare (in) float arg1))\n"
1177 " ((declare () vec3 result)\n"
1178 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
1179 " (expression float min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
1180 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
1181 " (expression float min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
1182 " (assign (constant bool (1)) (swiz z (var_ref result))\n"
1183 " (expression float min (swiz z (var_ref arg0)) (var_ref arg1)))\n"
1184 " (return (var_ref result))))\n"
1185 "\n"
1186 " (signature vec4\n"
1187 " (parameters\n"
1188 " (declare (in) vec4 arg0)\n"
1189 " (declare (in) float arg1))\n"
1190 " ((declare () vec4 result)\n"
1191 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
1192 " (expression float min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
1193 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
1194 " (expression float min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
1195 " (assign (constant bool (1)) (swiz z (var_ref result))\n"
1196 " (expression float min (swiz z (var_ref arg0)) (var_ref arg1)))\n"
1197 " (assign (constant bool (1)) (swiz w (var_ref result))\n"
1198 " (expression float min (swiz w (var_ref arg0)) (var_ref arg1)))\n"
1199 " (return (var_ref result))))\n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07001200 "))\n"
1201};
Eric Anholtfeeb43b2010-04-08 15:02:59 -07001202
Kenneth Graunkeb3262122010-04-28 23:01:33 -07001203static const char *builtins_110_mix = {
1204 "((function mix\n"
1205 " (signature float\n"
1206 " (parameters\n"
1207 " (declare (in) float arg0)\n"
1208 " (declare (in) float arg1)\n"
1209 " (declare (in) float arg2))\n"
1210 " ((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"
1211 "\n"
1212 " (signature vec2\n"
1213 " (parameters\n"
1214 " (declare (in) vec2 arg0)\n"
1215 " (declare (in) vec2 arg1)\n"
1216 " (declare (in) vec2 arg2))\n"
1217 " ((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"
1218 "\n"
1219 " (signature vec3\n"
1220 " (parameters\n"
1221 " (declare (in) vec3 arg0)\n"
1222 " (declare (in) vec3 arg1)\n"
1223 " (declare (in) vec3 arg2))\n"
1224 " ((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"
1225 "\n"
1226 " (signature vec4\n"
1227 " (parameters\n"
1228 " (declare (in) vec4 arg0)\n"
1229 " (declare (in) vec4 arg1)\n"
1230 " (declare (in) vec4 arg2))\n"
1231 " ((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"
Eric Anholtf03acfc2010-05-19 13:05:01 -07001232 "\n"
1233 " (signature vec2\n"
1234 " (parameters\n"
1235 " (declare (in) vec2 arg0)\n"
1236 " (declare (in) vec2 arg1)\n"
1237 " (declare (in) float arg2))\n"
1238 " ((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"
1239 "\n"
1240 " (signature vec3\n"
1241 " (parameters\n"
1242 " (declare (in) vec3 arg0)\n"
1243 " (declare (in) vec3 arg1)\n"
1244 " (declare (in) float arg2))\n"
1245 " ((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"
1246 "\n"
1247 " (signature vec4\n"
1248 " (parameters\n"
1249 " (declare (in) vec4 arg0)\n"
1250 " (declare (in) vec4 arg1)\n"
1251 " (declare (in) float arg2))\n"
1252 " ((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"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07001253 "))\n"
1254};
Eric Anholtfeeb43b2010-04-08 15:02:59 -07001255
Kenneth Graunkeb3262122010-04-28 23:01:33 -07001256static const char *builtins_110_mod = {
1257 "((function mod\n"
1258 " (signature float\n"
1259 " (parameters\n"
1260 " (declare (in) float arg0)\n"
1261 " (declare (in) float arg1))\n"
1262 " ((return (expression float % (var_ref arg0) (var_ref arg1)))))\n"
1263 "\n"
1264 " (signature vec2\n"
1265 " (parameters\n"
1266 " (declare (in) vec2 arg0)\n"
1267 " (declare (in) vec2 arg1))\n"
1268 " ((return (expression vec2 % (var_ref arg0) (var_ref arg1)))))\n"
1269 "\n"
1270 " (signature vec3\n"
1271 " (parameters\n"
1272 " (declare (in) vec3 arg0)\n"
1273 " (declare (in) vec3 arg1))\n"
1274 " ((return (expression vec3 % (var_ref arg0) (var_ref arg1)))))\n"
1275 "\n"
1276 " (signature vec4\n"
1277 " (parameters\n"
1278 " (declare (in) vec4 arg0)\n"
1279 " (declare (in) vec4 arg1))\n"
1280 " ((return (expression vec4 % (var_ref arg0) (var_ref arg1)))))\n"
Kenneth Graunke2438f642010-06-09 12:58:42 -07001281 "\n"
1282 " (signature vec2\n"
1283 " (parameters\n"
1284 " (declare (in) vec2 arg0)\n"
1285 " (declare (in) float arg1))\n"
1286 " ((declare () vec2 result)\n"
1287 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
1288 " (expression float % (swiz x (var_ref arg0)) (var_ref arg1)))\n"
1289 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
1290 " (expression float % (swiz y (var_ref arg0)) (var_ref arg1)))\n"
1291 " (return (var_ref result))))\n"
1292 "\n"
1293 " (signature vec3\n"
1294 " (parameters\n"
1295 " (declare (in) vec3 arg0)\n"
1296 " (declare (in) float arg1))\n"
1297 " ((declare () vec3 result)\n"
1298 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
1299 " (expression float % (swiz x (var_ref arg0)) (var_ref arg1)))\n"
1300 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
1301 " (expression float % (swiz y (var_ref arg0)) (var_ref arg1)))\n"
1302 " (assign (constant bool (1)) (swiz z (var_ref result))\n"
1303 " (expression float % (swiz z (var_ref arg0)) (var_ref arg1)))\n"
1304 " (return (var_ref result))))\n"
1305 "\n"
1306 " (signature vec4\n"
1307 " (parameters\n"
1308 " (declare (in) vec4 arg0)\n"
1309 " (declare (in) float arg1))\n"
1310 " ((declare () vec4 result)\n"
1311 " (assign (constant bool (1)) (swiz x (var_ref result))\n"
1312 " (expression float % (swiz x (var_ref arg0)) (var_ref arg1)))\n"
1313 " (assign (constant bool (1)) (swiz y (var_ref result))\n"
1314 " (expression float % (swiz y (var_ref arg0)) (var_ref arg1)))\n"
1315 " (assign (constant bool (1)) (swiz z (var_ref result))\n"
1316 " (expression float % (swiz z (var_ref arg0)) (var_ref arg1)))\n"
1317 " (assign (constant bool (1)) (swiz w (var_ref result))\n"
1318 " (expression float % (swiz w (var_ref arg0)) (var_ref arg1)))\n"
1319 " (return (var_ref result))))\n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07001320 "))\n"
1321};
Eric Anholtfeeb43b2010-04-08 15:02:59 -07001322
Kenneth Graunkeb3262122010-04-28 23:01:33 -07001323static const char *builtins_110_normalize = {
1324 "((function normalize\n"
1325 " (signature float\n"
1326 " (parameters\n"
1327 " (declare (in) float arg0))\n"
1328 " ((return (expression float * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
1329 "\n"
1330 " (signature vec2\n"
1331 " (parameters\n"
1332 " (declare (in) vec2 arg0))\n"
1333 " ((return (expression vec2 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
1334 "\n"
1335 " (signature vec3\n"
1336 " (parameters\n"
1337 " (declare (in) vec3 arg0))\n"
1338 " ((return (expression vec3 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
1339 "\n"
1340 " (signature vec4\n"
1341 " (parameters\n"
1342 " (declare (in) vec4 arg0))\n"
1343 " ((return (expression vec4 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
1344 "))\n"
1345};
Eric Anholtfeeb43b2010-04-08 15:02:59 -07001346
Kenneth Graunkeb3262122010-04-28 23:01:33 -07001347static const char *builtins_110_not = {
1348 "((function not\n"
1349 " (signature bvec2\n"
1350 " (parameters\n"
1351 " (declare (in) bvec2 arg0))\n"
1352 " ((return (expression bvec2 ! (var_ref arg0)))))\n"
1353 "\n"
1354 " (signature bvec3\n"
1355 " (parameters\n"
1356 " (declare (in) bvec3 arg0))\n"
1357 " ((return (expression bvec3 ! (var_ref arg0)))))\n"
1358 "\n"
1359 " (signature bvec4\n"
1360 " (parameters\n"
1361 " (declare (in) bvec4 arg0))\n"
1362 " ((return (expression bvec4 ! (var_ref arg0)))))\n"
1363 "))\n"
1364};
Eric Anholtfeeb43b2010-04-08 15:02:59 -07001365
Kenneth Graunkeb3262122010-04-28 23:01:33 -07001366static const char *builtins_110_notEqual = {
1367 "((function notEqual\n"
1368 " (signature bvec2\n"
1369 " (parameters\n"
1370 " (declare (in) vec2 arg0)\n"
1371 " (declare (in) vec2 arg1))\n"
1372 " ((declare () bvec2 temp)\n"
1373 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression float != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1374 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression float != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1375 " (return (var_ref temp))))\n"
1376 "\n"
1377 " (signature bvec3\n"
1378 " (parameters\n"
1379 " (declare (in) vec3 arg0)\n"
1380 " (declare (in) vec3 arg1))\n"
1381 " ((declare () bvec3 temp)\n"
1382 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression float != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1383 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression float != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1384 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression float != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1385 " (return (var_ref temp))))\n"
1386 "\n"
1387 " (signature bvec4\n"
1388 " (parameters\n"
1389 " (declare (in) vec4 arg0)\n"
1390 " (declare (in) vec4 arg1))\n"
1391 " ((declare () bvec4 temp)\n"
1392 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression float != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1393 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression float != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1394 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression float != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1395 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression float != (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
1396 " (return (var_ref temp))))\n"
1397 "\n"
1398 " (signature bvec2\n"
1399 " (parameters\n"
1400 " (declare (in) ivec2 arg0)\n"
1401 " (declare (in) ivec2 arg1))\n"
1402 " ((declare () bvec2 temp)\n"
1403 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression int != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1404 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression int != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1405 " (return (var_ref temp))))\n"
1406 "\n"
1407 " (signature bvec3\n"
1408 " (parameters\n"
1409 " (declare (in) ivec3 arg0)\n"
1410 " (declare (in) ivec3 arg1))\n"
1411 " ((declare () bvec3 temp)\n"
1412 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression int != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1413 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression int != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1414 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression int != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1415 " (return (var_ref temp))))\n"
1416 "\n"
1417 " (signature bvec4\n"
1418 " (parameters\n"
1419 " (declare (in) ivec4 arg0)\n"
1420 " (declare (in) ivec4 arg1))\n"
1421 " ((declare () bvec4 temp)\n"
1422 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression int != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1423 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression int != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1424 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression int != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1425 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression int != (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
1426 " (return (var_ref temp))))\n"
1427 "))\n"
1428};
Eric Anholtfeeb43b2010-04-08 15:02:59 -07001429
Kenneth Graunkeb3262122010-04-28 23:01:33 -07001430static const char *builtins_110_pow = {
1431 "((function pow\n"
1432 " (signature float\n"
1433 " (parameters\n"
1434 " (declare (in) float arg0)\n"
1435 " (declare (in) float arg1))\n"
1436 " ((return (expression float pow (var_ref arg0) (var_ref arg1)))))\n"
1437 "\n"
1438 " (signature vec2\n"
1439 " (parameters\n"
1440 " (declare (in) vec2 arg0)\n"
1441 " (declare (in) vec2 arg1))\n"
1442 " ((return (expression vec2 pow (var_ref arg0) (var_ref arg1)))))\n"
1443 "\n"
1444 " (signature vec3\n"
1445 " (parameters\n"
1446 " (declare (in) vec3 arg0)\n"
1447 " (declare (in) vec3 arg1))\n"
1448 " ((return (expression vec3 pow (var_ref arg0) (var_ref arg1)))))\n"
1449 "\n"
1450 " (signature vec4\n"
1451 " (parameters\n"
1452 " (declare (in) vec4 arg0)\n"
1453 " (declare (in) vec4 arg1))\n"
1454 " ((return (expression vec4 pow (var_ref arg0) (var_ref arg1)))))\n"
1455 "))\n"
1456};
Eric Anholtfeeb43b2010-04-08 15:02:59 -07001457
Kenneth Graunkeb3262122010-04-28 23:01:33 -07001458static const char *builtins_110_radians = {
1459 "((function radians\n"
1460 " (signature float\n"
1461 " (parameters\n"
1462 " (declare (in) float arg0))\n"
1463 " ((return (expression float * (var_ref arg0) (constant float (0.017453))))))\n"
1464 "\n"
1465 " (signature vec2\n"
1466 " (parameters\n"
1467 " (declare (in) vec2 arg0))\n"
1468 " ((return (expression vec2 * (var_ref arg0) (constant float (0.017453))))))\n"
1469 "\n"
1470 " (signature vec3\n"
1471 " (parameters\n"
1472 " (declare (in) vec3 arg0))\n"
1473 " ((return (expression vec3 * (var_ref arg0) (constant float (0.017453))))))\n"
1474 "\n"
1475 " (signature vec4\n"
1476 " (parameters\n"
1477 " (declare (in) vec4 arg0))\n"
1478 " ((return (expression vec4 * (var_ref arg0) (constant float (0.017453))))))\n"
1479 "))\n"
1480};
Eric Anholtfeeb43b2010-04-08 15:02:59 -07001481
Eric Anholt5b9ac872010-05-19 14:01:33 -07001482static const char *builtins_110_reflect = {
1483 "((function reflect\n"
1484 " (signature float\n"
1485 " (parameters\n"
1486 " (declare (in) float i)\n"
1487 " (declare (in) float n))\n"
1488 " ((return (expression float -\n"
1489 " (var_ref i)\n"
1490 " (expression float *\n"
1491 " (constant float (2.0))\n"
1492 " (expression float *\n"
1493 " (expression float dot\n"
1494 " (var_ref n)\n"
1495 " (var_ref i))\n"
1496 " (var_ref n)))))))\n"
1497 "\n"
1498 " (signature vec2\n"
1499 " (parameters\n"
1500 " (declare (in) vec2 i)\n"
1501 " (declare (in) vec2 n))\n"
1502 " ((return (expression vec2 -\n"
1503 " (var_ref i)\n"
1504 " (expression vec2 *\n"
1505 " (constant float (2.0))\n"
1506 " (expression vec2 *\n"
1507 " (expression float dot\n"
1508 " (var_ref n)\n"
1509 " (var_ref i))\n"
1510 " (var_ref n)))))))\n"
1511 "\n"
1512 " (signature vec3\n"
1513 " (parameters\n"
1514 " (declare (in) vec3 i)\n"
1515 " (declare (in) vec3 n))\n"
1516 " ((return (expression vec3 -\n"
1517 " (var_ref i)\n"
1518 " (expression vec3 *\n"
1519 " (constant float (2.0))\n"
1520 " (expression vec3 *\n"
1521 " (expression float dot\n"
1522 " (var_ref n)\n"
1523 " (var_ref i))\n"
1524 " (var_ref n)))))))\n"
1525 "\n"
1526 " (signature vec4\n"
1527 " (parameters\n"
1528 " (declare (in) vec4 i)\n"
1529 " (declare (in) vec4 n))\n"
1530 " ((return (expression vec4 -\n"
1531 " (var_ref i)\n"
1532 " (expression vec4 *\n"
1533 " (constant float (2.0))\n"
1534 " (expression vec4 *\n"
1535 " (expression float dot\n"
1536 " (var_ref n)\n"
1537 " (var_ref i))\n"
1538 " (var_ref n)))))))\n"
1539 "\n"
1540 "))\n"
1541};
1542
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07001543static const char *builtins_110_sign = {
1544 "((function sign\n"
1545 " (signature float\n"
1546 " (parameters\n"
1547 " (declare (in) float x))\n"
1548 " ((return (expression float sign (var_ref x)))))\n"
1549 "\n"
1550 " (signature vec2\n"
1551 " (parameters\n"
1552 " (declare (in) vec2 x))\n"
1553 " ((declare () vec2 t)\n"
1554 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float sign (swiz x (var_ref x))))\n"
1555 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float sign (swiz y (var_ref x))))\n"
1556 " (return (var_ref t))))\n"
1557 "\n"
1558 " (signature vec3\n"
1559 " (parameters\n"
1560 " (declare (in) vec3 x))\n"
1561 " ((declare () vec3 t)\n"
1562 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float sign (swiz x (var_ref x))))\n"
1563 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float sign (swiz y (var_ref x))))\n"
1564 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float sign (swiz z (var_ref x))))\n"
1565 " (return (var_ref t))))\n"
1566 "\n"
1567 " (signature vec4\n"
1568 " (parameters\n"
1569 " (declare (in) vec4 x))\n"
1570 " ((declare () vec4 t)\n"
1571 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float sign (swiz x (var_ref x))))\n"
1572 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float sign (swiz y (var_ref x))))\n"
1573 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float sign (swiz z (var_ref x))))\n"
1574 " (assign (constant bool (1)) (swiz w (var_ref t)) (expression float sign (swiz w (var_ref x))))\n"
1575 " (return (var_ref t))))\n"
1576 "))\n"
1577 "\n"
1578};
1579
1580static const char *builtins_110_sin = {
1581 "((function sin\n"
1582 " (signature float\n"
1583 " (parameters\n"
1584 " (declare (in) float angle))\n"
1585 " ((return (expression float sin (var_ref angle)))))\n"
1586 "\n"
1587 " (signature vec2\n"
1588 " (parameters\n"
1589 " (declare (in) vec2 angle))\n"
1590 " ((return (expression vec2 sin (var_ref angle)))))\n"
1591 "\n"
1592 " (signature vec3\n"
1593 " (parameters\n"
1594 " (declare (in) vec3 angle))\n"
1595 " ((return (expression vec3 sin (var_ref angle)))))\n"
1596 "\n"
1597 " (signature vec4\n"
1598 " (parameters\n"
1599 " (declare (in) vec4 angle))\n"
1600 " ((return (expression vec4 sin (var_ref angle)))))\n"
1601 "))\n"
1602};
1603
1604static const char *builtins_110_smoothstep = {
1605 "((function smoothstep\n"
1606 " (signature float\n"
1607 " (parameters\n"
1608 " (declare (in) float edge0)\n"
1609 " (declare (in) float edge1)\n"
1610 " (declare (in) float x))\n"
1611 " ((declare () float t)\n"
1612 "\n"
1613 " (assign (constant bool (1)) (var_ref t)\n"
1614 " (expression float max\n"
1615 " (expression float min\n"
1616 " (expression float / (expression float - (var_ref x) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1617 " (constant float (1.0)))\n"
1618 " (constant float (0.0))))\n"
1619 " (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"
1620 "\n"
1621 " (signature vec2\n"
1622 " (parameters\n"
1623 " (declare (in) float edge0)\n"
1624 " (declare (in) float edge1)\n"
1625 " (declare (in) vec2 x))\n"
1626 " ((declare () vec2 t)\n"
1627 " (declare () vec2 retval)\n"
1628 "\n"
1629 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
1630 " (expression float max\n"
1631 " (expression float min\n"
1632 " (expression float / (expression float - (swiz x (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1633 " (constant float (1.0)))\n"
1634 " (constant float (0.0))))\n"
1635 " (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"
1636 "\n"
1637 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
1638 " (expression float max\n"
1639 " (expression float min\n"
1640 " (expression float / (expression float - (swiz y (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1641 " (constant float (1.0)))\n"
1642 " (constant float (0.0))))\n"
1643 " (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"
1644 " (return (var_ref retval))\n"
1645 " ))\n"
1646 "\n"
1647 " (signature vec3\n"
1648 " (parameters\n"
1649 " (declare (in) float edge0)\n"
1650 " (declare (in) float edge1)\n"
1651 " (declare (in) vec3 x))\n"
1652 " ((declare () vec3 t)\n"
1653 " (declare () vec3 retval)\n"
1654 "\n"
1655 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
1656 " (expression float max\n"
1657 " (expression float min\n"
1658 " (expression float / (expression float - (swiz x (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1659 " (constant float (1.0)))\n"
1660 " (constant float (0.0))))\n"
1661 " (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"
1662 "\n"
1663 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
1664 " (expression float max\n"
1665 " (expression float min\n"
1666 " (expression float / (expression float - (swiz y (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1667 " (constant float (1.0)))\n"
1668 " (constant float (0.0))))\n"
1669 " (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"
1670 "\n"
1671 " (assign (constant bool (1)) (swiz z (var_ref t))\n"
1672 " (expression float max\n"
1673 " (expression float min\n"
1674 " (expression float / (expression float - (swiz z (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1675 " (constant float (1.0)))\n"
1676 " (constant float (0.0))))\n"
1677 " (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"
1678 " (return (var_ref retval))\n"
1679 " ))\n"
1680 "\n"
1681 "\n"
1682 " (signature vec4\n"
1683 " (parameters\n"
1684 " (declare (in) float edge0)\n"
1685 " (declare (in) float edge1)\n"
1686 " (declare (in) vec4 x))\n"
1687 " ((declare () vec4 t)\n"
1688 " (declare () vec4 retval)\n"
1689 "\n"
1690 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
1691 " (expression float max\n"
1692 " (expression float min\n"
1693 " (expression float / (expression float - (swiz x (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1694 " (constant float (1.0)))\n"
1695 " (constant float (0.0))))\n"
1696 " (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"
1697 "\n"
1698 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
1699 " (expression float max\n"
1700 " (expression float min\n"
1701 " (expression float / (expression float - (swiz y (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1702 " (constant float (1.0)))\n"
1703 " (constant float (0.0))))\n"
1704 " (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"
1705 "\n"
1706 " (assign (constant bool (1)) (swiz z (var_ref t))\n"
1707 " (expression float max\n"
1708 " (expression float min\n"
1709 " (expression float / (expression float - (swiz z (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1710 " (constant float (1.0)))\n"
1711 " (constant float (0.0))))\n"
1712 " (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"
1713 "\n"
1714 " (assign (constant bool (1)) (swiz w (var_ref t))\n"
1715 " (expression float max\n"
1716 " (expression float min\n"
1717 " (expression float / (expression float - (swiz w (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
1718 " (constant float (1.0)))\n"
1719 " (constant float (0.0))))\n"
1720 " (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"
1721 " (return (var_ref retval))\n"
1722 " ))\n"
1723 "\n"
1724 " (signature vec2\n"
1725 " (parameters\n"
1726 " (declare (in) vec2 edge0)\n"
1727 " (declare (in) vec2 edge1)\n"
1728 " (declare (in) vec2 x))\n"
1729 " ((declare () vec2 t)\n"
1730 " (declare () vec2 retval)\n"
1731 "\n"
1732 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
1733 " (expression float max\n"
1734 " (expression float min\n"
1735 " (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"
1736 " (constant float (1.0)))\n"
1737 " (constant float (0.0))))\n"
1738 " (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"
1739 "\n"
1740 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
1741 " (expression float max\n"
1742 " (expression float min\n"
1743 " (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"
1744 " (constant float (1.0)))\n"
1745 " (constant float (0.0))))\n"
1746 " (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"
1747 " (return (var_ref retval))\n"
1748 " ))\n"
1749 "\n"
1750 " (signature vec3\n"
1751 " (parameters\n"
1752 " (declare (in) vec3 edge0)\n"
1753 " (declare (in) vec3 edge1)\n"
1754 " (declare (in) vec3 x))\n"
1755 " ((declare () vec3 t)\n"
1756 " (declare () vec3 retval)\n"
1757 "\n"
1758 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
1759 " (expression float max\n"
1760 " (expression float min\n"
1761 " (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"
1762 " (constant float (1.0)))\n"
1763 " (constant float (0.0))))\n"
1764 " (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"
1765 "\n"
1766 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
1767 " (expression float max\n"
1768 " (expression float min\n"
1769 " (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"
1770 " (constant float (1.0)))\n"
1771 " (constant float (0.0))))\n"
1772 " (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"
1773 "\n"
1774 " (assign (constant bool (1)) (swiz z (var_ref t))\n"
1775 " (expression float max\n"
1776 " (expression float min\n"
1777 " (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"
1778 " (constant float (1.0)))\n"
1779 " (constant float (0.0))))\n"
1780 " (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"
1781 " (return (var_ref retval))\n"
1782 " ))\n"
1783 "\n"
1784 "\n"
1785 " (signature vec4\n"
1786 " (parameters\n"
1787 " (declare (in) vec4 edge0)\n"
1788 " (declare (in) vec4 edge1)\n"
1789 " (declare (in) vec4 x))\n"
1790 " ((declare () vec4 t)\n"
1791 " (declare () vec4 retval)\n"
1792 "\n"
1793 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
1794 " (expression float max\n"
1795 " (expression float min\n"
1796 " (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"
1797 " (constant float (1.0)))\n"
1798 " (constant float (0.0))))\n"
1799 " (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"
1800 "\n"
1801 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
1802 " (expression float max\n"
1803 " (expression float min\n"
1804 " (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"
1805 " (constant float (1.0)))\n"
1806 " (constant float (0.0))))\n"
1807 " (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"
1808 "\n"
1809 " (assign (constant bool (1)) (swiz z (var_ref t))\n"
1810 " (expression float max\n"
1811 " (expression float min\n"
1812 " (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"
1813 " (constant float (1.0)))\n"
1814 " (constant float (0.0))))\n"
1815 " (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"
1816 "\n"
1817 " (assign (constant bool (1)) (swiz w (var_ref t))\n"
1818 " (expression float max\n"
1819 " (expression float min\n"
1820 " (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"
1821 " (constant float (1.0)))\n"
1822 " (constant float (0.0))))\n"
1823 " (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"
1824 " (return (var_ref retval))\n"
1825 " ))\n"
1826 "\n"
1827 "))\n"
1828 "\n"
1829};
1830
Kenneth Graunkeb3262122010-04-28 23:01:33 -07001831static const char *builtins_110_sqrt = {
1832 "((function sqrt\n"
1833 " (signature float\n"
1834 " (parameters\n"
1835 " (declare (in) float arg0))\n"
1836 " ((return (expression float sqrt (var_ref arg0)))))\n"
1837 "\n"
1838 " (signature vec2\n"
1839 " (parameters\n"
1840 " (declare (in) vec2 arg0))\n"
1841 " ((return (expression vec2 sqrt (var_ref arg0)))))\n"
1842 "\n"
1843 " (signature vec3\n"
1844 " (parameters\n"
1845 " (declare (in) vec3 arg0))\n"
1846 " ((return (expression vec3 sqrt (var_ref arg0)))))\n"
1847 "\n"
1848 " (signature vec4\n"
1849 " (parameters\n"
1850 " (declare (in) vec4 arg0))\n"
1851 " ((return (expression vec4 sqrt (var_ref arg0)))))\n"
1852 "))\n"
1853};
Eric Anholtfeeb43b2010-04-08 15:02:59 -07001854
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07001855static const char *builtins_110_step = {
1856 "((function step\n"
1857 " (signature float\n"
1858 " (parameters\n"
1859 " (declare (in) float edge)\n"
1860 " (declare (in) float x))\n"
1861 " ((return (expression float b2f (expression bool < (var_ref x) (var_ref edge))))))\n"
1862 "\n"
1863 " (signature vec2\n"
1864 " (parameters\n"
1865 " (declare (in) float edge)\n"
1866 " (declare (in) vec2 x))\n"
1867 " ((declare () vec2 t)\n"
1868 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool < (swiz x (var_ref x))(var_ref edge))))\n"
1869 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(var_ref edge))))\n"
1870 " (return (var_ref t))))\n"
1871 "\n"
1872 " (signature vec3\n"
1873 " (parameters\n"
1874 " (declare (in) float edge)\n"
1875 " (declare (in) vec3 x))\n"
1876 " ((declare () vec3 t)\n"
1877 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool < (swiz x (var_ref x))(var_ref edge))))\n"
1878 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(var_ref edge))))\n"
1879 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool < (swiz z (var_ref x))(var_ref edge))))\n"
1880 " (return (var_ref t))))\n"
1881 "\n"
1882 " (signature vec4\n"
1883 " (parameters\n"
1884 " (declare (in) float edge)\n"
1885 " (declare (in) vec4 x))\n"
1886 " ((declare () vec4 t)\n"
1887 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool < (swiz x (var_ref x))(var_ref edge))))\n"
1888 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool < (swiz y (var_ref x))(var_ref edge))))\n"
1889 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool < (swiz z (var_ref x))(var_ref edge))))\n"
1890 " (assign (constant bool (1)) (swiz w (var_ref t)) (expression float b2f (expression bool < (swiz w (var_ref x))(var_ref edge))))\n"
1891 " (return (var_ref t))))\n"
1892 "\n"
1893 " (signature vec2\n"
1894 " (parameters\n"
1895 " (declare (in) vec2 edge)\n"
1896 " (declare (in) vec2 x))\n"
1897 " ((declare () vec2 t)\n"
1898 " (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"
1899 " (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"
1900 " (return (var_ref t))))\n"
1901 "\n"
1902 " (signature vec3\n"
1903 " (parameters\n"
1904 " (declare (in) vec3 edge)\n"
1905 " (declare (in) vec3 x))\n"
1906 " ((declare () vec3 t)\n"
1907 " (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"
1908 " (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"
1909 " (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"
1910 " (return (var_ref t))))\n"
1911 "\n"
1912 " (signature vec4\n"
1913 " (parameters\n"
1914 " (declare (in) vec4 edge)\n"
1915 " (declare (in) vec4 x))\n"
1916 " ((declare () vec4 t)\n"
1917 " (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"
1918 " (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"
1919 " (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"
1920 " (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"
1921 " (return (var_ref t))))\n"
1922 "))\n"
1923 "\n"
1924};
1925
1926static const char *builtins_110_tan = {
1927 "((function tan\n"
1928 " (signature float\n"
1929 " (parameters\n"
1930 " (declare (in) float angle))\n"
1931 " ((return (expression float / (expression float sin (var_ref angle)) (expression float cos (var_ref angle))))))\n"
1932 "\n"
1933 " (signature vec2\n"
1934 " (parameters\n"
1935 " (declare (in) vec2 angle))\n"
1936 " ((return (expression float / (expression float sin (var_ref angle)) (expression vec2 cos (var_ref angle))))))\n"
1937 "\n"
1938 " (signature vec3\n"
1939 " (parameters\n"
1940 " (declare (in) vec3 angle))\n"
1941 " ((return (expression float / (expression float sin (var_ref angle)) (expression vec3 cos (var_ref angle))))))\n"
1942 "\n"
1943 " (signature vec4\n"
1944 " (parameters\n"
1945 " (declare (in) vec4 angle))\n"
1946 " ((return (expression float / (expression float sin (var_ref angle)) (expression vec4 cos (var_ref angle))))))\n"
1947 "))\n"
1948};
1949
Kenneth Graunke4b0029a2010-06-08 16:29:17 -07001950static const char *builtins_110_textures = {
1951 "((function texture1D\n"
1952 " (signature vec4\n"
1953 " (parameters\n"
1954 " (declare (in) sampler1D sampler)\n"
1955 " (declare (in) float P) )\n"
1956 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
1957 "\n"
1958 ")\n"
1959 " (function texture1DLod\n"
1960 " (signature vec4\n"
1961 " (parameters\n"
1962 " (declare (in) sampler1D sampler)\n"
1963 " (declare (in) float P) \n"
1964 " (declare (in) float lod) )\n"
1965 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
1966 "\n"
1967 ")\n"
1968 " (function texture1DProj\n"
1969 " (signature vec4\n"
1970 " (parameters\n"
1971 " (declare (in) sampler1D sampler)\n"
1972 " (declare (in) vec2 P) )\n"
1973 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
1974 "\n"
1975 " (signature vec4\n"
1976 " (parameters\n"
1977 " (declare (in) sampler1D sampler)\n"
1978 " (declare (in) vec4 P) )\n"
1979 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
1980 "\n"
1981 ")\n"
1982 " (function texture1DProjLod\n"
1983 " (signature vec4\n"
1984 " (parameters\n"
1985 " (declare (in) sampler1D sampler)\n"
1986 " (declare (in) vec2 P) \n"
1987 " (declare (in) float lod) )\n"
1988 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
1989 "\n"
1990 " (signature vec4\n"
1991 " (parameters\n"
1992 " (declare (in) sampler1D sampler)\n"
1993 " (declare (in) vec4 P) \n"
1994 " (declare (in) float lod) )\n"
1995 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
1996 "\n"
1997 ")\n"
1998 " (function texture2D\n"
1999 " (signature vec4\n"
2000 " (parameters\n"
2001 " (declare (in) sampler2D sampler)\n"
2002 " (declare (in) vec2 P) )\n"
2003 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2004 "\n"
2005 ")\n"
2006 "(function texture2DLod\n"
2007 " (signature vec4\n"
2008 " (parameters\n"
2009 " (declare (in) sampler2D sampler)\n"
2010 " (declare (in) vec2 P) \n"
2011 " (declare (in) float lod) )\n"
2012 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
2013 "\n"
2014 ")\n"
2015 " (function texture2DProj\n"
2016 " (signature vec4\n"
2017 " (parameters\n"
2018 " (declare (in) sampler2D sampler)\n"
2019 " (declare (in) vec3 P) )\n"
2020 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
2021 "\n"
2022 " (signature vec4\n"
2023 " (parameters\n"
2024 " (declare (in) sampler2D sampler)\n"
2025 " (declare (in) vec4 P) )\n"
2026 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
2027 "\n"
2028 ")\n"
2029 " (function texture2DProjLod\n"
2030 " (signature vec4\n"
2031 " (parameters\n"
2032 " (declare (in) sampler2D sampler)\n"
2033 " (declare (in) vec3 P) \n"
2034 " (declare (in) float lod) )\n"
2035 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
2036 "\n"
2037 " (signature vec4\n"
2038 " (parameters\n"
2039 " (declare (in) sampler2D sampler)\n"
2040 " (declare (in) vec4 P) \n"
2041 " (declare (in) float lod) )\n"
2042 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
2043 "\n"
2044 ")\n"
2045 " (function texture3D\n"
2046 " (signature vec4\n"
2047 " (parameters\n"
2048 " (declare (in) sampler3D sampler)\n"
2049 " (declare (in) vec3 P) )\n"
2050 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2051 "\n"
2052 ")\n"
2053 " (function texture3DLod\n"
2054 " (signature vec4\n"
2055 " (parameters\n"
2056 " (declare (in) sampler3D sampler)\n"
2057 " (declare (in) vec3 P) \n"
2058 " (declare (in) float lod) )\n"
2059 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
2060 "\n"
2061 ")\n"
2062 " (function texture3DProj\n"
2063 " (signature vec4\n"
2064 " (parameters\n"
2065 " (declare (in) sampler3D sampler)\n"
2066 " (declare (in) vec4 P) )\n"
2067 " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
2068 "\n"
2069 ")\n"
2070 " (function texture3DProjLod\n"
2071 " (signature vec4\n"
2072 " (parameters\n"
2073 " (declare (in) sampler3D sampler)\n"
2074 " (declare (in) vec4 P) \n"
2075 " (declare (in) float lod) )\n"
2076 " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
2077 "\n"
2078 ")\n"
2079 " (function textureCube\n"
2080 " (signature vec4\n"
2081 " (parameters\n"
2082 " (declare (in) samplerCube sampler)\n"
2083 " (declare (in) vec3 P) )\n"
2084 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2085 "\n"
2086 ")\n"
2087 " (function textureCubeLod\n"
2088 " (signature vec4\n"
2089 " (parameters\n"
2090 " (declare (in) samplerCube sampler)\n"
2091 " (declare (in) vec3 P) \n"
2092 " (declare (in) float lod) )\n"
2093 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
2094 "\n"
2095 ")\n"
2096 " (function shadow1D\n"
2097 " (signature vec4\n"
2098 " (parameters\n"
2099 " (declare (in) sampler1DShadow sampler)\n"
2100 " (declare (in) vec3 P) )\n"
2101 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
2102 "\n"
2103 ")\n"
2104 " (function shadow1DLod\n"
2105 " (signature vec4\n"
2106 " (parameters\n"
2107 " (declare (in) sampler1DShadow sampler)\n"
2108 " (declare (in) vec3 P) \n"
2109 " (declare (in) float lod) )\n"
2110 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))\n"
2111 "\n"
2112 ")\n"
2113 " (function shadow1DProj\n"
2114 " (signature vec4\n"
2115 " (parameters\n"
2116 " (declare (in) sampler1DShadow sampler)\n"
2117 " (declare (in) vec4 P) )\n"
2118 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) ))))\n"
2119 "\n"
2120 ")\n"
2121 " (function shadow1DProjLod\n"
2122 " (signature vec4\n"
2123 " (parameters\n"
2124 " (declare (in) sampler1DShadow sampler)\n"
2125 " (declare (in) vec4 P) \n"
2126 " (declare (in) float lod) )\n"
2127 " ((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"
2128 "\n"
2129 ")\n"
2130 " (function shadow2D\n"
2131 " (signature vec4\n"
2132 " (parameters\n"
2133 " (declare (in) sampler2DShadow sampler)\n"
2134 " (declare (in) vec3 P) )\n"
2135 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
2136 "\n"
2137 ")\n"
2138 " (function shadow2DLod\n"
2139 " (signature vec4\n"
2140 " (parameters\n"
2141 " (declare (in) sampler2DShadow sampler)\n"
2142 " (declare (in) vec3 P) \n"
2143 " (declare (in) float lod) )\n"
2144 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))\n"
2145 "\n"
2146 ")\n"
2147 " (function shadow2DProj\n"
2148 " (signature vec4\n"
2149 " (parameters\n"
2150 " (declare (in) sampler2DShadow sampler)\n"
2151 " (declare (in) vec4 P) )\n"
2152 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) ))))\n"
2153 "\n"
2154 ")\n"
2155 " (function shadow2DProjLod\n"
2156 " (signature vec4\n"
2157 " (parameters\n"
2158 " (declare (in) sampler2DShadow sampler)\n"
2159 " (declare (in) vec4 P) \n"
2160 " (declare (in) float lod) )\n"
2161 " ((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"
2162 "\n"
2163 "))\n"
2164};
2165
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002166static const char *functions_for_110 [] = {
2167 builtins_110_abs,
2168 builtins_110_all,
2169 builtins_110_any,
Eric Anholt5e58e542010-05-19 12:19:54 -07002170 builtins_110_asin,
Eric Anholt60fa1a92010-05-19 12:44:23 -07002171 builtins_110_atan,
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002172 builtins_110_ceil,
2173 builtins_110_clamp,
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002174 builtins_110_cos,
2175 builtins_110_cross,
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002176 builtins_110_degrees,
2177 builtins_110_dot,
2178 builtins_110_equal,
2179 builtins_110_exp,
2180 builtins_110_exp2,
2181 builtins_110_floor,
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002182 builtins_110_fract,
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002183 builtins_110_greaterThan,
2184 builtins_110_greaterThanEqual,
2185 builtins_110_inversesqrt,
2186 builtins_110_length,
2187 builtins_110_lessThan,
2188 builtins_110_lessThanEqual,
2189 builtins_110_log,
2190 builtins_110_log2,
2191 builtins_110_max,
2192 builtins_110_min,
2193 builtins_110_mix,
2194 builtins_110_mod,
2195 builtins_110_normalize,
2196 builtins_110_not,
2197 builtins_110_notEqual,
2198 builtins_110_pow,
2199 builtins_110_radians,
Eric Anholt5b9ac872010-05-19 14:01:33 -07002200 builtins_110_reflect,
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002201 builtins_110_sign,
2202 builtins_110_sin,
2203 builtins_110_smoothstep,
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002204 builtins_110_sqrt,
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002205 builtins_110_step,
2206 builtins_110_tan,
Kenneth Graunke4b0029a2010-06-08 16:29:17 -07002207 builtins_110_textures,
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002208};
Eric Anholtfeeb43b2010-04-08 15:02:59 -07002209
Kenneth Graunke4b0029a2010-06-08 16:29:17 -07002210/* 110_fs builtins */
2211
2212static const char *builtins_110_fs_textures = {
2213 "((function texture1D\n"
2214 " (signature vec4\n"
2215 " (parameters\n"
2216 " (declare (in) sampler1D sampler)\n"
2217 " (declare (in) float P) \n"
2218 " (declare (in) float bias) )\n"
2219 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
2220 "\n"
2221 ")\n"
2222 " (function texture1DProj\n"
2223 " (signature vec4\n"
2224 " (parameters\n"
2225 " (declare (in) sampler1D sampler)\n"
2226 " (declare (in) vec2 P) \n"
2227 " (declare (in) float bias) )\n"
2228 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
2229 "\n"
2230 " (signature vec4\n"
2231 " (parameters\n"
2232 " (declare (in) sampler1D sampler)\n"
2233 " (declare (in) vec4 P) \n"
2234 " (declare (in) float bias) )\n"
2235 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
2236 "\n"
2237 ")\n"
2238 " (function texture2D\n"
2239 " (signature vec4\n"
2240 " (parameters\n"
2241 " (declare (in) sampler2D sampler)\n"
2242 " (declare (in) vec2 P) \n"
2243 " (declare (in) float bias) )\n"
2244 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
2245 "\n"
2246 ")\n"
2247 " (function texture2DProj\n"
2248 " (signature vec4\n"
2249 " (parameters\n"
2250 " (declare (in) sampler2D sampler)\n"
2251 " (declare (in) vec3 P) \n"
2252 " (declare (in) float bias) )\n"
2253 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
2254 "\n"
2255 " (signature vec4\n"
2256 " (parameters\n"
2257 " (declare (in) sampler2D sampler)\n"
2258 " (declare (in) vec4 P) \n"
2259 " (declare (in) float bias) )\n"
2260 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
2261 "\n"
2262 ")\n"
2263 " (function texture3D\n"
2264 " (signature vec4\n"
2265 " (parameters\n"
2266 " (declare (in) sampler3D sampler)\n"
2267 " (declare (in) vec3 P) \n"
2268 " (declare (in) float bias) )\n"
2269 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
2270 "\n"
2271 ")\n"
2272 " (function texture3DProj\n"
2273 " (signature vec4\n"
2274 " (parameters\n"
2275 " (declare (in) sampler3D sampler)\n"
2276 " (declare (in) vec4 P) \n"
2277 " (declare (in) float bias) )\n"
2278 " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
2279 "\n"
2280 ")\n"
2281 " (function textureCube\n"
2282 " (signature vec4\n"
2283 " (parameters\n"
2284 " (declare (in) samplerCube sampler)\n"
2285 " (declare (in) vec3 P) \n"
2286 " (declare (in) float bias) )\n"
2287 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
2288 "\n"
2289 ")\n"
2290 " (function shadow1D\n"
2291 " (signature vec4\n"
2292 " (parameters\n"
2293 " (declare (in) sampler1DShadow sampler)\n"
2294 " (declare (in) vec3 P) \n"
2295 " (declare (in) float bias) )\n"
2296 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))\n"
2297 "\n"
2298 ")\n"
2299 " (function shadow1DProj\n"
2300 " (signature vec4\n"
2301 " (parameters\n"
2302 " (declare (in) sampler1DShadow sampler)\n"
2303 " (declare (in) vec4 P) \n"
2304 " (declare (in) float bias) )\n"
2305 " ((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"
2306 "\n"
2307 ")\n"
2308 " (function shadow2D\n"
2309 " (signature vec4\n"
2310 " (parameters\n"
2311 " (declare (in) sampler2DShadow sampler)\n"
2312 " (declare (in) vec3 P) \n"
2313 " (declare (in) float bias) )\n"
2314 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))\n"
2315 "\n"
2316 ")\n"
2317 " (function shadow2DProj\n"
2318 " (signature vec4\n"
2319 " (parameters\n"
2320 " (declare (in) sampler2DShadow sampler)\n"
2321 " (declare (in) vec4 P) \n"
2322 " (declare (in) float bias) )\n"
2323 " ((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"
2324 "\n"
2325 "))\n"
2326};
2327
2328static const char *functions_for_110_fs [] = {
2329 builtins_110_fs_textures,
2330};
2331
2332/* 110_vs builtins */
Eric Anholtda46e5f2010-05-19 13:57:01 -07002333
2334static const char *builtins_110_vs_ftransform = {
2335 "((function ftransform\n"
2336 " (signature vec4\n"
2337 " (parameters)\n"
2338 " ((return (expression vec4 *\n"
2339 " (var_ref gl_ModelViewProjectionMatrix)\n"
2340 " (var_ref gl_Vertex)))))\n"
2341 "))\n"
2342};
2343
2344static const char *functions_for_110_vs [] = {
2345 builtins_110_vs_ftransform,
2346};
2347
Kenneth Graunke4b0029a2010-06-08 16:29:17 -07002348/* 130 builtins */
Eric Anholtfeeb43b2010-04-08 15:02:59 -07002349
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002350static const char *builtins_130_equal = {
2351 "((function equal\n"
2352 " (signature bvec2\n"
2353 " (parameters\n"
2354 " (declare (in) uvec2 arg0)\n"
2355 " (declare (in) uvec2 arg1))\n"
2356 " ((declare () bvec2 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002357 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2358 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002359 " (return (var_ref temp))))\n"
2360 "\n"
2361 " (signature bvec3\n"
2362 " (parameters\n"
2363 " (declare (in) uvec3 arg0)\n"
2364 " (declare (in) uvec3 arg1))\n"
2365 " ((declare () bvec3 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002366 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2367 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2368 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002369 " (return (var_ref temp))))\n"
2370 "\n"
2371 " (signature bvec4\n"
2372 " (parameters\n"
2373 " (declare (in) uvec4 arg0)\n"
2374 " (declare (in) uvec4 arg1))\n"
2375 " ((declare () bvec4 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002376 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2377 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2378 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
2379 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool == (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002380 " (return (var_ref temp))))\n"
2381 "))\n"
2382};
Eric Anholtfeeb43b2010-04-08 15:02:59 -07002383
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002384static const char *builtins_130_greaterThan = {
2385 "((function greaterThan\n"
2386 " (signature bvec2\n"
2387 " (parameters\n"
2388 " (declare (in) uvec2 arg0)\n"
2389 " (declare (in) uvec2 arg1))\n"
2390 " ((declare () bvec2 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002391 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2392 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002393 " (return (var_ref temp))))\n"
2394 "\n"
2395 " (signature bvec3\n"
2396 " (parameters\n"
2397 " (declare (in) uvec3 arg0)\n"
2398 " (declare (in) uvec3 arg1))\n"
2399 " ((declare () bvec3 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002400 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2401 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2402 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002403 " (return (var_ref temp))))\n"
2404 "\n"
2405 " (signature bvec4\n"
2406 " (parameters\n"
2407 " (declare (in) uvec4 arg0)\n"
2408 " (declare (in) uvec4 arg1))\n"
2409 " ((declare () bvec4 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002410 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2411 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2412 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
2413 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool > (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002414 " (return (var_ref temp))))\n"
2415 "))\n"
2416};
Eric Anholtfeeb43b2010-04-08 15:02:59 -07002417
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002418static const char *builtins_130_greaterThanEqual = {
2419 "((function greaterThanEqual\n"
2420 " (signature bvec2\n"
2421 " (parameters\n"
2422 " (declare (in) uvec2 arg0)\n"
2423 " (declare (in) uvec2 arg1))\n"
2424 " ((declare () bvec2 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002425 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2426 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002427 " (return (var_ref temp))))\n"
2428 "\n"
2429 " (signature bvec3\n"
2430 " (parameters\n"
2431 " (declare (in) uvec3 arg0)\n"
2432 " (declare (in) uvec3 arg1))\n"
2433 " ((declare () bvec3 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002434 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2435 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2436 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002437 " (return (var_ref temp))))\n"
2438 "\n"
2439 " (signature bvec4\n"
2440 " (parameters\n"
2441 " (declare (in) uvec4 arg0)\n"
2442 " (declare (in) uvec4 arg1))\n"
2443 " ((declare () bvec4 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002444 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2445 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2446 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
2447 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool >= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002448 " (return (var_ref temp))))\n"
2449 "))\n"
2450};
Eric Anholtfeeb43b2010-04-08 15:02:59 -07002451
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002452static const char *builtins_130_lessThan = {
2453 "((function lessThan\n"
2454 " (signature bvec2\n"
2455 " (parameters\n"
2456 " (declare (in) uvec2 arg0)\n"
2457 " (declare (in) uvec2 arg1))\n"
2458 " ((declare () bvec2 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002459 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2460 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002461 " (return (var_ref temp))))\n"
2462 "\n"
2463 " (signature bvec3\n"
2464 " (parameters\n"
2465 " (declare (in) uvec3 arg0)\n"
2466 " (declare (in) uvec3 arg1))\n"
2467 " ((declare () bvec3 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002468 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2469 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2470 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002471 " (return (var_ref temp))))\n"
2472 "\n"
2473 " (signature bvec4\n"
2474 " (parameters\n"
2475 " (declare (in) uvec4 arg0)\n"
2476 " (declare (in) uvec4 arg1))\n"
2477 " ((declare () bvec4 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002478 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2479 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2480 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
2481 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool < (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002482 " (return (var_ref temp))))\n"
2483 "))\n"
2484};
Eric Anholtfeeb43b2010-04-08 15:02:59 -07002485
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002486static const char *builtins_130_lessThanEqual = {
2487 "((function lessThanEqual\n"
2488 " (signature bvec2\n"
2489 " (parameters\n"
2490 " (declare (in) uvec2 arg0)\n"
2491 " (declare (in) uvec2 arg1))\n"
2492 " ((declare () bvec2 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002493 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2494 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002495 " (return (var_ref temp))))\n"
2496 "\n"
2497 " (signature bvec3\n"
2498 " (parameters\n"
2499 " (declare (in) uvec3 arg0)\n"
2500 " (declare (in) uvec3 arg1))\n"
2501 " ((declare () bvec3 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002502 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2503 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2504 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002505 " (return (var_ref temp))))\n"
2506 "\n"
2507 " (signature bvec4\n"
2508 " (parameters\n"
2509 " (declare (in) uvec4 arg0)\n"
2510 " (declare (in) uvec4 arg1))\n"
2511 " ((declare () bvec4 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002512 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2513 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2514 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
2515 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool <= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002516 " (return (var_ref temp))))\n"
2517 "))\n"
2518};
Eric Anholtfeeb43b2010-04-08 15:02:59 -07002519
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002520static const char *builtins_130_notEqual = {
2521 "((function notEqual\n"
2522 " (signature bvec2\n"
2523 " (parameters\n"
2524 " (declare (in) uvec2 arg0)\n"
2525 " (declare (in) uvec2 arg1))\n"
2526 " ((declare () bvec2 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002527 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2528 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002529 " (return (var_ref temp))))\n"
2530 "\n"
2531 " (signature bvec3\n"
2532 " (parameters\n"
2533 " (declare (in) uvec3 arg0)\n"
2534 " (declare (in) uvec3 arg1))\n"
2535 " ((declare () bvec3 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002536 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2537 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2538 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002539 " (return (var_ref temp))))\n"
2540 "\n"
2541 " (signature bvec4\n"
2542 " (parameters\n"
2543 " (declare (in) uvec4 arg0)\n"
2544 " (declare (in) uvec4 arg1))\n"
2545 " ((declare () bvec4 temp)\n"
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002546 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2547 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2548 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
2549 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool != (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
Kenneth Graunkeb3262122010-04-28 23:01:33 -07002550 " (return (var_ref temp))))\n"
2551 "))\n"
2552};
Eric Anholtfeeb43b2010-04-08 15:02:59 -07002553
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07002554static const char *builtins_130_sign = {
2555 "((function sign\n"
2556 " (signature int\n"
2557 " (parameters\n"
2558 " (declare (in) int x))\n"
2559 " ((return (expression int / (var_ref x) (expression int abs (var_ref x))))))\n"
2560 "\n"
2561 " (signature ivec2\n"
2562 " (parameters\n"
2563 " (declare (in) ivec2 x))\n"
2564 " ((declare () ivec2 t)\n"
2565 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression int sign (swiz x (var_ref x))))\n"
2566 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression int sign (swiz y (var_ref x))))\n"
2567 " (return (var_ref t))))\n"
2568 "\n"
2569 " (signature ivec3\n"
2570 " (parameters\n"
2571 " (declare (in) ivec3 x))\n"
2572 " ((declare () ivec3 t)\n"
2573 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression int sign (swiz x (var_ref x))))\n"
2574 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression int sign (swiz y (var_ref x))))\n"
2575 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression int sign (swiz z (var_ref x))))\n"
2576 " (return (var_ref t))))\n"
2577 "\n"
2578 " (signature ivec4\n"
2579 " (parameters\n"
2580 " (declare (in) ivec4 x))\n"
2581 " ((declare () ivec4 t)\n"
2582 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression int sign (swiz x (var_ref x))))\n"
2583 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression int sign (swiz y (var_ref x))))\n"
2584 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression int sign (swiz z (var_ref x))))\n"
2585 " (assign (constant bool (1)) (swiz w (var_ref t)) (expression int sign (swiz w (var_ref x))))\n"
2586 " (return (var_ref t))))\n"
2587 "))\n"
2588 "\n"
2589};
2590
Kenneth Graunke4b0029a2010-06-08 16:29:17 -07002591static const char *builtins_130_texelFetch = {
2592 "((function texelFetch\n"
2593 " (signature vec4\n"
2594 " (parameters\n"
2595 " (declare (in) sampler1D sampler)\n"
2596 " (declare (in) int P) \n"
2597 " (declare (in) int lod) )\n"
2598 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
2599 "\n"
2600 " (signature ivec4\n"
2601 " (parameters\n"
2602 " (declare (in) isampler1D sampler)\n"
2603 " (declare (in) int P) \n"
2604 " (declare (in) int lod) )\n"
2605 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
2606 "\n"
2607 " (signature uvec4\n"
2608 " (parameters\n"
2609 " (declare (in) usampler1D sampler)\n"
2610 " (declare (in) int P) \n"
2611 " (declare (in) int lod) )\n"
2612 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
2613 "\n"
2614 " (signature vec4\n"
2615 " (parameters\n"
2616 " (declare (in) sampler2D sampler)\n"
2617 " (declare (in) ivec2 P) \n"
2618 " (declare (in) int lod) )\n"
2619 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
2620 "\n"
2621 " (signature ivec4\n"
2622 " (parameters\n"
2623 " (declare (in) isampler2D sampler)\n"
2624 " (declare (in) ivec2 P) \n"
2625 " (declare (in) int lod) )\n"
2626 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
2627 "\n"
2628 " (signature uvec4\n"
2629 " (parameters\n"
2630 " (declare (in) usampler2D sampler)\n"
2631 " (declare (in) ivec2 P) \n"
2632 " (declare (in) int lod) )\n"
2633 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
2634 "\n"
2635 " (signature vec4\n"
2636 " (parameters\n"
2637 " (declare (in) sampler3D sampler)\n"
2638 " (declare (in) ivec3 P) \n"
2639 " (declare (in) int lod) )\n"
2640 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
2641 "\n"
2642 " (signature ivec4\n"
2643 " (parameters\n"
2644 " (declare (in) isampler3D sampler)\n"
2645 " (declare (in) ivec3 P) \n"
2646 " (declare (in) int lod) )\n"
2647 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
2648 "\n"
2649 " (signature uvec4\n"
2650 " (parameters\n"
2651 " (declare (in) usampler3D sampler)\n"
2652 " (declare (in) ivec3 P) \n"
2653 " (declare (in) int lod) )\n"
2654 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
2655 "\n"
2656 " (signature vec4\n"
2657 " (parameters\n"
2658 " (declare (in) sampler1DArray sampler)\n"
2659 " (declare (in) ivec2 P) \n"
2660 " (declare (in) int lod) )\n"
2661 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
2662 "\n"
2663 " (signature ivec4\n"
2664 " (parameters\n"
2665 " (declare (in) isampler1DArray sampler)\n"
2666 " (declare (in) ivec2 P) \n"
2667 " (declare (in) int lod) )\n"
2668 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
2669 "\n"
2670 " (signature uvec4\n"
2671 " (parameters\n"
2672 " (declare (in) usampler1DArray sampler)\n"
2673 " (declare (in) ivec2 P) \n"
2674 " (declare (in) int lod) )\n"
2675 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
2676 "\n"
2677 " (signature vec4\n"
2678 " (parameters\n"
2679 " (declare (in) sampler2DArray sampler)\n"
2680 " (declare (in) ivec3 P) \n"
2681 " (declare (in) int lod) )\n"
2682 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
2683 "\n"
2684 " (signature ivec4\n"
2685 " (parameters\n"
2686 " (declare (in) isampler2DArray sampler)\n"
2687 " (declare (in) ivec3 P) \n"
2688 " (declare (in) int lod) )\n"
2689 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
2690 "\n"
2691 " (signature uvec4\n"
2692 " (parameters\n"
2693 " (declare (in) usampler2DArray sampler)\n"
2694 " (declare (in) ivec3 P) \n"
2695 " (declare (in) int lod) )\n"
2696 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
2697 "\n"
2698 "))\n"
2699};
2700
2701static const char *builtins_130_texture = {
2702 "((function texture\n"
2703 " (signature vec4\n"
2704 " (parameters\n"
2705 " (declare (in) sampler1D sampler)\n"
2706 " (declare (in) float P) )\n"
2707 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2708 "\n"
2709 " (signature ivec4\n"
2710 " (parameters\n"
2711 " (declare (in) isampler1D sampler)\n"
2712 " (declare (in) float P) )\n"
2713 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2714 "\n"
2715 " (signature uvec4\n"
2716 " (parameters\n"
2717 " (declare (in) usampler1D sampler)\n"
2718 " (declare (in) float P) )\n"
2719 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2720 "\n"
2721 " (signature vec4\n"
2722 " (parameters\n"
2723 " (declare (in) sampler2D sampler)\n"
2724 " (declare (in) vec2 P) )\n"
2725 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2726 "\n"
2727 " (signature ivec4\n"
2728 " (parameters\n"
2729 " (declare (in) isampler2D sampler)\n"
2730 " (declare (in) vec2 P) )\n"
2731 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2732 "\n"
2733 " (signature uvec4\n"
2734 " (parameters\n"
2735 " (declare (in) usampler2D sampler)\n"
2736 " (declare (in) vec2 P) )\n"
2737 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2738 "\n"
2739 " (signature vec4\n"
2740 " (parameters\n"
2741 " (declare (in) sampler3D sampler)\n"
2742 " (declare (in) vec3 P) )\n"
2743 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2744 "\n"
2745 " (signature ivec4\n"
2746 " (parameters\n"
2747 " (declare (in) isampler3D sampler)\n"
2748 " (declare (in) vec3 P) )\n"
2749 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2750 "\n"
2751 " (signature uvec4\n"
2752 " (parameters\n"
2753 " (declare (in) usampler3D sampler)\n"
2754 " (declare (in) vec3 P) )\n"
2755 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2756 "\n"
2757 " (signature vec4\n"
2758 " (parameters\n"
2759 " (declare (in) samplerCube sampler)\n"
2760 " (declare (in) vec3 P) )\n"
2761 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2762 "\n"
2763 " (signature ivec4\n"
2764 " (parameters\n"
2765 " (declare (in) isamplerCube sampler)\n"
2766 " (declare (in) vec3 P) )\n"
2767 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2768 "\n"
2769 " (signature uvec4\n"
2770 " (parameters\n"
2771 " (declare (in) usamplerCube sampler)\n"
2772 " (declare (in) vec3 P) )\n"
2773 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2774 "\n"
2775 " (signature vec4\n"
2776 " (parameters\n"
2777 " (declare (in) sampler1DArray sampler)\n"
2778 " (declare (in) vec2 P) )\n"
2779 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2780 "\n"
2781 " (signature ivec4\n"
2782 " (parameters\n"
2783 " (declare (in) isampler1DArray sampler)\n"
2784 " (declare (in) vec2 P) )\n"
2785 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2786 "\n"
2787 " (signature uvec4\n"
2788 " (parameters\n"
2789 " (declare (in) usampler1DArray sampler)\n"
2790 " (declare (in) vec2 P) )\n"
2791 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2792 "\n"
2793 " (signature vec4\n"
2794 " (parameters\n"
2795 " (declare (in) sampler2DArray sampler)\n"
2796 " (declare (in) vec3 P) )\n"
2797 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2798 "\n"
2799 " (signature ivec4\n"
2800 " (parameters\n"
2801 " (declare (in) isampler2DArray sampler)\n"
2802 " (declare (in) vec3 P) )\n"
2803 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2804 "\n"
2805 " (signature uvec4\n"
2806 " (parameters\n"
2807 " (declare (in) usampler2DArray sampler)\n"
2808 " (declare (in) vec3 P) )\n"
2809 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2810 "\n"
2811 "))\n"
2812};
2813
2814static const char *builtins_130_textureGrad = {
2815 "((function textureGrad\n"
2816 " (signature vec4\n"
2817 " (parameters\n"
2818 " (declare (in) sampler1D sampler)\n"
2819 " (declare (in) float P) \n"
2820 " (declare (in) float dPdx) \n"
2821 " (declare (in) float dPdy) )\n"
2822 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
2823 "\n"
2824 " (signature ivec4\n"
2825 " (parameters\n"
2826 " (declare (in) isampler1D sampler)\n"
2827 " (declare (in) float P) \n"
2828 " (declare (in) float dPdx) \n"
2829 " (declare (in) float dPdy) )\n"
2830 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
2831 "\n"
2832 " (signature uvec4\n"
2833 " (parameters\n"
2834 " (declare (in) usampler1D sampler)\n"
2835 " (declare (in) float P) \n"
2836 " (declare (in) float dPdx) \n"
2837 " (declare (in) float dPdy) )\n"
2838 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
2839 "\n"
2840 " (signature vec4\n"
2841 " (parameters\n"
2842 " (declare (in) sampler2D sampler)\n"
2843 " (declare (in) vec2 P) \n"
2844 " (declare (in) vec2 dPdx) \n"
2845 " (declare (in) vec2 dPdy) )\n"
2846 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
2847 "\n"
2848 " (signature ivec4\n"
2849 " (parameters\n"
2850 " (declare (in) isampler2D sampler)\n"
2851 " (declare (in) vec2 P) \n"
2852 " (declare (in) vec2 dPdx) \n"
2853 " (declare (in) vec2 dPdy) )\n"
2854 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
2855 "\n"
2856 " (signature uvec4\n"
2857 " (parameters\n"
2858 " (declare (in) usampler2D sampler)\n"
2859 " (declare (in) vec2 P) \n"
2860 " (declare (in) vec2 dPdx) \n"
2861 " (declare (in) vec2 dPdy) )\n"
2862 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
2863 "\n"
2864 " (signature vec4\n"
2865 " (parameters\n"
2866 " (declare (in) sampler3D sampler)\n"
2867 " (declare (in) vec3 P) \n"
2868 " (declare (in) vec3 dPdx) \n"
2869 " (declare (in) vec3 dPdy) )\n"
2870 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
2871 "\n"
2872 " (signature ivec4\n"
2873 " (parameters\n"
2874 " (declare (in) isampler3D sampler)\n"
2875 " (declare (in) vec3 P) \n"
2876 " (declare (in) vec3 dPdx) \n"
2877 " (declare (in) vec3 dPdy) )\n"
2878 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
2879 "\n"
2880 " (signature uvec4\n"
2881 " (parameters\n"
2882 " (declare (in) usampler3D sampler)\n"
2883 " (declare (in) vec3 P) \n"
2884 " (declare (in) vec3 dPdx) \n"
2885 " (declare (in) vec3 dPdy) )\n"
2886 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
2887 "\n"
2888 " (signature vec4\n"
2889 " (parameters\n"
2890 " (declare (in) samplerCube sampler)\n"
2891 " (declare (in) vec3 P) \n"
2892 " (declare (in) vec3 dPdx) \n"
2893 " (declare (in) vec3 dPdy) )\n"
2894 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
2895 "\n"
2896 " (signature ivec4\n"
2897 " (parameters\n"
2898 " (declare (in) isamplerCube sampler)\n"
2899 " (declare (in) vec3 P) \n"
2900 " (declare (in) vec3 dPdx) \n"
2901 " (declare (in) vec3 dPdy) )\n"
2902 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
2903 "\n"
2904 " (signature uvec4\n"
2905 " (parameters\n"
2906 " (declare (in) usamplerCube sampler)\n"
2907 " (declare (in) vec3 P) \n"
2908 " (declare (in) vec3 dPdx) \n"
2909 " (declare (in) vec3 dPdy) )\n"
2910 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
2911 "\n"
2912 " (signature vec4\n"
2913 " (parameters\n"
2914 " (declare (in) sampler1DArray sampler)\n"
2915 " (declare (in) vec2 P) \n"
2916 " (declare (in) vec2 dPdx) \n"
2917 " (declare (in) vec2 dPdy) )\n"
2918 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
2919 "\n"
2920 " (signature ivec4\n"
2921 " (parameters\n"
2922 " (declare (in) isampler1DArray sampler)\n"
2923 " (declare (in) vec2 P) \n"
2924 " (declare (in) vec2 dPdx) \n"
2925 " (declare (in) vec2 dPdy) )\n"
2926 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
2927 "\n"
2928 " (signature uvec4\n"
2929 " (parameters\n"
2930 " (declare (in) usampler1DArray sampler)\n"
2931 " (declare (in) vec2 P) \n"
2932 " (declare (in) vec2 dPdx) \n"
2933 " (declare (in) vec2 dPdy) )\n"
2934 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
2935 "\n"
2936 " (signature vec4\n"
2937 " (parameters\n"
2938 " (declare (in) sampler2DArray sampler)\n"
2939 " (declare (in) vec3 P) \n"
2940 " (declare (in) vec3 dPdx) \n"
2941 " (declare (in) vec3 dPdy) )\n"
2942 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
2943 "\n"
2944 " (signature ivec4\n"
2945 " (parameters\n"
2946 " (declare (in) isampler2DArray sampler)\n"
2947 " (declare (in) vec3 P) \n"
2948 " (declare (in) vec3 dPdx) \n"
2949 " (declare (in) vec3 dPdy) )\n"
2950 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
2951 "\n"
2952 " (signature uvec4\n"
2953 " (parameters\n"
2954 " (declare (in) usampler2DArray sampler)\n"
2955 " (declare (in) vec3 P) \n"
2956 " (declare (in) vec3 dPdx) \n"
2957 " (declare (in) vec3 dPdy) )\n"
2958 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
2959 "\n"
2960 ")\n"
2961 ")\n"
2962};
2963
2964static const char *builtins_130_textureLod = {
2965 "((function textureLod\n"
2966 " (signature vec4\n"
2967 " (parameters\n"
2968 " (declare (in) sampler1D sampler)\n"
2969 " (declare (in) float P) \n"
2970 " (declare (in) float lod) )\n"
2971 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
2972 "\n"
2973 " (signature ivec4\n"
2974 " (parameters\n"
2975 " (declare (in) isampler1D sampler)\n"
2976 " (declare (in) float P) \n"
2977 " (declare (in) float lod) )\n"
2978 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
2979 "\n"
2980 " (signature uvec4\n"
2981 " (parameters\n"
2982 " (declare (in) usampler1D sampler)\n"
2983 " (declare (in) float P) \n"
2984 " (declare (in) float lod) )\n"
2985 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
2986 "\n"
2987 " (signature vec4\n"
2988 " (parameters\n"
2989 " (declare (in) sampler2D sampler)\n"
2990 " (declare (in) vec2 P) \n"
2991 " (declare (in) float lod) )\n"
2992 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
2993 "\n"
2994 " (signature ivec4\n"
2995 " (parameters\n"
2996 " (declare (in) isampler2D sampler)\n"
2997 " (declare (in) vec2 P) \n"
2998 " (declare (in) float lod) )\n"
2999 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
3000 "\n"
3001 " (signature uvec4\n"
3002 " (parameters\n"
3003 " (declare (in) usampler2D sampler)\n"
3004 " (declare (in) vec2 P) \n"
3005 " (declare (in) float lod) )\n"
3006 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
3007 "\n"
3008 " (signature vec4\n"
3009 " (parameters\n"
3010 " (declare (in) sampler3D sampler)\n"
3011 " (declare (in) vec3 P) \n"
3012 " (declare (in) float lod) )\n"
3013 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
3014 "\n"
3015 " (signature ivec4\n"
3016 " (parameters\n"
3017 " (declare (in) isampler3D sampler)\n"
3018 " (declare (in) vec3 P) \n"
3019 " (declare (in) float lod) )\n"
3020 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
3021 "\n"
3022 " (signature uvec4\n"
3023 " (parameters\n"
3024 " (declare (in) usampler3D sampler)\n"
3025 " (declare (in) vec3 P) \n"
3026 " (declare (in) float lod) )\n"
3027 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
3028 "\n"
3029 " (signature vec4\n"
3030 " (parameters\n"
3031 " (declare (in) samplerCube sampler)\n"
3032 " (declare (in) vec3 P) \n"
3033 " (declare (in) float lod) )\n"
3034 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
3035 "\n"
3036 " (signature ivec4\n"
3037 " (parameters\n"
3038 " (declare (in) isamplerCube sampler)\n"
3039 " (declare (in) vec3 P) \n"
3040 " (declare (in) float lod) )\n"
3041 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
3042 "\n"
3043 " (signature uvec4\n"
3044 " (parameters\n"
3045 " (declare (in) usamplerCube sampler)\n"
3046 " (declare (in) vec3 P) \n"
3047 " (declare (in) float lod) )\n"
3048 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
3049 "\n"
3050 " (signature vec4\n"
3051 " (parameters\n"
3052 " (declare (in) sampler1DArray sampler)\n"
3053 " (declare (in) vec2 P) \n"
3054 " (declare (in) float lod) )\n"
3055 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
3056 "\n"
3057 " (signature ivec4\n"
3058 " (parameters\n"
3059 " (declare (in) isampler1DArray sampler)\n"
3060 " (declare (in) vec2 P) \n"
3061 " (declare (in) float lod) )\n"
3062 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
3063 "\n"
3064 " (signature uvec4\n"
3065 " (parameters\n"
3066 " (declare (in) usampler1DArray sampler)\n"
3067 " (declare (in) vec2 P) \n"
3068 " (declare (in) float lod) )\n"
3069 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
3070 "\n"
3071 " (signature vec4\n"
3072 " (parameters\n"
3073 " (declare (in) sampler2DArray sampler)\n"
3074 " (declare (in) vec3 P) \n"
3075 " (declare (in) float lod) )\n"
3076 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
3077 "\n"
3078 " (signature ivec4\n"
3079 " (parameters\n"
3080 " (declare (in) isampler2DArray sampler)\n"
3081 " (declare (in) vec3 P) \n"
3082 " (declare (in) float lod) )\n"
3083 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
3084 "\n"
3085 " (signature uvec4\n"
3086 " (parameters\n"
3087 " (declare (in) usampler2DArray sampler)\n"
3088 " (declare (in) vec3 P) \n"
3089 " (declare (in) float lod) )\n"
3090 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
3091 "\n"
3092 "))\n"
3093};
3094
3095static const char *builtins_130_textureProj = {
3096 "((function textureProj\n"
3097 " (signature vec4\n"
3098 " (parameters\n"
3099 " (declare (in) sampler1D sampler)\n"
3100 " (declare (in) vec2 P) )\n"
3101 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
3102 "\n"
3103 " (signature ivec4\n"
3104 " (parameters\n"
3105 " (declare (in) isampler1D sampler)\n"
3106 " (declare (in) vec2 P) )\n"
3107 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
3108 "\n"
3109 " (signature uvec4\n"
3110 " (parameters\n"
3111 " (declare (in) usampler1D sampler)\n"
3112 " (declare (in) vec2 P) )\n"
3113 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
3114 "\n"
3115 " (signature vec4\n"
3116 " (parameters\n"
3117 " (declare (in) sampler1D sampler)\n"
3118 " (declare (in) vec4 P) )\n"
3119 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
3120 "\n"
3121 " (signature ivec4\n"
3122 " (parameters\n"
3123 " (declare (in) isampler1D sampler)\n"
3124 " (declare (in) vec4 P) )\n"
3125 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
3126 "\n"
3127 " (signature uvec4\n"
3128 " (parameters\n"
3129 " (declare (in) usampler1D sampler)\n"
3130 " (declare (in) vec4 P) )\n"
3131 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
3132 "\n"
3133 " (signature vec4\n"
3134 " (parameters\n"
3135 " (declare (in) sampler2D sampler)\n"
3136 " (declare (in) vec3 P) )\n"
3137 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
3138 "\n"
3139 " (signature ivec4\n"
3140 " (parameters\n"
3141 " (declare (in) isampler2D sampler)\n"
3142 " (declare (in) vec3 P) )\n"
3143 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
3144 "\n"
3145 " (signature uvec4\n"
3146 " (parameters\n"
3147 " (declare (in) usampler2D sampler)\n"
3148 " (declare (in) vec3 P) )\n"
3149 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
3150 "\n"
3151 " (signature vec4\n"
3152 " (parameters\n"
3153 " (declare (in) sampler2D sampler)\n"
3154 " (declare (in) vec4 P) )\n"
3155 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
3156 "\n"
3157 " (signature ivec4\n"
3158 " (parameters\n"
3159 " (declare (in) isampler2D sampler)\n"
3160 " (declare (in) vec4 P) )\n"
3161 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
3162 "\n"
3163 " (signature uvec4\n"
3164 " (parameters\n"
3165 " (declare (in) usampler2D sampler)\n"
3166 " (declare (in) vec4 P) )\n"
3167 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
3168 "\n"
3169 " (signature vec4\n"
3170 " (parameters\n"
3171 " (declare (in) sampler3D sampler)\n"
3172 " (declare (in) vec4 P) )\n"
3173 " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
3174 "\n"
3175 " (signature ivec4\n"
3176 " (parameters\n"
3177 " (declare (in) isampler3D sampler)\n"
3178 " (declare (in) vec4 P) )\n"
3179 " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
3180 "\n"
3181 " (signature uvec4\n"
3182 " (parameters\n"
3183 " (declare (in) usampler3D sampler)\n"
3184 " (declare (in) vec4 P) )\n"
3185 " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
3186 "\n"
3187 "))\n"
3188};
3189
3190static const char *builtins_130_textureProjGrad = {
3191 "((function textureLod\n"
3192 " (signature vec4\n"
3193 " (parameters\n"
3194 " (declare (in) sampler1D sampler)\n"
3195 " (declare (in) vec2 P) \n"
3196 " (declare (in) float dPdx) \n"
3197 " (declare (in) float dPdy) )\n"
3198 " ((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"
3199 "\n"
3200 " (signature ivec4\n"
3201 " (parameters\n"
3202 " (declare (in) isampler1D sampler)\n"
3203 " (declare (in) vec2 P) \n"
3204 " (declare (in) float dPdx) \n"
3205 " (declare (in) float dPdy) )\n"
3206 " ((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"
3207 "\n"
3208 " (signature uvec4\n"
3209 " (parameters\n"
3210 " (declare (in) usampler1D sampler)\n"
3211 " (declare (in) vec2 P) \n"
3212 " (declare (in) float dPdx) \n"
3213 " (declare (in) float dPdy) )\n"
3214 " ((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"
3215 "\n"
3216 " (signature vec4\n"
3217 " (parameters\n"
3218 " (declare (in) sampler1D sampler)\n"
3219 " (declare (in) vec4 P) \n"
3220 " (declare (in) float dPdx) \n"
3221 " (declare (in) float dPdy) )\n"
3222 " ((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"
3223 "\n"
3224 " (signature ivec4\n"
3225 " (parameters\n"
3226 " (declare (in) isampler1D sampler)\n"
3227 " (declare (in) vec4 P) \n"
3228 " (declare (in) float dPdx) \n"
3229 " (declare (in) float dPdy) )\n"
3230 " ((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"
3231 "\n"
3232 " (signature uvec4\n"
3233 " (parameters\n"
3234 " (declare (in) usampler1D sampler)\n"
3235 " (declare (in) vec4 P) \n"
3236 " (declare (in) float dPdx) \n"
3237 " (declare (in) float dPdy) )\n"
3238 " ((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"
3239 "\n"
3240 " (signature vec4\n"
3241 " (parameters\n"
3242 " (declare (in) sampler2D sampler)\n"
3243 " (declare (in) vec3 P) \n"
3244 " (declare (in) vec2 dPdx) \n"
3245 " (declare (in) vec2 dPdy) )\n"
3246 " ((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"
3247 "\n"
3248 " (signature ivec4\n"
3249 " (parameters\n"
3250 " (declare (in) isampler2D sampler)\n"
3251 " (declare (in) vec3 P) \n"
3252 " (declare (in) vec2 dPdx) \n"
3253 " (declare (in) vec2 dPdy) )\n"
3254 " ((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"
3255 "\n"
3256 " (signature uvec4\n"
3257 " (parameters\n"
3258 " (declare (in) usampler2D sampler)\n"
3259 " (declare (in) vec3 P) \n"
3260 " (declare (in) vec2 dPdx) \n"
3261 " (declare (in) vec2 dPdy) )\n"
3262 " ((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"
3263 "\n"
3264 " (signature vec4\n"
3265 " (parameters\n"
3266 " (declare (in) sampler2D sampler)\n"
3267 " (declare (in) vec4 P) \n"
3268 " (declare (in) vec2 dPdx) \n"
3269 " (declare (in) vec2 dPdy) )\n"
3270 " ((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"
3271 "\n"
3272 " (signature ivec4\n"
3273 " (parameters\n"
3274 " (declare (in) isampler2D sampler)\n"
3275 " (declare (in) vec4 P) \n"
3276 " (declare (in) vec2 dPdx) \n"
3277 " (declare (in) vec2 dPdy) )\n"
3278 " ((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"
3279 "\n"
3280 " (signature uvec4\n"
3281 " (parameters\n"
3282 " (declare (in) usampler2D sampler)\n"
3283 " (declare (in) vec4 P) \n"
3284 " (declare (in) vec2 dPdx) \n"
3285 " (declare (in) vec2 dPdy) )\n"
3286 " ((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"
3287 "\n"
3288 " (signature vec4\n"
3289 " (parameters\n"
3290 " (declare (in) sampler3D sampler)\n"
3291 " (declare (in) vec4 P) \n"
3292 " (declare (in) vec3 dPdx) \n"
3293 " (declare (in) vec3 dPdy) )\n"
3294 " ((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"
3295 "\n"
3296 " (signature ivec4\n"
3297 " (parameters\n"
3298 " (declare (in) isampler3D sampler)\n"
3299 " (declare (in) vec4 P) \n"
3300 " (declare (in) vec3 dPdx) \n"
3301 " (declare (in) vec3 dPdy) )\n"
3302 " ((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"
3303 "\n"
3304 " (signature uvec4\n"
3305 " (parameters\n"
3306 " (declare (in) usampler3D sampler)\n"
3307 " (declare (in) vec4 P) \n"
3308 " (declare (in) vec3 dPdx) \n"
3309 " (declare (in) vec3 dPdy) )\n"
3310 " ((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"
3311 "\n"
3312 "))\n"
3313};
3314
3315static const char *builtins_130_textureProjLod = {
3316 "((function textureLod\n"
3317 " (signature vec4\n"
3318 " (parameters\n"
3319 " (declare (in) sampler1D sampler)\n"
3320 " (declare (in) vec2 P) \n"
3321 " (declare (in) float lod) )\n"
3322 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
3323 "\n"
3324 " (signature ivec4\n"
3325 " (parameters\n"
3326 " (declare (in) isampler1D sampler)\n"
3327 " (declare (in) vec2 P) \n"
3328 " (declare (in) float lod) )\n"
3329 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
3330 "\n"
3331 " (signature uvec4\n"
3332 " (parameters\n"
3333 " (declare (in) usampler1D sampler)\n"
3334 " (declare (in) vec2 P) \n"
3335 " (declare (in) float lod) )\n"
3336 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
3337 "\n"
3338 " (signature vec4\n"
3339 " (parameters\n"
3340 " (declare (in) sampler1D sampler)\n"
3341 " (declare (in) vec4 P) \n"
3342 " (declare (in) float lod) )\n"
3343 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
3344 "\n"
3345 " (signature ivec4\n"
3346 " (parameters\n"
3347 " (declare (in) isampler1D sampler)\n"
3348 " (declare (in) vec4 P) \n"
3349 " (declare (in) float lod) )\n"
3350 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
3351 "\n"
3352 " (signature uvec4\n"
3353 " (parameters\n"
3354 " (declare (in) usampler1D sampler)\n"
3355 " (declare (in) vec4 P) \n"
3356 " (declare (in) float lod) )\n"
3357 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
3358 "\n"
3359 " (signature vec4\n"
3360 " (parameters\n"
3361 " (declare (in) sampler2D sampler)\n"
3362 " (declare (in) vec3 P) \n"
3363 " (declare (in) float lod) )\n"
3364 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
3365 "\n"
3366 " (signature ivec4\n"
3367 " (parameters\n"
3368 " (declare (in) isampler2D sampler)\n"
3369 " (declare (in) vec3 P) \n"
3370 " (declare (in) float lod) )\n"
3371 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
3372 "\n"
3373 " (signature uvec4\n"
3374 " (parameters\n"
3375 " (declare (in) usampler2D sampler)\n"
3376 " (declare (in) vec3 P) \n"
3377 " (declare (in) float lod) )\n"
3378 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
3379 "\n"
3380 " (signature vec4\n"
3381 " (parameters\n"
3382 " (declare (in) sampler2D sampler)\n"
3383 " (declare (in) vec4 P) \n"
3384 " (declare (in) float lod) )\n"
3385 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
3386 "\n"
3387 " (signature ivec4\n"
3388 " (parameters\n"
3389 " (declare (in) isampler2D sampler)\n"
3390 " (declare (in) vec4 P) \n"
3391 " (declare (in) float lod) )\n"
3392 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
3393 "\n"
3394 " (signature uvec4\n"
3395 " (parameters\n"
3396 " (declare (in) usampler2D sampler)\n"
3397 " (declare (in) vec4 P) \n"
3398 " (declare (in) float lod) )\n"
3399 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
3400 "\n"
3401 " (signature vec4\n"
3402 " (parameters\n"
3403 " (declare (in) sampler3D sampler)\n"
3404 " (declare (in) vec4 P) \n"
3405 " (declare (in) float lod) )\n"
3406 " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
3407 "\n"
3408 " (signature ivec4\n"
3409 " (parameters\n"
3410 " (declare (in) isampler3D sampler)\n"
3411 " (declare (in) vec4 P) \n"
3412 " (declare (in) float lod) )\n"
3413 " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
3414 "\n"
3415 " (signature uvec4\n"
3416 " (parameters\n"
3417 " (declare (in) usampler3D sampler)\n"
3418 " (declare (in) vec4 P) \n"
3419 " (declare (in) float lod) )\n"
3420 " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
3421 "\n"
3422 "))\n"
3423};
3424
Kenneth Graunkeb3262122010-04-28 23:01:33 -07003425static const char *functions_for_130 [] = {
3426 builtins_130_equal,
3427 builtins_130_greaterThan,
3428 builtins_130_greaterThanEqual,
3429 builtins_130_lessThan,
3430 builtins_130_lessThanEqual,
3431 builtins_130_notEqual,
Kenneth Graunke67e07ad2010-04-30 15:20:06 -07003432 builtins_130_sign,
Kenneth Graunke4b0029a2010-06-08 16:29:17 -07003433 builtins_130_texelFetch,
3434 builtins_130_texture,
3435 builtins_130_textureGrad,
3436 builtins_130_textureLod,
3437 builtins_130_textureProj,
3438 builtins_130_textureProjGrad,
3439 builtins_130_textureProjLod,
3440};
3441
3442/* 130_fs builtins */
3443
3444static const char *builtins_130_fs_texture = {
3445 "((function texture\n"
3446 " (signature vec4\n"
3447 " (parameters\n"
3448 " (declare (in) sampler1D sampler)\n"
3449 " (declare (in) float P) \n"
3450 " (declare (in) float bias) )\n"
3451 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3452 "\n"
3453 " (signature ivec4\n"
3454 " (parameters\n"
3455 " (declare (in) isampler1D sampler)\n"
3456 " (declare (in) float P) \n"
3457 " (declare (in) float bias) )\n"
3458 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3459 "\n"
3460 " (signature uvec4\n"
3461 " (parameters\n"
3462 " (declare (in) usampler1D sampler)\n"
3463 " (declare (in) float P) \n"
3464 " (declare (in) float bias) )\n"
3465 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3466 "\n"
3467 " (signature vec4\n"
3468 " (parameters\n"
3469 " (declare (in) sampler2D sampler)\n"
3470 " (declare (in) vec2 P) \n"
3471 " (declare (in) float bias) )\n"
3472 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3473 "\n"
3474 " (signature ivec4\n"
3475 " (parameters\n"
3476 " (declare (in) isampler2D sampler)\n"
3477 " (declare (in) vec2 P) \n"
3478 " (declare (in) float bias) )\n"
3479 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3480 "\n"
3481 " (signature uvec4\n"
3482 " (parameters\n"
3483 " (declare (in) usampler2D sampler)\n"
3484 " (declare (in) vec2 P) \n"
3485 " (declare (in) float bias) )\n"
3486 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3487 "\n"
3488 " (signature vec4\n"
3489 " (parameters\n"
3490 " (declare (in) sampler3D sampler)\n"
3491 " (declare (in) vec3 P) \n"
3492 " (declare (in) float bias) )\n"
3493 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3494 "\n"
3495 " (signature ivec4\n"
3496 " (parameters\n"
3497 " (declare (in) isampler3D sampler)\n"
3498 " (declare (in) vec3 P) \n"
3499 " (declare (in) float bias) )\n"
3500 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3501 "\n"
3502 " (signature uvec4\n"
3503 " (parameters\n"
3504 " (declare (in) usampler3D sampler)\n"
3505 " (declare (in) vec3 P) \n"
3506 " (declare (in) float bias) )\n"
3507 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3508 "\n"
3509 " (signature vec4\n"
3510 " (parameters\n"
3511 " (declare (in) samplerCube sampler)\n"
3512 " (declare (in) vec3 P) \n"
3513 " (declare (in) float bias) )\n"
3514 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3515 "\n"
3516 " (signature ivec4\n"
3517 " (parameters\n"
3518 " (declare (in) isamplerCube sampler)\n"
3519 " (declare (in) vec3 P) \n"
3520 " (declare (in) float bias) )\n"
3521 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3522 "\n"
3523 " (signature uvec4\n"
3524 " (parameters\n"
3525 " (declare (in) usamplerCube sampler)\n"
3526 " (declare (in) vec3 P) \n"
3527 " (declare (in) float bias) )\n"
3528 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3529 "\n"
3530 " (signature vec4\n"
3531 " (parameters\n"
3532 " (declare (in) sampler1DArray sampler)\n"
3533 " (declare (in) vec2 P) \n"
3534 " (declare (in) float bias) )\n"
3535 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3536 "\n"
3537 " (signature ivec4\n"
3538 " (parameters\n"
3539 " (declare (in) isampler1DArray sampler)\n"
3540 " (declare (in) vec2 P) \n"
3541 " (declare (in) float bias) )\n"
3542 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3543 "\n"
3544 " (signature uvec4\n"
3545 " (parameters\n"
3546 " (declare (in) usampler1DArray sampler)\n"
3547 " (declare (in) vec2 P) \n"
3548 " (declare (in) float bias) )\n"
3549 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3550 "\n"
3551 " (signature vec4\n"
3552 " (parameters\n"
3553 " (declare (in) sampler2DArray sampler)\n"
3554 " (declare (in) vec3 P) \n"
3555 " (declare (in) float bias) )\n"
3556 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3557 "\n"
3558 " (signature ivec4\n"
3559 " (parameters\n"
3560 " (declare (in) isampler2DArray sampler)\n"
3561 " (declare (in) vec3 P) \n"
3562 " (declare (in) float bias) )\n"
3563 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3564 "\n"
3565 " (signature uvec4\n"
3566 " (parameters\n"
3567 " (declare (in) usampler2DArray sampler)\n"
3568 " (declare (in) vec3 P) \n"
3569 " (declare (in) float bias) )\n"
3570 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3571 "\n"
3572 "))\n"
3573};
3574
3575static const char *builtins_130_fs_textureProj = {
3576 "((function textureProj\n"
3577 " (signature vec4\n"
3578 " (parameters\n"
3579 " (declare (in) sampler1D sampler)\n"
3580 " (declare (in) vec2 P) \n"
3581 " (declare (in) float bias) )\n"
3582 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
3583 "\n"
3584 " (signature ivec4\n"
3585 " (parameters\n"
3586 " (declare (in) isampler1D sampler)\n"
3587 " (declare (in) vec2 P) \n"
3588 " (declare (in) float bias) )\n"
3589 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
3590 "\n"
3591 " (signature uvec4\n"
3592 " (parameters\n"
3593 " (declare (in) usampler1D sampler)\n"
3594 " (declare (in) vec2 P) \n"
3595 " (declare (in) float bias) )\n"
3596 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
3597 "\n"
3598 " (signature vec4\n"
3599 " (parameters\n"
3600 " (declare (in) sampler1D sampler)\n"
3601 " (declare (in) vec4 P) \n"
3602 " (declare (in) float bias) )\n"
3603 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
3604 "\n"
3605 " (signature ivec4\n"
3606 " (parameters\n"
3607 " (declare (in) isampler1D sampler)\n"
3608 " (declare (in) vec4 P) \n"
3609 " (declare (in) float bias) )\n"
3610 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
3611 "\n"
3612 " (signature uvec4\n"
3613 " (parameters\n"
3614 " (declare (in) usampler1D sampler)\n"
3615 " (declare (in) vec4 P) \n"
3616 " (declare (in) float bias) )\n"
3617 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
3618 "\n"
3619 " (signature vec4\n"
3620 " (parameters\n"
3621 " (declare (in) sampler2D sampler)\n"
3622 " (declare (in) vec3 P) \n"
3623 " (declare (in) float bias) )\n"
3624 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
3625 "\n"
3626 " (signature ivec4\n"
3627 " (parameters\n"
3628 " (declare (in) isampler2D sampler)\n"
3629 " (declare (in) vec3 P) \n"
3630 " (declare (in) float bias) )\n"
3631 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
3632 "\n"
3633 " (signature uvec4\n"
3634 " (parameters\n"
3635 " (declare (in) usampler2D sampler)\n"
3636 " (declare (in) vec3 P) \n"
3637 " (declare (in) float bias) )\n"
3638 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
3639 "\n"
3640 " (signature vec4\n"
3641 " (parameters\n"
3642 " (declare (in) sampler2D sampler)\n"
3643 " (declare (in) vec4 P) \n"
3644 " (declare (in) float bias) )\n"
3645 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
3646 "\n"
3647 " (signature ivec4\n"
3648 " (parameters\n"
3649 " (declare (in) isampler2D sampler)\n"
3650 " (declare (in) vec4 P) \n"
3651 " (declare (in) float bias) )\n"
3652 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
3653 "\n"
3654 " (signature uvec4\n"
3655 " (parameters\n"
3656 " (declare (in) usampler2D sampler)\n"
3657 " (declare (in) vec4 P) \n"
3658 " (declare (in) float bias) )\n"
3659 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
3660 "\n"
3661 " (signature vec4\n"
3662 " (parameters\n"
3663 " (declare (in) sampler3D sampler)\n"
3664 " (declare (in) vec4 P) \n"
3665 " (declare (in) float bias) )\n"
3666 " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
3667 "\n"
3668 " (signature ivec4\n"
3669 " (parameters\n"
3670 " (declare (in) isampler3D sampler)\n"
3671 " (declare (in) vec4 P) \n"
3672 " (declare (in) float bias) )\n"
3673 " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
3674 "\n"
3675 " (signature uvec4\n"
3676 " (parameters\n"
3677 " (declare (in) usampler3D sampler)\n"
3678 " (declare (in) vec4 P) \n"
3679 " (declare (in) float bias) )\n"
3680 " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
3681 "\n"
3682 "))\n"
3683};
3684
3685static const char *functions_for_130_fs [] = {
3686 builtins_130_fs_texture,
3687 builtins_130_fs_textureProj,
3688};
3689
3690/* ARB_texture_rectangle builtins */
3691
3692static const char *builtins_ARB_texture_rectangle_textures = {
3693 "((function texture2DRect\n"
3694 " (signature vec4\n"
3695 " (parameters\n"
3696 " (declare (in) sampler2DRect sampler)\n"
3697 " (declare (in) vec2 P) )\n"
3698 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
3699 "\n"
3700 ")\n"
3701 " (function shadow2DRect\n"
3702 " (signature vec4\n"
3703 " (parameters\n"
3704 " (declare (in) sampler2DRectShadow sampler)\n"
3705 " (declare (in) vec3 P) )\n"
3706 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
3707 "\n"
3708 "))\n"
3709};
3710
3711static const char *functions_for_ARB_texture_rectangle [] = {
3712 builtins_ARB_texture_rectangle_textures,
3713};
3714
3715/* EXT_texture_array builtins */
3716
3717static const char *builtins_EXT_texture_array_textures = {
3718 "((function texture1DArray\n"
3719 " (signature vec4\n"
3720 " (parameters\n"
3721 " (declare (in) sampler1DArray sampler)\n"
3722 " (declare (in) vec2 P) )\n"
3723 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
3724 "\n"
3725 ")\n"
3726 " (function texture1DArrayLod\n"
3727 " (signature vec4\n"
3728 " (parameters\n"
3729 " (declare (in) sampler1DArray sampler)\n"
3730 " (declare (in) vec2 P) \n"
3731 " (declare (in) float lod) )\n"
3732 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
3733 "\n"
3734 ")\n"
3735 " (function texture2DArray\n"
3736 " (signature vec4\n"
3737 " (parameters\n"
3738 " (declare (in) sampler2DArray sampler)\n"
3739 " (declare (in) vec3 P) )\n"
3740 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
3741 "\n"
3742 ")\n"
3743 " (function texture2DArrayLod\n"
3744 " (signature vec4\n"
3745 " (parameters\n"
3746 " (declare (in) sampler2DArray sampler)\n"
3747 " (declare (in) vec3 P) \n"
3748 " (declare (in) float lod) )\n"
3749 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
3750 "\n"
3751 ")\n"
3752 " (function shadow1DArray\n"
3753 " (signature vec4\n"
3754 " (parameters\n"
3755 " (declare (in) sampler1DArrayShadow sampler)\n"
3756 " (declare (in) vec3 P) )\n"
3757 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
3758 "\n"
3759 ")\n"
3760 " (function shadow1DArrayLod\n"
3761 " (signature vec4\n"
3762 " (parameters\n"
3763 " (declare (in) sampler1DArrayShadow sampler)\n"
3764 " (declare (in) vec3 P) \n"
3765 " (declare (in) float lod) )\n"
3766 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))\n"
3767 "\n"
3768 ")\n"
3769 " (function shadow2DArray\n"
3770 " (signature vec4\n"
3771 " (parameters\n"
3772 " (declare (in) sampler2DArrayShadow sampler)\n"
3773 " (declare (in) vec4 P) )\n"
3774 " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) 1 (swiz w (var_ref P)) ))))\n"
3775 "\n"
3776 "))\n"
3777};
3778
3779static const char *functions_for_EXT_texture_array [] = {
3780 builtins_EXT_texture_array_textures,
3781};
3782
3783/* EXT_texture_array_fs builtins */
3784
3785static const char *builtins_EXT_texture_array_fs_textures = {
3786 "((function texture1DArray\n"
3787 " (signature vec4\n"
3788 " (parameters\n"
3789 " (declare (in) sampler1DArray sampler)\n"
3790 " (declare (in) vec2 P) \n"
3791 " (declare (in) float bias) )\n"
3792 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3793 "\n"
3794 ")\n"
3795 " (function texture2DArray\n"
3796 " (signature vec4\n"
3797 " (parameters\n"
3798 " (declare (in) sampler2DArray sampler)\n"
3799 " (declare (in) vec3 P) \n"
3800 " (declare (in) float bias) )\n"
3801 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3802 "\n"
3803 ")\n"
3804 " (function shadow1DArray\n"
3805 " (signature vec4\n"
3806 " (parameters\n"
3807 " (declare (in) sampler1DArrayShadow sampler)\n"
3808 " (declare (in) vec3 P) \n"
3809 " (declare (in) float bias) )\n"
3810 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))\n"
3811 "\n"
3812 "))\n"
3813};
3814
3815static const char *functions_for_EXT_texture_array_fs [] = {
3816 builtins_EXT_texture_array_fs_textures,
Kenneth Graunkeb3262122010-04-28 23:01:33 -07003817};
Eric Anholtc22c4002010-03-26 18:20:30 -07003818
3819void
3820_mesa_glsl_initialize_functions(exec_list *instructions,
Kenneth Graunkeb3262122010-04-28 23:01:33 -07003821 struct _mesa_glsl_parse_state *state)
Eric Anholtc22c4002010-03-26 18:20:30 -07003822{
Kenneth Graunkeb3262122010-04-28 23:01:33 -07003823 if (state->language_version >= 110)
Kenneth Graunke4b0029a2010-06-08 16:29:17 -07003824 read_builtins(state, instructions,
3825 functions_for_110,
Kenneth Graunkeb3262122010-04-28 23:01:33 -07003826 sizeof(functions_for_110) / sizeof(const char *));
3827
Kenneth Graunke4b0029a2010-06-08 16:29:17 -07003828 if (state->target == fragment_shader && state->language_version >= 110)
3829 read_builtins(state, instructions,
3830 functions_for_110_fs,
3831 sizeof(functions_for_110_fs) / sizeof(const char *));
3832
3833 if (state->target == vertex_shader && state->language_version >= 110)
3834 read_builtins(state, instructions,
3835 functions_for_110_vs,
Eric Anholtda46e5f2010-05-19 13:57:01 -07003836 sizeof(functions_for_110_vs) / sizeof(const char *));
3837
Kenneth Graunkeb3262122010-04-28 23:01:33 -07003838 if (state->language_version >= 130)
Kenneth Graunke4b0029a2010-06-08 16:29:17 -07003839 read_builtins(state, instructions,
3840 functions_for_130,
Kenneth Graunkeb3262122010-04-28 23:01:33 -07003841 sizeof(functions_for_130) / sizeof(const char *));
3842
Kenneth Graunke4b0029a2010-06-08 16:29:17 -07003843 if (state->target == fragment_shader && state->language_version >= 130)
3844 read_builtins(state, instructions,
3845 functions_for_130_fs,
3846 sizeof(functions_for_130_fs) / sizeof(const char *));
3847
3848 if (state->ARB_texture_rectangle_enable)
3849 read_builtins(state, instructions,
3850 functions_for_ARB_texture_rectangle,
3851 sizeof(functions_for_ARB_texture_rectangle) / sizeof(const char *));
3852
3853 if (state->EXT_texture_array_enable)
3854 read_builtins(state, instructions,
3855 functions_for_EXT_texture_array,
3856 sizeof(functions_for_EXT_texture_array) / sizeof(const char *));
3857
3858 if (state->target == fragment_shader && state->EXT_texture_array_enable)
3859 read_builtins(state, instructions,
3860 functions_for_EXT_texture_array_fs,
3861 sizeof(functions_for_EXT_texture_array_fs) / sizeof(const char *));
3862
Eric Anholtc22c4002010-03-26 18:20:30 -07003863}