-/* DO NOT MODIFY - automatically generated by generate_builtins.pl */
+/* DO NOT MODIFY - automatically generated by generate_builtins.py */
/*
* Copyright © 2010 Intel Corporation
*
#include "glsl_parser_extras.h"
#include "ir_reader.h"
#include "program.h"
+#include "ast.h"
extern "C" struct gl_shader *
_mesa_new_shader(GLcontext *ctx, GLuint name, GLenum type);
gl_shader *
-read_builtins(GLenum target, const char **functions, unsigned count)
+read_builtins(GLenum target, const char *protos, const char **functions, unsigned count)
{
gl_shader *sh = _mesa_new_shader(NULL, 0, target);
struct _mesa_glsl_parse_state *st =
sh->ir = new(sh) exec_list;
sh->symbols = st->symbols;
+ /* Read the IR containing the prototypes */
+ _mesa_glsl_read_ir(st, sh->ir, protos, true);
+
+ /* Read ALL the function bodies, telling the IR reader not to scan for
+ * prototypes (we've already created them). The IR reader will skip any
+ * signature that does not already exist as a prototype.
+ */
for (unsigned i = 0; i < count; i++) {
- _mesa_glsl_read_ir(st, sh->ir, functions[i]);
+ _mesa_glsl_read_ir(st, sh->ir, functions[i], false);
if (st->error) {
- printf("error reading builtin: %.35s ...\n", functions[i]);
- delete st;
- talloc_free(sh);
+ printf("error reading builtin: %.35s ...\n", functions[i]);
+ talloc_free(sh);
return NULL;
}
}
return sh;
}
-/* 110 builtins */
-
-static const char *builtins_110_abs = {
- "((function abs\n"
- " (signature float\n"
- " (parameters\n"
- " (declare (in) float arg0))\n"
- " ((return (expression float abs (var_ref arg0)))))\n"
- "\n"
- " (signature vec2\n"
- " (parameters\n"
- " (declare (in) vec2 arg0))\n"
- " ((return (expression vec2 abs (var_ref arg0)))))\n"
- "\n"
- " (signature vec3\n"
- " (parameters\n"
- " (declare (in) vec3 arg0))\n"
- " ((return (expression vec3 abs (var_ref arg0)))))\n"
- "\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) vec4 arg0))\n"
- " ((return (expression vec4 abs (var_ref arg0)))))\n"
- "))\n"
-};
-
-static const char *builtins_110_all = {
+static const char *builtin_all =
"((function all\n"
" (signature bool\n"
" (parameters\n"
" (declare (in) bvec4 arg0))\n"
" ((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"
"))\n"
-};
-
-static const char *builtins_110_any = {
- "((function any\n"
- " (signature bool\n"
+ ""
+;
+static const char *builtin_textureProj =
+ "((function textureProj\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) bvec2 arg0))\n"
- " ((return (expression bool || (swiz x (var_ref arg0))(swiz y (var_ref arg0))))))\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) vec2 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
"\n"
- " (signature bool\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) bvec3 arg0))\n"
- " ((return (expression bool || (expression bool || (swiz x (var_ref arg0))(swiz y (var_ref arg0))) (swiz z (var_ref arg0))))))\n"
+ " (declare (in) isampler1D sampler)\n"
+ " (declare (in) vec2 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
"\n"
- " (signature bool\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) bvec4 arg0))\n"
- " ((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"
- "))\n"
-};
-
-static const char *builtins_110_asin = {
- "((function asin\n"
- " (signature float\n"
+ " (declare (in) usampler1D sampler)\n"
+ " (declare (in) vec2 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
+ "\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) float x))\n"
- " ((return (expression float *\n"
- " (expression float sign (var_ref x))\n"
- " (expression float -\n"
- " (expression float *\n"
- " (constant float (3.1415926))\n"
- " (constant float (0.5)))\n"
- " (expression float *\n"
- " (expression float sqrt\n"
- " (expression float -\n"
- " (constant float (1.0))\n"
- " (expression float abs (var_ref x))))\n"
- " (expression float +\n"
- " (constant float (1.5707288))\n"
- " (expression float *\n"
- " (expression float abs (var_ref x))\n"
- " (expression float +\n"
- " (constant float (-0.2121144))\n"
- " (expression float *\n"
- " (constant float (0.0742610))\n"
- " (expression float abs (var_ref x))))))))))))\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) vec4 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
"\n"
- " (signature vec2\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec2 x))\n"
- " ((return (expression vec2 *\n"
- " (expression vec2 sign (var_ref x))\n"
- " (expression vec2 -\n"
- " (expression float *\n"
- " (constant float (3.1415926))\n"
- " (constant float (0.5)))\n"
- " (expression vec2 *\n"
- " (expression vec2 sqrt\n"
- " (expression vec2 -\n"
- " (constant float (1.0))\n"
- " (expression vec2 abs (var_ref x))))\n"
- " (expression vec2 +\n"
- " (constant float (1.5707288))\n"
- " (expression vec2 *\n"
- " (expression vec2 abs (var_ref x))\n"
- " (expression vec2 +\n"
- " (constant float (-0.2121144))\n"
- " (expression vec2 *\n"
- " (constant float (0.0742610))\n"
- " (expression vec2 abs (var_ref x))))))))))))\n"
+ " (declare (in) isampler1D sampler)\n"
+ " (declare (in) vec4 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
"\n"
- " (signature vec3\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec3 x))\n"
- " ((return (expression vec3 *\n"
- " (expression vec3 sign (var_ref x))\n"
- " (expression vec3 -\n"
- " (expression float *\n"
- " (constant float (3.1415926))\n"
- " (constant float (0.5)))\n"
- " (expression vec3 *\n"
- " (expression vec3 sqrt\n"
- " (expression vec3 -\n"
- " (constant float (1.0))\n"
- " (expression vec3 abs (var_ref x))))\n"
- " (expression vec3 +\n"
- " (constant float (1.5707288))\n"
- " (expression vec3 *\n"
- " (expression vec3 abs (var_ref x))\n"
- " (expression vec3 +\n"
- " (constant float (-0.2121144))\n"
- " (expression vec3 *\n"
- " (constant float (0.0742610))\n"
- " (expression vec3 abs (var_ref x))))))))))))\n"
+ " (declare (in) usampler1D sampler)\n"
+ " (declare (in) vec4 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 x))\n"
- " ((return (expression vec4 *\n"
- " (expression vec4 sign (var_ref x))\n"
- " (expression vec4 -\n"
- " (expression float *\n"
- " (constant float (3.1415926))\n"
- " (constant float (0.5)))\n"
- " (expression vec4 *\n"
- " (expression vec4 sqrt\n"
- " (expression vec4 -\n"
- " (constant float (1.0))\n"
- " (expression vec4 abs (var_ref x))))\n"
- " (expression vec4 +\n"
- " (constant float (1.5707288))\n"
- " (expression vec4 *\n"
- " (expression vec4 abs (var_ref x))\n"
- " (expression vec4 +\n"
- " (constant float (-0.2121144))\n"
- " (expression vec4 *\n"
- " (constant float (0.0742610))\n"
- " (expression vec4 abs (var_ref x)))))))))))\n"
- "))\n"
+ " (declare (in) sampler2D sampler)\n"
+ " (declare (in) vec3 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
"\n"
- " (function acos\n"
- " (signature float\n"
- " (parameters\n"
- " (declare (in) float x))\n"
- " ((return (expression float - (constant float (1.5707963))\n"
- " (call asin ((var_ref x)))))))\n"
- " (signature vec2\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec2 x))\n"
- " ((return (expression vec2 - (constant float (1.5707963))\n"
- " (call asin ((var_ref x)))))))\n"
- " (signature vec3\n"
+ " (declare (in) isampler2D sampler)\n"
+ " (declare (in) vec3 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
+ "\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec3 x))\n"
- " ((return (expression vec3 - (constant float (1.5707963))\n"
- " (call asin ((var_ref x)))))))\n"
+ " (declare (in) usampler2D sampler)\n"
+ " (declare (in) vec3 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
+ "\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 x))\n"
- " ((return (expression vec4 - (constant float (1.5707963))\n"
- " (call asin ((var_ref x)))))))\n"
- "))\n"
-};
-
-static const char *builtins_110_atan = {
- "((function atan\n"
- " (signature float\n"
- " (parameters\n"
- " (declare (in) float x))\n"
- " ((return (call asin ((expression float *\n"
- " (var_ref x)\n"
- " (expression float rsq\n"
- " (expression float +\n"
- " (expression float *\n"
- " (var_ref x)\n"
- " (var_ref x))\n"
- " (constant float (1.0))))))))))\n"
+ " (declare (in) sampler2D sampler)\n"
+ " (declare (in) vec4 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
"\n"
- " (signature vec2\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec2 y_over_x))\n"
- " ((return (call asin ((expression vec2 *\n"
- " (var_ref y_over_x)\n"
- " (expression vec2 rsq\n"
- " (expression vec2 +\n"
- " (expression vec2 *\n"
- " (var_ref y_over_x)\n"
- " (var_ref y_over_x))\n"
- " (constant float (1.0))))))))))\n"
+ " (declare (in) isampler2D sampler)\n"
+ " (declare (in) vec4 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
"\n"
- " (signature vec3\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec3 y_over_x))\n"
- " ((return (call asin ((expression vec3 *\n"
- " (var_ref y_over_x)\n"
- " (expression vec3 rsq\n"
- " (expression vec3 +\n"
- " (expression vec3 *\n"
- " (var_ref y_over_x)\n"
- " (var_ref y_over_x))\n"
- " (constant float (1.0))))))))))\n"
+ " (declare (in) usampler2D sampler)\n"
+ " (declare (in) vec4 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 y_over_x))\n"
- " ((return (call asin ((expression vec4 *\n"
- " (var_ref y_over_x)\n"
- " (expression vec4 rsq\n"
- " (expression vec4 +\n"
- " (expression vec4 *\n"
- " (var_ref y_over_x)\n"
- " (var_ref y_over_x))\n"
- " (constant float (1.0))))))))))\n"
+ " (declare (in) sampler3D sampler)\n"
+ " (declare (in) vec4 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
"\n"
- " (signature float\n"
- " (parameters\n"
- " (declare (in ) float y)\n"
- " (declare (in ) float x)\n"
- " )\n"
- " (\n"
- " (declare () float r)\n"
- " (declare ( ) float abs_retval)\n"
- " (assign (constant bool (1)) (var_ref abs_retval) (call abs ((var_ref x) ))\n"
- ") \n"
- " (if (expression bool > (var_ref abs_retval) (constant float (0.000100)) ) (\n"
- " (declare ( ) float atan_retval)\n"
- " (assign (constant bool (1)) (var_ref atan_retval) (call atan ((expression float / (var_ref y) (var_ref x) ) ))\n"
- ") \n"
- " (assign (constant bool (1)) (var_ref r) (var_ref atan_retval) ) \n"
- " (if (expression bool < (var_ref x) (constant float (0.000000)) ) (\n"
- " (if (expression bool >= (var_ref y) (constant float (0.000000)) ) (\n"
- " (declare ( ) float assignment_tmp)\n"
- " (assign (constant bool (1)) (var_ref assignment_tmp) (expression float + (var_ref r) (constant float (3.141593)) ) ) \n"
- " (assign (constant bool (1)) (var_ref r) (var_ref assignment_tmp) ) \n"
- " )\n"
- " (\n"
- " (declare ( ) float assignment_tmp)\n"
- " (assign (constant bool (1)) (var_ref assignment_tmp) (expression float - (var_ref r) (constant float (3.141593)) ) ) \n"
- " (assign (constant bool (1)) (var_ref r) (var_ref assignment_tmp) ) \n"
- " ))\n"
- "\n"
- " )\n"
- " (\n"
- " ))\n"
- "\n"
- " )\n"
- " (\n"
- " (if (expression bool >= (var_ref y) (constant float (0.000000)) ) (\n"
- " (assign (constant bool (1)) (var_ref r) (constant float (1.570796)) ) \n"
- " )\n"
- " (\n"
- " (assign (constant bool (1)) (var_ref r) (constant float (-1.570796)) ) \n"
- " ))\n"
+ " (signature ivec4\n"
+ " (parameters\n"
+ " (declare (in) isampler3D sampler)\n"
+ " (declare (in) vec4 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
"\n"
- " ))\n"
+ " (signature uvec4\n"
+ " (parameters\n"
+ " (declare (in) usampler3D sampler)\n"
+ " (declare (in) vec4 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
"\n"
- " (return (var_ref r) )\n"
- " ))\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
"\n"
+ " (signature ivec4\n"
+ " (parameters\n"
+ " (declare (in) isampler1D sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
"\n"
+ " (signature uvec4\n"
+ " (parameters\n"
+ " (declare (in) usampler1D sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
"\n"
- " (signature vec2\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) vec2 y)\n"
- " (declare (in) vec2 x))\n"
- " ((declare () vec2 r)\n"
- " (assign (constant bool (1))\n"
- " (swiz x (var_ref r))\n"
- " (call atan ((swiz x (var_ref y))\n"
- " (swiz x (var_ref x)))))\n"
- " (assign (constant bool (1))\n"
- " (swiz y (var_ref r))\n"
- " (call atan ((swiz y (var_ref y))\n"
- " (swiz y (var_ref x)))))\n"
- " (return (var_ref r))))\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
"\n"
- " (signature vec3\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec3 y)\n"
- " (declare (in) vec3 x))\n"
- " ((declare () vec3 r)\n"
- " (assign (constant bool (1))\n"
- " (swiz x (var_ref r))\n"
- " (call atan ((swiz x (var_ref y))\n"
- " (swiz x (var_ref x)))))\n"
- " (assign (constant bool (1))\n"
- " (swiz y (var_ref r))\n"
- " (call atan ((swiz y (var_ref y))\n"
- " (swiz y (var_ref x)))))\n"
- " (assign (constant bool (1))\n"
- " (swiz z (var_ref r))\n"
- " (call atan ((swiz z (var_ref y))\n"
- " (swiz z (var_ref x)))))\n"
- " (return (var_ref r))))\n"
+ " (declare (in) isampler1D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
"\n"
- " (signature vec4\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec4 y)\n"
- " (declare (in) vec4 x))\n"
- " ((declare () vec4 r)\n"
- " (assign (constant bool (1))\n"
- " (swiz x (var_ref r))\n"
- " (call atan ((swiz x (var_ref y))\n"
- " (swiz x (var_ref x)))))\n"
- " (assign (constant bool (1))\n"
- " (swiz y (var_ref r))\n"
- " (call atan ((swiz y (var_ref y))\n"
- " (swiz y (var_ref x)))))\n"
- " (assign (constant bool (1))\n"
- " (swiz z (var_ref r))\n"
- " (call atan ((swiz z (var_ref y))\n"
- " (swiz z (var_ref x)))))\n"
- " (assign (constant bool (1))\n"
- " (swiz w (var_ref r))\n"
- " (call atan ((swiz w (var_ref y))\n"
- " (swiz w (var_ref x)))))\n"
- " (return (var_ref r)))))\n"
+ " (declare (in) usampler1D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
"\n"
- "))\n"
-};
-
-static const char *builtins_110_ceil = {
- "((function ceil\n"
- " (signature float\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) float arg0))\n"
- " ((return (expression float ceil (var_ref arg0)))))\n"
+ " (declare (in) sampler2D sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
"\n"
- " (signature vec2\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec2 arg0))\n"
- " ((return (expression vec2 ceil (var_ref arg0)))))\n"
+ " (declare (in) isampler2D sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
"\n"
- " (signature vec3\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec3 arg0))\n"
- " ((return (expression vec3 ceil (var_ref arg0)))))\n"
+ " (declare (in) usampler2D sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 arg0))\n"
- " ((return (expression vec4 ceil (var_ref arg0)))))\n"
- "))\n"
-};
-
-static const char *builtins_110_clamp = {
- "((function clamp\n"
- " (signature float\n"
- " (parameters\n"
- " (declare (in) float arg0)\n"
- " (declare (in) float arg1)\n"
- " (declare (in) float arg2))\n"
- " ((return (expression float max (expression float min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ " (declare (in) sampler2D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
"\n"
- " (signature vec2\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec2 arg0)\n"
- " (declare (in) vec2 arg1)\n"
- " (declare (in) vec2 arg2))\n"
- " ((return (expression vec2 max (expression vec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ " (declare (in) isampler2D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
"\n"
- " (signature vec3\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec3 arg0)\n"
- " (declare (in) vec3 arg1)\n"
- " (declare (in) vec3 arg2))\n"
- " ((return (expression vec3 max (expression vec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ " (declare (in) usampler2D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 arg0)\n"
- " (declare (in) vec4 arg1)\n"
- " (declare (in) vec4 arg2))\n"
- " ((return (expression vec4 max (expression vec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ " (declare (in) sampler3D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
"\n"
- " (signature vec2\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec2 arg0)\n"
- " (declare (in) float arg1)\n"
- " (declare (in) float arg2))\n"
- " ((return (expression vec2 max (expression vec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ " (declare (in) isampler3D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
"\n"
- " (signature vec3\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec3 arg0)\n"
- " (declare (in) float arg1)\n"
- " (declare (in) float arg2))\n"
- " ((return (expression vec3 max (expression vec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ " (declare (in) usampler3D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
"\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) vec4 arg0)\n"
- " (declare (in) float arg1)\n"
- " (declare (in) float arg2))\n"
- " ((return (expression vec4 max (expression vec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"))\n"
-};
-
-static const char *builtins_110_cos = {
- "((function cos\n"
+ ""
+;
+static const char *builtin_fwidth =
+ "((function fwidth\n"
" (signature float\n"
" (parameters\n"
- " (declare (in) float angle))\n"
- " ((return (expression float cos (var_ref angle)))))\n"
+ " (declare (in) float p))\n"
+ " ((return (expression float +\n"
+ " (expression float abs (expression float dFdx (var_ref p)))\n"
+ " (expression float abs (expression float dFdy (var_ref p)))))))\n"
"\n"
" (signature vec2\n"
" (parameters\n"
- " (declare (in) vec2 angle))\n"
- " ((return (expression vec2 cos (var_ref angle)))))\n"
+ " (declare (in) vec2 p))\n"
+ " ((return (expression vec2 +\n"
+ " (expression vec2 abs (expression vec2 dFdx (var_ref p)))\n"
+ " (expression vec2 abs (expression vec2 dFdy (var_ref p)))))))\n"
"\n"
" (signature vec3\n"
" (parameters\n"
- " (declare (in) vec3 angle))\n"
- " ((return (expression vec3 cos (var_ref angle)))))\n"
+ " (declare (in) vec3 p))\n"
+ " ((return (expression vec3 +\n"
+ " (expression vec3 abs (expression vec3 dFdx (var_ref p)))\n"
+ " (expression vec3 abs (expression vec3 dFdy (var_ref p)))))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 angle))\n"
- " ((return (expression vec4 cos (var_ref angle)))))\n"
+ " (declare (in) vec4 p))\n"
+ " ((return (expression vec4 +\n"
+ " (expression vec4 abs (expression vec4 dFdx (var_ref p)))\n"
+ " (expression vec4 abs (expression vec4 dFdy (var_ref p)))))))\n"
"))\n"
-};
-
-static const char *builtins_110_cross = {
- "((function cross\n"
- " (signature vec3\n"
+ ""
+;
+static const char *builtin_texture2DProj =
+ "((function texture2DProj\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) vec3 arg0)\n"
- " (declare (in) vec3 arg1))\n"
- " ((return (expression vec3 cross (var_ref arg0) (var_ref arg1)))))\n"
- "))\n"
-};
-
-static const char *builtins_110_degrees = {
- "((function degrees\n"
- " (signature float\n"
+ " (declare (in) sampler2D sampler)\n"
+ " (declare (in) vec3 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
+ "\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) float arg0))\n"
- " ((return (expression float * (var_ref arg0) (constant float (57.295780))))))\n"
+ " (declare (in) sampler2D sampler)\n"
+ " (declare (in) vec4 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
"\n"
- " (signature vec2\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) vec2 arg0))\n"
- " ((return (expression vec2 * (var_ref arg0) (constant float (57.295780))))))\n"
+ " (declare (in) sampler2D sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
"\n"
- " (signature vec3\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) vec3 arg0))\n"
- " ((return (expression vec3 * (var_ref arg0) (constant float (57.295780))))))\n"
+ " (declare (in) sampler2D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
"\n"
+ "))\n"
+ ""
+;
+static const char *builtin_shadow1DProjLod =
+ "((function shadow1DProjLod\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 arg0))\n"
- " ((return (expression vec4 * (var_ref arg0) (constant float (57.295780))))))\n"
+ " (declare (in) sampler1DShadow sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((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"
+ "\n"
"))\n"
-};
-
-static const char *builtins_110_distance = {
- "((function distance\n"
- " (signature float\n"
+ ""
+;
+static const char *builtin_texture3DLod =
+ "((function texture3DLod\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) float p0)\n"
- " (declare (in) float p1))\n"
- " ((declare () float p)\n"
- " (assign (constant bool (1)) (var_ref p) (expression float - (var_ref p0) (var_ref p1)))\n"
- " (return (expression float sqrt (expression float dot (var_ref p) (var_ref p))))))\n"
+ " (declare (in) sampler3D sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
"\n"
- " (signature float\n"
+ "))\n"
+ ""
+;
+static const char *builtin_textureCubeLod =
+ "((function textureCubeLod\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) vec2 p0)\n"
- " (declare (in) vec2 p1))\n"
- " ((declare () vec2 p)\n"
- " (assign (constant bool (1)) (var_ref p) (expression vec2 - (var_ref p0) (var_ref p1)))\n"
- " (return (expression float sqrt (expression float dot (var_ref p) (var_ref p))))))\n"
+ " (declare (in) samplerCube sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
"\n"
- " (signature float\n"
+ "))\n"
+ ""
+;
+static const char *builtin_texture =
+ "((function texture\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) vec3 p0)\n"
- " (declare (in) vec3 p1))\n"
- " ((declare () vec3 p)\n"
- " (assign (constant bool (1)) (var_ref p) (expression vec3 - (var_ref p0) (var_ref p1)))\n"
- " (return (expression float sqrt (expression float dot (var_ref p) (var_ref p))))))\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) float P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
"\n"
- " (signature float\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec4 p0)\n"
- " (declare (in) vec4 p1))\n"
- " ((declare () vec4 p)\n"
- " (assign (constant bool (1)) (var_ref p) (expression vec4 - (var_ref p0) (var_ref p1)))\n"
- " (return (expression float sqrt (expression float dot (var_ref p) (var_ref p))))))\n"
- "))\n"
-};
-
-static const char *builtins_110_dot = {
- "((function dot\n"
- " (signature float\n"
+ " (declare (in) isampler1D sampler)\n"
+ " (declare (in) float P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ "\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) float arg0)\n"
- " (declare (in) float arg1))\n"
- " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) usampler1D sampler)\n"
+ " (declare (in) float P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
"\n"
- " (signature float\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) vec2 arg0)\n"
- " (declare (in) vec2 arg1))\n"
- " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) sampler2D sampler)\n"
+ " (declare (in) vec2 P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
"\n"
- " (signature float\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec3 arg0)\n"
- " (declare (in) vec3 arg1))\n"
- " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) isampler2D sampler)\n"
+ " (declare (in) vec2 P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
"\n"
- " (signature float\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec4 arg0)\n"
- " (declare (in) vec4 arg1))\n"
- " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
- "))\n"
-};
-
-static const char *builtins_110_equal = {
- "((function equal\n"
- " (signature bvec2\n"
+ " (declare (in) usampler2D sampler)\n"
+ " (declare (in) vec2 P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ "\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) vec2 arg0)\n"
- " (declare (in) vec2 arg1))\n"
- " ((declare () bvec2 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (declare (in) sampler3D sampler)\n"
+ " (declare (in) vec3 P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
"\n"
- " (signature bvec3\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec3 arg0)\n"
- " (declare (in) vec3 arg1))\n"
- " ((declare () bvec3 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (declare (in) isampler3D sampler)\n"
+ " (declare (in) vec3 P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
"\n"
- " (signature bvec4\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec4 arg0)\n"
- " (declare (in) vec4 arg1))\n"
- " ((declare () bvec4 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool == (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (declare (in) usampler3D sampler)\n"
+ " (declare (in) vec3 P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
"\n"
- " (signature bvec2\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) ivec2 arg0)\n"
- " (declare (in) ivec2 arg1))\n"
- " ((declare () bvec2 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (declare (in) samplerCube sampler)\n"
+ " (declare (in) vec3 P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
"\n"
- " (signature bvec3\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) ivec3 arg0)\n"
- " (declare (in) ivec3 arg1))\n"
- " ((declare () bvec3 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (declare (in) isamplerCube sampler)\n"
+ " (declare (in) vec3 P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
"\n"
- " (signature bvec4\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) ivec4 arg0)\n"
- " (declare (in) ivec4 arg1))\n"
- " ((declare () bvec4 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool == (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
- "))\n"
-};
-
-static const char *builtins_110_exp = {
- "((function exp\n"
- " (signature float\n"
+ " (declare (in) usamplerCube sampler)\n"
+ " (declare (in) vec3 P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ "\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) float arg0))\n"
- " ((return (expression float exp (var_ref arg0)))))\n"
+ " (declare (in) sampler1DArray sampler)\n"
+ " (declare (in) vec2 P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
"\n"
- " (signature vec2\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec2 arg0))\n"
- " ((return (expression vec2 exp (var_ref arg0)))))\n"
+ " (declare (in) isampler1DArray sampler)\n"
+ " (declare (in) vec2 P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
"\n"
- " (signature vec3\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec3 arg0))\n"
- " ((return (expression vec3 exp (var_ref arg0)))))\n"
+ " (declare (in) usampler1DArray sampler)\n"
+ " (declare (in) vec2 P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 arg0))\n"
- " ((return (expression vec4 exp (var_ref arg0)))))\n"
- "))\n"
-};
-
-static const char *builtins_110_exp2 = {
- "((function exp2\n"
- " (signature float\n"
- " (parameters\n"
- " (declare (in) float arg0))\n"
- " ((return (expression float exp2 (var_ref arg0)))))\n"
+ " (declare (in) sampler2DArray sampler)\n"
+ " (declare (in) vec3 P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
"\n"
- " (signature vec2\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec2 arg0))\n"
- " ((return (expression vec2 exp2 (var_ref arg0)))))\n"
+ " (declare (in) isampler2DArray sampler)\n"
+ " (declare (in) vec3 P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
"\n"
- " (signature vec3\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec3 arg0))\n"
- " ((return (expression vec3 exp2 (var_ref arg0)))))\n"
+ " (declare (in) usampler2DArray sampler)\n"
+ " (declare (in) vec3 P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 arg0))\n"
- " ((return (expression vec4 exp2 (var_ref arg0)))))\n"
- "))\n"
-};
-
-static const char *builtins_110_faceforward = {
- "((function faceforward\n"
- " (signature float\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) float P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ "\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) float N)\n"
- " (declare (in) float I)\n"
- " (declare (in) float Nref))\n"
- " ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0)))\n"
- " ((return (var_ref N)))\n"
- " ((return (expression float neg (var_ref N)))))))\n"
+ " (declare (in) isampler1D sampler)\n"
+ " (declare (in) float P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
"\n"
- " (signature vec2\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec2 N)\n"
- " (declare (in) vec2 I)\n"
- " (declare (in) vec2 Nref))\n"
- " ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0)))\n"
- " ((return (var_ref N)))\n"
- " ((return (expression vec2 neg (var_ref N)))))))\n"
+ " (declare (in) usampler1D sampler)\n"
+ " (declare (in) float P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
"\n"
- " (signature vec3\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) vec3 N)\n"
- " (declare (in) vec3 I)\n"
- " (declare (in) vec3 Nref))\n"
- " ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0)))\n"
- " ((return (var_ref N)))\n"
- " ((return (expression vec3 neg (var_ref N)))))))\n"
+ " (declare (in) sampler2D sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ "\n"
+ " (signature ivec4\n"
+ " (parameters\n"
+ " (declare (in) isampler2D sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ "\n"
+ " (signature uvec4\n"
+ " (parameters\n"
+ " (declare (in) usampler2D sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 N)\n"
- " (declare (in) vec4 I)\n"
- " (declare (in) vec4 Nref))\n"
- " ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0)))\n"
- " ((return (var_ref N)))\n"
- " ((return (expression vec4 neg (var_ref N)))))))\n"
+ " (declare (in) sampler3D sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ "\n"
+ " (signature ivec4\n"
+ " (parameters\n"
+ " (declare (in) isampler3D sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ "\n"
+ " (signature uvec4\n"
+ " (parameters\n"
+ " (declare (in) usampler3D sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) samplerCube sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ "\n"
+ " (signature ivec4\n"
+ " (parameters\n"
+ " (declare (in) isamplerCube sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ "\n"
+ " (signature uvec4\n"
+ " (parameters\n"
+ " (declare (in) usamplerCube sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler1DArray sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ "\n"
+ " (signature ivec4\n"
+ " (parameters\n"
+ " (declare (in) isampler1DArray sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ "\n"
+ " (signature uvec4\n"
+ " (parameters\n"
+ " (declare (in) usampler1DArray sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler2DArray sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ "\n"
+ " (signature ivec4\n"
+ " (parameters\n"
+ " (declare (in) isampler2DArray sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ "\n"
+ " (signature uvec4\n"
+ " (parameters\n"
+ " (declare (in) usampler2DArray sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ "\n"
"))\n"
-};
-
-static const char *builtins_110_floor = {
- "((function floor\n"
+ ""
+;
+static const char *builtin_degrees =
+ "((function degrees\n"
" (signature float\n"
" (parameters\n"
" (declare (in) float arg0))\n"
- " ((return (expression float floor (var_ref arg0)))))\n"
+ " ((return (expression float * (var_ref arg0) (constant float (57.295780))))))\n"
"\n"
" (signature vec2\n"
" (parameters\n"
" (declare (in) vec2 arg0))\n"
- " ((return (expression vec2 floor (var_ref arg0)))))\n"
+ " ((return (expression vec2 * (var_ref arg0) (constant float (57.295780))))))\n"
"\n"
" (signature vec3\n"
" (parameters\n"
" (declare (in) vec3 arg0))\n"
- " ((return (expression vec3 floor (var_ref arg0)))))\n"
+ " ((return (expression vec3 * (var_ref arg0) (constant float (57.295780))))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
" (declare (in) vec4 arg0))\n"
- " ((return (expression vec4 floor (var_ref arg0)))))\n"
+ " ((return (expression vec4 * (var_ref arg0) (constant float (57.295780))))))\n"
"))\n"
-};
-
-static const char *builtins_110_fract = {
- "((function fract\n"
+ ""
+;
+static const char *builtin_texture2DArrayLod =
+ "((function texture2DArrayLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler2DArray sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ "\n"
+ "))\n"
+ ""
+;
+static const char *builtin_ceil =
+ "((function ceil\n"
" (signature float\n"
" (parameters\n"
- " (declare (in) float x))\n"
- " ((return (expression float fract (var_ref x)))))\n"
+ " (declare (in) float arg0))\n"
+ " ((return (expression float ceil (var_ref arg0)))))\n"
"\n"
" (signature vec2\n"
" (parameters\n"
- " (declare (in) vec2 x))\n"
- " ((return (expression vec2 fract (var_ref x)))))\n"
+ " (declare (in) vec2 arg0))\n"
+ " ((return (expression vec2 ceil (var_ref arg0)))))\n"
"\n"
" (signature vec3\n"
" (parameters\n"
- " (declare (in) vec3 x))\n"
- " ((return (expression vec3 fract (var_ref x)))))\n"
+ " (declare (in) vec3 arg0))\n"
+ " ((return (expression vec3 ceil (var_ref arg0)))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 x))\n"
- " ((return (expression vec4 fract (var_ref x)))))\n"
+ " (declare (in) vec4 arg0))\n"
+ " ((return (expression vec4 ceil (var_ref arg0)))))\n"
"))\n"
- "\n"
-};
-
-static const char *builtins_110_greaterThan = {
- "((function greaterThan\n"
- " (signature bvec2\n"
- " (parameters\n"
- " (declare (in) vec2 arg0)\n"
- " (declare (in) vec2 arg1))\n"
- " ((declare () bvec2 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
- "\n"
- " (signature bvec3\n"
+ ""
+;
+static const char *builtin_texture1D =
+ "((function texture1D\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) vec3 arg0)\n"
- " (declare (in) vec3 arg1))\n"
- " ((declare () bvec3 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) float P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
"\n"
- " (signature bvec4\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 arg0)\n"
- " (declare (in) vec4 arg1))\n"
- " ((declare () bvec4 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool > (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) float P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
"\n"
+ "))\n"
+ ""
+;
+static const char *builtin_not =
+ "((function not\n"
" (signature bvec2\n"
" (parameters\n"
- " (declare (in) ivec2 arg0)\n"
- " (declare (in) ivec2 arg1))\n"
- " ((declare () bvec2 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (declare (in) bvec2 arg0))\n"
+ " ((return (expression bvec2 ! (var_ref arg0)))))\n"
"\n"
" (signature bvec3\n"
" (parameters\n"
- " (declare (in) ivec3 arg0)\n"
- " (declare (in) ivec3 arg1))\n"
- " ((declare () bvec3 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (declare (in) bvec3 arg0))\n"
+ " ((return (expression bvec3 ! (var_ref arg0)))))\n"
"\n"
" (signature bvec4\n"
" (parameters\n"
- " (declare (in) ivec4 arg0)\n"
- " (declare (in) ivec4 arg1))\n"
- " ((declare () bvec4 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool > (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (declare (in) bvec4 arg0))\n"
+ " ((return (expression bvec4 ! (var_ref arg0)))))\n"
"))\n"
-};
-
-static const char *builtins_110_greaterThanEqual = {
- "((function greaterThanEqual\n"
- " (signature bvec2\n"
+ ""
+;
+static const char *builtin_texture2DRectProj =
+ "((function texture2DRectProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler2DRect sampler)\n"
+ " (declare (in) vec3 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler2DRect sampler)\n"
+ " (declare (in) vec4 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+ "\n"
+ "))\n"
+ ""
+;
+static const char *builtin_mod =
+ "((function mod\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in) float arg0)\n"
+ " (declare (in) float arg1))\n"
+ " ((return (expression float % (var_ref arg0) (var_ref arg1)))))\n"
+ "\n"
+ " (signature vec2\n"
" (parameters\n"
" (declare (in) vec2 arg0)\n"
" (declare (in) vec2 arg1))\n"
- " ((declare () bvec2 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " ((return (expression vec2 % (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature bvec3\n"
+ " (signature vec3\n"
" (parameters\n"
" (declare (in) vec3 arg0)\n"
" (declare (in) vec3 arg1))\n"
- " ((declare () bvec3 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " ((return (expression vec3 % (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature bvec4\n"
+ " (signature vec4\n"
" (parameters\n"
" (declare (in) vec4 arg0)\n"
" (declare (in) vec4 arg1))\n"
- " ((declare () bvec4 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool >= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " ((return (expression vec4 % (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature bvec2\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) ivec2 arg0)\n"
- " (declare (in) ivec2 arg1))\n"
- " ((declare () bvec2 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (declare (in) vec2 arg0)\n"
+ " (declare (in) float arg1))\n"
+ " ((return (expression vec2 % (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature bvec3\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) ivec3 arg0)\n"
- " (declare (in) ivec3 arg1))\n"
- " ((declare () bvec3 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (declare (in) vec3 arg0)\n"
+ " (declare (in) float arg1))\n"
+ " ((return (expression vec3 % (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature bvec4\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) ivec4 arg0)\n"
- " (declare (in) ivec4 arg1))\n"
- " ((declare () bvec4 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool >= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (declare (in) vec4 arg0)\n"
+ " (declare (in) float arg1))\n"
+ " ((return (expression vec4 % (var_ref arg0) (var_ref arg1)))))\n"
"))\n"
-};
-
-static const char *builtins_110_inversesqrt = {
- "((function inversesqrt\n"
+ ""
+;
+static const char *builtin_radians =
+ "((function radians\n"
" (signature float\n"
" (parameters\n"
" (declare (in) float arg0))\n"
- " ((return (expression float rsq (var_ref arg0)))))\n"
+ " ((return (expression float * (var_ref arg0) (constant float (0.017453))))))\n"
"\n"
" (signature vec2\n"
" (parameters\n"
" (declare (in) vec2 arg0))\n"
- " ((return (expression vec2 rsq (var_ref arg0)))))\n"
+ " ((return (expression vec2 * (var_ref arg0) (constant float (0.017453))))))\n"
"\n"
" (signature vec3\n"
" (parameters\n"
" (declare (in) vec3 arg0))\n"
- " ((return (expression vec3 rsq (var_ref arg0)))))\n"
+ " ((return (expression vec3 * (var_ref arg0) (constant float (0.017453))))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
" (declare (in) vec4 arg0))\n"
- " ((return (expression vec4 rsq (var_ref arg0)))))\n"
+ " ((return (expression vec4 * (var_ref arg0) (constant float (0.017453))))))\n"
"))\n"
-};
-
-static const char *builtins_110_length = {
- "((function length\n"
+ ""
+;
+static const char *builtin_smoothstep =
+ "((function smoothstep\n"
" (signature float\n"
" (parameters\n"
- " (declare (in) float arg0))\n"
- " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
+ " (declare (in) float edge0)\n"
+ " (declare (in) float edge1)\n"
+ " (declare (in) float x))\n"
+ " ((declare () float t)\n"
"\n"
- " (signature float\n"
- " (parameters\n"
- " (declare (in) vec2 arg0))\n"
- " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
+ " (assign (constant bool (1)) (var_ref t)\n"
+ " (expression float max\n"
+ " (expression float min\n"
+ " (expression float / (expression float - (var_ref x) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
+ " (constant float (1.0)))\n"
+ " (constant float (0.0))))\n"
+ " (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"
"\n"
- " (signature float\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) vec3 arg0))\n"
- " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
+ " (declare (in) float edge0)\n"
+ " (declare (in) float edge1)\n"
+ " (declare (in) vec2 x))\n"
+ " ((declare () vec2 t)\n"
+ " (declare () vec2 retval)\n"
"\n"
- " (signature float\n"
- " (parameters\n"
- " (declare (in) vec4 arg0))\n"
- " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
- "))\n"
-};
-
-static const char *builtins_110_lessThan = {
- "((function lessThan\n"
- " (signature bvec2\n"
- " (parameters\n"
- " (declare (in) vec2 arg0)\n"
- " (declare (in) vec2 arg1))\n"
- " ((declare () bvec2 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (assign (constant bool (1)) (swiz x (var_ref t))\n"
+ " (expression float max\n"
+ " (expression float min\n"
+ " (expression float / (expression float - (swiz x (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
+ " (constant float (1.0)))\n"
+ " (constant float (0.0))))\n"
+ " (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"
"\n"
- " (signature bvec3\n"
- " (parameters\n"
- " (declare (in) vec3 arg0)\n"
- " (declare (in) vec3 arg1))\n"
- " ((declare () bvec3 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (assign (constant bool (1)) (swiz y (var_ref t))\n"
+ " (expression float max\n"
+ " (expression float min\n"
+ " (expression float / (expression float - (swiz y (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
+ " (constant float (1.0)))\n"
+ " (constant float (0.0))))\n"
+ " (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"
+ " (return (var_ref retval))\n"
+ " ))\n"
"\n"
- " (signature bvec4\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) vec4 arg0)\n"
- " (declare (in) vec4 arg1))\n"
- " ((declare () bvec4 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool < (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (declare (in) float edge0)\n"
+ " (declare (in) float edge1)\n"
+ " (declare (in) vec3 x))\n"
+ " ((declare () vec3 t)\n"
+ " (declare () vec3 retval)\n"
"\n"
- " (signature bvec2\n"
- " (parameters\n"
- " (declare (in) ivec2 arg0)\n"
- " (declare (in) ivec2 arg1))\n"
- " ((declare () bvec2 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (assign (constant bool (1)) (swiz x (var_ref t))\n"
+ " (expression float max\n"
+ " (expression float min\n"
+ " (expression float / (expression float - (swiz x (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
+ " (constant float (1.0)))\n"
+ " (constant float (0.0))))\n"
+ " (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"
"\n"
- " (signature bvec3\n"
- " (parameters\n"
- " (declare (in) ivec3 arg0)\n"
- " (declare (in) ivec3 arg1))\n"
- " ((declare () bvec3 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (assign (constant bool (1)) (swiz y (var_ref t))\n"
+ " (expression float max\n"
+ " (expression float min\n"
+ " (expression float / (expression float - (swiz y (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
+ " (constant float (1.0)))\n"
+ " (constant float (0.0))))\n"
+ " (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"
"\n"
- " (signature bvec4\n"
- " (parameters\n"
- " (declare (in) ivec4 arg0)\n"
- " (declare (in) ivec4 arg1))\n"
- " ((declare () bvec4 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool < (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
- "))\n"
-};
-
-static const char *builtins_110_lessThanEqual = {
- "((function lessThanEqual\n"
- " (signature bvec2\n"
- " (parameters\n"
- " (declare (in) vec2 arg0)\n"
- " (declare (in) vec2 arg1))\n"
- " ((declare () bvec2 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (assign (constant bool (1)) (swiz z (var_ref t))\n"
+ " (expression float max\n"
+ " (expression float min\n"
+ " (expression float / (expression float - (swiz z (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
+ " (constant float (1.0)))\n"
+ " (constant float (0.0))))\n"
+ " (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"
+ " (return (var_ref retval))\n"
+ " ))\n"
"\n"
- " (signature bvec3\n"
- " (parameters\n"
- " (declare (in) vec3 arg0)\n"
- " (declare (in) vec3 arg1))\n"
- " ((declare () bvec3 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
"\n"
- " (signature bvec4\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 arg0)\n"
- " (declare (in) vec4 arg1))\n"
- " ((declare () bvec4 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool <= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (declare (in) float edge0)\n"
+ " (declare (in) float edge1)\n"
+ " (declare (in) vec4 x))\n"
+ " ((declare () vec4 t)\n"
+ " (declare () vec4 retval)\n"
"\n"
- " (signature bvec2\n"
- " (parameters\n"
- " (declare (in) ivec2 arg0)\n"
- " (declare (in) ivec2 arg1))\n"
- " ((declare () bvec2 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (assign (constant bool (1)) (swiz x (var_ref t))\n"
+ " (expression float max\n"
+ " (expression float min\n"
+ " (expression float / (expression float - (swiz x (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
+ " (constant float (1.0)))\n"
+ " (constant float (0.0))))\n"
+ " (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"
"\n"
- " (signature bvec3\n"
- " (parameters\n"
- " (declare (in) ivec3 arg0)\n"
- " (declare (in) ivec3 arg1))\n"
- " ((declare () bvec3 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (assign (constant bool (1)) (swiz y (var_ref t))\n"
+ " (expression float max\n"
+ " (expression float min\n"
+ " (expression float / (expression float - (swiz y (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
+ " (constant float (1.0)))\n"
+ " (constant float (0.0))))\n"
+ " (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"
"\n"
- " (signature bvec4\n"
- " (parameters\n"
- " (declare (in) ivec4 arg0)\n"
- " (declare (in) ivec4 arg1))\n"
- " ((declare () bvec4 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool <= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
- "))\n"
-};
-
-static const char *builtins_110_log = {
- "((function log\n"
- " (signature float\n"
- " (parameters\n"
- " (declare (in) float arg0))\n"
- " ((return (expression float log (var_ref arg0)))))\n"
+ " (assign (constant bool (1)) (swiz z (var_ref t))\n"
+ " (expression float max\n"
+ " (expression float min\n"
+ " (expression float / (expression float - (swiz z (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
+ " (constant float (1.0)))\n"
+ " (constant float (0.0))))\n"
+ " (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"
+ "\n"
+ " (assign (constant bool (1)) (swiz w (var_ref t))\n"
+ " (expression float max\n"
+ " (expression float min\n"
+ " (expression float / (expression float - (swiz w (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
+ " (constant float (1.0)))\n"
+ " (constant float (0.0))))\n"
+ " (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"
+ " (return (var_ref retval))\n"
+ " ))\n"
"\n"
" (signature vec2\n"
" (parameters\n"
- " (declare (in) vec2 arg0))\n"
- " ((return (expression vec2 log (var_ref arg0)))))\n"
+ " (declare (in) vec2 edge0)\n"
+ " (declare (in) vec2 edge1)\n"
+ " (declare (in) vec2 x))\n"
+ " ((return (expression vec2 max\n"
+ " (expression vec2 min\n"
+ " (expression vec2 / (expression vec2 - (var_ref x) (var_ref edge0)) (expression vec2 - (var_ref edge1) (var_ref edge0)))\n"
+ " (constant vec2 (1.0 1.0)))\n"
+ " (constant vec2 (0.0 0.0))))))\n"
"\n"
" (signature vec3\n"
" (parameters\n"
- " (declare (in) vec3 arg0))\n"
- " ((return (expression vec3 log (var_ref arg0)))))\n"
+ " (declare (in) vec3 edge0)\n"
+ " (declare (in) vec3 edge1)\n"
+ " (declare (in) vec3 x))\n"
+ " ((return (expression vec3 max\n"
+ " (expression vec3 min\n"
+ " (expression vec3 / (expression vec3 - (var_ref x) (var_ref edge0)) (expression vec3 - (var_ref edge1) (var_ref edge0)))\n"
+ " (constant vec3 (1.0 1.0 1.0)))\n"
+ " (constant vec3 (0.0 0.0 0.0))))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 arg0))\n"
- " ((return (expression vec4 log (var_ref arg0)))))\n"
+ " (declare (in) vec4 edge0)\n"
+ " (declare (in) vec4 edge1)\n"
+ " (declare (in) vec4 x))\n"
+ " ((return (expression vec4 max\n"
+ " (expression vec4 min\n"
+ " (expression vec4 / (expression vec4 - (var_ref x) (var_ref edge0)) (expression vec4 - (var_ref edge1) (var_ref edge0)))\n"
+ " (constant vec4 (1.0 1.0 1.0 1.0)))\n"
+ " (constant vec4 (0.0 0.0 0.0 0.0))))))\n"
"))\n"
-};
-
-static const char *builtins_110_log2 = {
- "((function log2\n"
- " (signature float\n"
+ "\n"
+ ""
+;
+static const char *builtin_textureProjGrad =
+ "((function textureProjGrad\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) float arg0))\n"
- " ((return (expression float log2 (var_ref arg0)))))\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float dPdx) \n"
+ " (declare (in) float dPdy) )\n"
+ " ((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"
"\n"
- " (signature vec2\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec2 arg0))\n"
- " ((return (expression vec2 log2 (var_ref arg0)))))\n"
+ " (declare (in) isampler1D sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float dPdx) \n"
+ " (declare (in) float dPdy) )\n"
+ " ((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"
"\n"
- " (signature vec3\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec3 arg0))\n"
- " ((return (expression vec3 log2 (var_ref arg0)))))\n"
+ " (declare (in) usampler1D sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float dPdx) \n"
+ " (declare (in) float dPdy) )\n"
+ " ((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"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 arg0))\n"
- " ((return (expression vec4 log2 (var_ref arg0)))))\n"
- "))\n"
-};
-
-static const char *builtins_110_matrixCompMult = {
- "((function matrixCompMult\n"
- " (signature mat2\n"
- " (parameters\n"
- " (declare (in) mat2 x)\n"
- " (declare (in) mat2 y))\n"
- " ((declare () mat2 z)\n"
- " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec2 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
- " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec2 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
- "(return (var_ref z))))\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float dPdx) \n"
+ " (declare (in) float dPdy) )\n"
+ " ((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"
"\n"
- " (signature mat3\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) mat3 x)\n"
- " (declare (in) mat3 y))\n"
- " ((declare () mat3 z)\n"
- " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec3 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
- " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec3 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
- " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (2))) (expression vec3 * (array_ref (var_ref x) (constant int (2))) (array_ref (var_ref y) (constant int (2))))) \n"
- "(return (var_ref z))))\n"
+ " (declare (in) isampler1D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float dPdx) \n"
+ " (declare (in) float dPdy) )\n"
+ " ((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"
"\n"
- " (signature mat4\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) mat4 x)\n"
- " (declare (in) mat4 y))\n"
- " ((declare () mat4 z)\n"
- " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec4 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
- " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec4 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
- " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (2))) (expression vec4 * (array_ref (var_ref x) (constant int (2))) (array_ref (var_ref y) (constant int (2))))) \n"
- " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (3))) (expression vec4 * (array_ref (var_ref x) (constant int (3))) (array_ref (var_ref y) (constant int (3))))) \n"
- "(return (var_ref z))))\n"
- "))\n"
+ " (declare (in) usampler1D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float dPdx) \n"
+ " (declare (in) float dPdy) )\n"
+ " ((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"
"\n"
-};
-
-static const char *builtins_110_max = {
- "((function max\n"
- " (signature float\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) float arg0)\n"
- " (declare (in) float arg1))\n"
- " ((return (expression float max (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) sampler2D sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) vec2 dPdx) \n"
+ " (declare (in) vec2 dPdy) )\n"
+ " ((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"
"\n"
- " (signature vec2\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec2 arg0)\n"
- " (declare (in) vec2 arg1))\n"
- " ((return (expression vec2 max (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) isampler2D sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) vec2 dPdx) \n"
+ " (declare (in) vec2 dPdy) )\n"
+ " ((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"
"\n"
- " (signature vec3\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec3 arg0)\n"
- " (declare (in) vec3 arg1))\n"
- " ((return (expression vec3 max (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) usampler2D sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) vec2 dPdx) \n"
+ " (declare (in) vec2 dPdy) )\n"
+ " ((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"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 arg0)\n"
- " (declare (in) vec4 arg1))\n"
- " ((return (expression vec4 max (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) sampler2D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) vec2 dPdx) \n"
+ " (declare (in) vec2 dPdy) )\n"
+ " ((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"
"\n"
- " (signature vec2\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec2 arg0)\n"
- " (declare (in) float arg1))\n"
- " ((return (expression vec2 max (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) isampler2D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) vec2 dPdx) \n"
+ " (declare (in) vec2 dPdy) )\n"
+ " ((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"
"\n"
- " (signature vec3\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec3 arg0)\n"
- " (declare (in) float arg1))\n"
- " ((return (expression vec3 max (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) usampler2D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) vec2 dPdx) \n"
+ " (declare (in) vec2 dPdy) )\n"
+ " ((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"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 arg0)\n"
- " (declare (in) float arg1))\n"
- " ((return (expression vec4 max (var_ref arg0) (var_ref arg1)))))\n"
- "))\n"
-};
-
-static const char *builtins_110_min = {
- "((function min\n"
- " (signature float\n"
- " (parameters\n"
- " (declare (in) float arg0)\n"
- " (declare (in) float arg1))\n"
- " ((return (expression float min (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) sampler3D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) vec3 dPdx) \n"
+ " (declare (in) vec3 dPdy) )\n"
+ " ((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"
"\n"
- " (signature vec2\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec2 arg0)\n"
- " (declare (in) vec2 arg1))\n"
- " ((return (expression vec2 min (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) isampler3D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) vec3 dPdx) \n"
+ " (declare (in) vec3 dPdy) )\n"
+ " ((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"
"\n"
- " (signature vec3\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec3 arg0)\n"
- " (declare (in) vec3 arg1))\n"
- " ((return (expression vec3 min (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) usampler3D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) vec3 dPdx) \n"
+ " (declare (in) vec3 dPdy) )\n"
+ " ((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"
"\n"
- " (signature vec4\n"
+ "))\n"
+ ""
+;
+static const char *builtin_dFdx =
+ "((function dFdx\n"
+ " (signature float\n"
" (parameters\n"
- " (declare (in) vec4 arg0)\n"
- " (declare (in) vec4 arg1))\n"
- " ((return (expression vec4 min (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) float p))\n"
+ " ((return (expression float dFdx (var_ref p)))))\n"
"\n"
" (signature vec2\n"
" (parameters\n"
- " (declare (in) vec2 arg0)\n"
- " (declare (in) float arg1))\n"
- " ((return (expression vec2 min (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) vec2 p))\n"
+ " ((return (expression vec2 dFdx (var_ref p)))))\n"
"\n"
" (signature vec3\n"
" (parameters\n"
- " (declare (in) vec3 arg0)\n"
- " (declare (in) float arg1))\n"
- " ((return (expression vec3 min (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) vec3 p))\n"
+ " ((return (expression vec3 dFdx (var_ref p)))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 arg0)\n"
- " (declare (in) float arg1))\n"
- " ((return (expression vec4 min (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) vec4 p))\n"
+ " ((return (expression vec4 dFdx (var_ref p)))))\n"
"))\n"
-};
-
-static const char *builtins_110_mix = {
- "((function mix\n"
+ ""
+;
+static const char *builtin_dFdy =
+ "((function dFdy\n"
" (signature float\n"
" (parameters\n"
- " (declare (in) float arg0)\n"
- " (declare (in) float arg1)\n"
- " (declare (in) float arg2))\n"
- " ((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"
+ " (declare (in) float p))\n"
+ " ((return (expression float dFdy (var_ref p)))))\n"
"\n"
" (signature vec2\n"
" (parameters\n"
- " (declare (in) vec2 arg0)\n"
- " (declare (in) vec2 arg1)\n"
- " (declare (in) vec2 arg2))\n"
- " ((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"
+ " (declare (in) vec2 p))\n"
+ " ((return (expression vec2 dFdy (var_ref p)))))\n"
"\n"
" (signature vec3\n"
" (parameters\n"
- " (declare (in) vec3 arg0)\n"
- " (declare (in) vec3 arg1)\n"
- " (declare (in) vec3 arg2))\n"
- " ((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"
+ " (declare (in) vec3 p))\n"
+ " ((return (expression vec3 dFdy (var_ref p)))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 arg0)\n"
- " (declare (in) vec4 arg1)\n"
- " (declare (in) vec4 arg2))\n"
- " ((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"
+ " (declare (in) vec4 p))\n"
+ " ((return (expression vec4 dFdy (var_ref p)))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_textureGrad =
+ "((function textureGrad\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) float P) \n"
+ " (declare (in) float dPdx) \n"
+ " (declare (in) float dPdy) )\n"
+ " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
"\n"
- " (signature vec2\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec2 arg0)\n"
- " (declare (in) vec2 arg1)\n"
- " (declare (in) float arg2))\n"
- " ((return (expression vec2 + (expression vec2 * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression vec2 * (var_ref arg1) (var_ref arg2))))))\n"
+ " (declare (in) isampler1D sampler)\n"
+ " (declare (in) float P) \n"
+ " (declare (in) float dPdx) \n"
+ " (declare (in) float dPdy) )\n"
+ " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
"\n"
- " (signature vec3\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec3 arg0)\n"
- " (declare (in) vec3 arg1)\n"
- " (declare (in) float arg2))\n"
- " ((return (expression vec3 + (expression vec3 * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression vec3 * (var_ref arg1) (var_ref arg2))))))\n"
+ " (declare (in) usampler1D sampler)\n"
+ " (declare (in) float P) \n"
+ " (declare (in) float dPdx) \n"
+ " (declare (in) float dPdy) )\n"
+ " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 arg0)\n"
- " (declare (in) vec4 arg1)\n"
- " (declare (in) float arg2))\n"
- " ((return (expression vec4 + (expression vec4 * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression vec4 * (var_ref arg1) (var_ref arg2))))))\n"
- "))\n"
-};
-
-static const char *builtins_110_mod = {
- "((function mod\n"
- " (signature float\n"
- " (parameters\n"
- " (declare (in) float arg0)\n"
- " (declare (in) float arg1))\n"
- " ((return (expression float % (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) sampler2D sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) vec2 dPdx) \n"
+ " (declare (in) vec2 dPdy) )\n"
+ " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
"\n"
- " (signature vec2\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec2 arg0)\n"
- " (declare (in) vec2 arg1))\n"
- " ((return (expression vec2 % (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) isampler2D sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) vec2 dPdx) \n"
+ " (declare (in) vec2 dPdy) )\n"
+ " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
"\n"
- " (signature vec3\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec3 arg0)\n"
- " (declare (in) vec3 arg1))\n"
- " ((return (expression vec3 % (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) usampler2D sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) vec2 dPdx) \n"
+ " (declare (in) vec2 dPdy) )\n"
+ " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 arg0)\n"
- " (declare (in) vec4 arg1))\n"
- " ((return (expression vec4 % (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) sampler3D sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) vec3 dPdx) \n"
+ " (declare (in) vec3 dPdy) )\n"
+ " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
"\n"
- " (signature vec2\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec2 arg0)\n"
- " (declare (in) float arg1))\n"
- " ((return (expression vec2 % (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) isampler3D sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) vec3 dPdx) \n"
+ " (declare (in) vec3 dPdy) )\n"
+ " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
"\n"
- " (signature vec3\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec3 arg0)\n"
- " (declare (in) float arg1))\n"
- " ((return (expression vec3 % (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) usampler3D sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) vec3 dPdx) \n"
+ " (declare (in) vec3 dPdy) )\n"
+ " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 arg0)\n"
- " (declare (in) float arg1))\n"
- " ((return (expression vec4 % (var_ref arg0) (var_ref arg1)))))\n"
- "))\n"
-};
-
-static const char *builtins_110_noise_fake = {
- "((function noise1\n"
- " (signature float\n"
- " (parameters\n"
- " (declare (in) float x))\n"
- " ((return (constant float (0)))))\n"
- " (signature float\n"
- " (parameters\n"
- " (declare (in) vec2 x))\n"
- " ((return (constant float (0)))))\n"
- " (signature float\n"
- " (parameters\n"
- " (declare (in) vec3 x))\n"
- " ((return (constant float (0)))))\n"
- " (signature float\n"
- " (parameters\n"
- " (declare (in) vec4 x))\n"
- " ((return (constant float (0)))))\n"
- " )\n"
+ " (declare (in) samplerCube sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) vec3 dPdx) \n"
+ " (declare (in) vec3 dPdy) )\n"
+ " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
"\n"
- " (function noise2\n"
- " (signature vec2\n"
- " (parameters\n"
- " (declare (in) float x))\n"
- " ((return (constant vec2 (0 0)))))\n"
- " (signature vec2\n"
- " (parameters\n"
- " (declare (in) vec2 x))\n"
- " ((return (constant vec2 (0 0)))))\n"
- " (signature vec2\n"
- " (parameters\n"
- " (declare (in) vec3 x))\n"
- " ((return (constant vec2 (0 0)))))\n"
- " (signature vec2\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec4 x))\n"
- " ((return (constant vec2 (0 0)))))\n"
- " )\n"
+ " (declare (in) isamplerCube sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) vec3 dPdx) \n"
+ " (declare (in) vec3 dPdy) )\n"
+ " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
"\n"
- " (function noise3\n"
- " (signature vec3\n"
- " (parameters\n"
- " (declare (in) float x))\n"
- " ((return (constant vec3 (0 0 0)))))\n"
- " (signature vec3\n"
- " (parameters\n"
- " (declare (in) vec2 x))\n"
- " ((return (constant vec3 (0 0 0)))))\n"
- " (signature vec3\n"
- " (parameters\n"
- " (declare (in) vec3 x))\n"
- " ((return (constant vec3 (0 0 0)))))\n"
- " (signature vec3\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec4 x))\n"
- " ((return (constant vec3 (0 0 0)))))\n"
- " )\n"
+ " (declare (in) usamplerCube sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) vec3 dPdx) \n"
+ " (declare (in) vec3 dPdy) )\n"
+ " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
"\n"
- " (function noise4\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) float x))\n"
- " ((return (constant vec4 (0 0 0 0)))))\n"
- " (signature vec4\n"
+ " (declare (in) sampler1DArray sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) vec2 dPdx) \n"
+ " (declare (in) vec2 dPdy) )\n"
+ " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ "\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec2 x))\n"
- " ((return (constant vec4 (0 0 0 0)))))\n"
- " (signature vec4\n"
+ " (declare (in) isampler1DArray sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) vec2 dPdx) \n"
+ " (declare (in) vec2 dPdy) )\n"
+ " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ "\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec3 x))\n"
- " ((return (constant vec4 (0 0 0 0)))))\n"
+ " (declare (in) usampler1DArray sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) vec2 dPdx) \n"
+ " (declare (in) vec2 dPdy) )\n"
+ " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ "\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 x))\n"
- " ((return (constant vec4 (0 0 0 0)))))\n"
- " )\n"
- ")\n"
-};
-
-static const char *builtins_110_normalize = {
- "((function normalize\n"
+ " (declare (in) sampler2DArray sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) vec3 dPdx) \n"
+ " (declare (in) vec3 dPdy) )\n"
+ " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ "\n"
+ " (signature ivec4\n"
+ " (parameters\n"
+ " (declare (in) isampler2DArray sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) vec3 dPdx) \n"
+ " (declare (in) vec3 dPdy) )\n"
+ " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ "\n"
+ " (signature uvec4\n"
+ " (parameters\n"
+ " (declare (in) usampler2DArray sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) vec3 dPdx) \n"
+ " (declare (in) vec3 dPdy) )\n"
+ " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ "\n"
+ "))\n"
+ ""
+;
+static const char *builtin_clamp =
+ "((function clamp\n"
" (signature float\n"
" (parameters\n"
- " (declare (in) float arg0))\n"
- " ((return (expression float * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
+ " (declare (in) float arg0)\n"
+ " (declare (in) float arg1)\n"
+ " (declare (in) float arg2))\n"
+ " ((return (expression float max (expression float min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
" (signature vec2\n"
" (parameters\n"
- " (declare (in) vec2 arg0))\n"
- " ((return (expression vec2 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
+ " (declare (in) vec2 arg0)\n"
+ " (declare (in) vec2 arg1)\n"
+ " (declare (in) vec2 arg2))\n"
+ " ((return (expression vec2 max (expression vec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
" (signature vec3\n"
" (parameters\n"
- " (declare (in) vec3 arg0))\n"
- " ((return (expression vec3 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
+ " (declare (in) vec3 arg0)\n"
+ " (declare (in) vec3 arg1)\n"
+ " (declare (in) vec3 arg2))\n"
+ " ((return (expression vec3 max (expression vec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 arg0))\n"
- " ((return (expression vec4 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
- "))\n"
-};
-
-static const char *builtins_110_not = {
- "((function not\n"
- " (signature bvec2\n"
- " (parameters\n"
- " (declare (in) bvec2 arg0))\n"
- " ((return (expression bvec2 ! (var_ref arg0)))))\n"
+ " (declare (in) vec4 arg0)\n"
+ " (declare (in) vec4 arg1)\n"
+ " (declare (in) vec4 arg2))\n"
+ " ((return (expression vec4 max (expression vec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
- " (signature bvec3\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) bvec3 arg0))\n"
- " ((return (expression bvec3 ! (var_ref arg0)))))\n"
+ " (declare (in) vec2 arg0)\n"
+ " (declare (in) float arg1)\n"
+ " (declare (in) float arg2))\n"
+ " ((return (expression vec2 max (expression vec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
- " (signature bvec4\n"
- " (parameters\n"
- " (declare (in) bvec4 arg0))\n"
- " ((return (expression bvec4 ! (var_ref arg0)))))\n"
- "))\n"
-};
-
-static const char *builtins_110_notEqual = {
- "((function notEqual\n"
- " (signature bvec2\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) vec2 arg0)\n"
- " (declare (in) vec2 arg1))\n"
- " ((declare () bvec2 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n"
- " (return (var_ref temp))))\n"
+ " (declare (in) vec3 arg0)\n"
+ " (declare (in) float arg1)\n"
+ " (declare (in) float arg2))\n"
+ " ((return (expression vec3 max (expression vec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
- " (signature bvec3\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) vec3 arg0)\n"
- " (declare (in) vec3 arg1))\n"
- " ((declare () bvec3 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1))))\n"
- " (return (var_ref temp))))\n"
+ " (declare (in) vec4 arg0)\n"
+ " (declare (in) float arg1)\n"
+ " (declare (in) float arg2))\n"
+ " ((return (expression vec4 max (expression vec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
- " (signature bvec4\n"
+ " (signature int\n"
" (parameters\n"
- " (declare (in) vec4 arg0)\n"
- " (declare (in) vec4 arg1))\n"
- " ((declare () bvec4 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1))))\n"
- " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool != (swiz w (var_ref arg0))(swiz w (var_ref arg1))))\n"
- " (return (var_ref temp))))\n"
+ " (declare (in) int arg0)\n"
+ " (declare (in) int arg1)\n"
+ " (declare (in) int arg2))\n"
+ " ((return (expression int max (expression int min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
- " (signature bvec2\n"
+ " (signature ivec2\n"
" (parameters\n"
" (declare (in) ivec2 arg0)\n"
- " (declare (in) ivec2 arg1))\n"
- " ((declare () bvec2 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n"
- " (return (var_ref temp))))\n"
+ " (declare (in) ivec2 arg1)\n"
+ " (declare (in) ivec2 arg2))\n"
+ " ((return (expression ivec2 max (expression ivec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
- " (signature bvec3\n"
+ " (signature ivec3\n"
" (parameters\n"
" (declare (in) ivec3 arg0)\n"
- " (declare (in) ivec3 arg1))\n"
- " ((declare () bvec3 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1))))\n"
- " (return (var_ref temp))))\n"
+ " (declare (in) ivec3 arg1)\n"
+ " (declare (in) ivec3 arg2))\n"
+ " ((return (expression ivec3 max (expression ivec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
- " (signature bvec4\n"
+ " (signature ivec4\n"
" (parameters\n"
" (declare (in) ivec4 arg0)\n"
- " (declare (in) ivec4 arg1))\n"
- " ((declare () bvec4 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1))))\n"
- " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool != (swiz w (var_ref arg0))(swiz w (var_ref arg1))))\n"
- " (return (var_ref temp))))\n"
- "))\n"
-};
-
-static const char *builtins_110_pow = {
- "((function pow\n"
- " (signature float\n"
+ " (declare (in) ivec4 arg1)\n"
+ " (declare (in) ivec4 arg2))\n"
+ " ((return (expression ivec4 max (expression ivec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ "\n"
+ " (signature ivec2\n"
" (parameters\n"
- " (declare (in) float arg0)\n"
- " (declare (in) float arg1))\n"
- " ((return (expression float pow (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) ivec2 arg0)\n"
+ " (declare (in) int arg1)\n"
+ " (declare (in) int arg2))\n"
+ " ((return (expression ivec2 max (expression ivec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
- " (signature vec2\n"
+ " (signature ivec3\n"
" (parameters\n"
- " (declare (in) vec2 arg0)\n"
- " (declare (in) vec2 arg1))\n"
- " ((return (expression vec2 pow (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) ivec3 arg0)\n"
+ " (declare (in) int arg1)\n"
+ " (declare (in) int arg2))\n"
+ " ((return (expression ivec3 max (expression ivec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
- " (signature vec3\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec3 arg0)\n"
- " (declare (in) vec3 arg1))\n"
- " ((return (expression vec3 pow (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) ivec4 arg0)\n"
+ " (declare (in) int arg1)\n"
+ " (declare (in) int arg2))\n"
+ " ((return (expression ivec4 max (expression ivec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
- " (signature vec4\n"
+ " (signature uint\n"
" (parameters\n"
- " (declare (in) vec4 arg0)\n"
- " (declare (in) vec4 arg1))\n"
- " ((return (expression vec4 pow (var_ref arg0) (var_ref arg1)))))\n"
- "))\n"
-};
-
-static const char *builtins_110_radians = {
- "((function radians\n"
- " (signature float\n"
+ " (declare (in) uint arg0)\n"
+ " (declare (in) uint arg1)\n"
+ " (declare (in) uint arg2))\n"
+ " ((return (expression uint max (expression uint min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ "\n"
+ " (signature uvec2\n"
" (parameters\n"
- " (declare (in) float arg0))\n"
- " ((return (expression float * (var_ref arg0) (constant float (0.017453))))))\n"
+ " (declare (in) uvec2 arg0)\n"
+ " (declare (in) uvec2 arg1)\n"
+ " (declare (in) uvec2 arg2))\n"
+ " ((return (expression uvec2 max (expression uvec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
- " (signature vec2\n"
+ " (signature uvec3\n"
" (parameters\n"
- " (declare (in) vec2 arg0))\n"
- " ((return (expression vec2 * (var_ref arg0) (constant float (0.017453))))))\n"
+ " (declare (in) uvec3 arg0)\n"
+ " (declare (in) uvec3 arg1)\n"
+ " (declare (in) uvec3 arg2))\n"
+ " ((return (expression uvec3 max (expression uvec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
- " (signature vec3\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec3 arg0))\n"
- " ((return (expression vec3 * (var_ref arg0) (constant float (0.017453))))))\n"
+ " (declare (in) uvec4 arg0)\n"
+ " (declare (in) uvec4 arg1)\n"
+ " (declare (in) uvec4 arg2))\n"
+ " ((return (expression uvec4 max (expression uvec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
- " (signature vec4\n"
+ " (signature uvec2\n"
" (parameters\n"
- " (declare (in) vec4 arg0))\n"
- " ((return (expression vec4 * (var_ref arg0) (constant float (0.017453))))))\n"
- "))\n"
-};
-
-static const char *builtins_110_reflect = {
- "((function reflect\n"
- " (signature float\n"
+ " (declare (in) uvec2 arg0)\n"
+ " (declare (in) uint arg1)\n"
+ " (declare (in) uint arg2))\n"
+ " ((return (expression uvec2 max (expression uvec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ "\n"
+ " (signature uvec3\n"
" (parameters\n"
- " (declare (in) float i)\n"
- " (declare (in) float n))\n"
- " ((return (expression float -\n"
- " (var_ref i)\n"
- " (expression float *\n"
- " (constant float (2.0))\n"
- " (expression float *\n"
- " (expression float dot\n"
- " (var_ref n)\n"
- " (var_ref i))\n"
- " (var_ref n)))))))\n"
- "\n"
- " (signature vec2\n"
- " (parameters\n"
- " (declare (in) vec2 i)\n"
- " (declare (in) vec2 n))\n"
- " ((return (expression vec2 -\n"
- " (var_ref i)\n"
- " (expression vec2 *\n"
- " (constant float (2.0))\n"
- " (expression vec2 *\n"
- " (expression float dot\n"
- " (var_ref n)\n"
- " (var_ref i))\n"
- " (var_ref n)))))))\n"
+ " (declare (in) uvec3 arg0)\n"
+ " (declare (in) uint arg1)\n"
+ " (declare (in) uint arg2))\n"
+ " ((return (expression uvec3 max (expression uvec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
"\n"
- " (signature vec3\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec3 i)\n"
- " (declare (in) vec3 n))\n"
- " ((return (expression vec3 -\n"
- " (var_ref i)\n"
- " (expression vec3 *\n"
- " (constant float (2.0))\n"
- " (expression vec3 *\n"
- " (expression float dot\n"
- " (var_ref n)\n"
- " (var_ref i))\n"
- " (var_ref n)))))))\n"
- "\n"
+ " (declare (in) uvec4 arg0)\n"
+ " (declare (in) uint arg1)\n"
+ " (declare (in) uint arg2))\n"
+ " ((return (expression uvec4 max (expression uvec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_texture2DRect =
+ "((function texture2DRect\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 i)\n"
- " (declare (in) vec4 n))\n"
- " ((return (expression vec4 -\n"
- " (var_ref i)\n"
- " (expression vec4 *\n"
- " (constant float (2.0))\n"
- " (expression vec4 *\n"
- " (expression float dot\n"
- " (var_ref n)\n"
- " (var_ref i))\n"
- " (var_ref n)))))))\n"
+ " (declare (in) sampler2DRect sampler)\n"
+ " (declare (in) vec2 P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
"\n"
"))\n"
-};
-
-static const char *builtins_110_refract = {
- "((function refract\n"
+ ""
+;
+static const char *builtin_cosh =
+ "((function cosh\n"
" (signature float\n"
" (parameters\n"
- " (declare (in) float i)\n"
- " (declare (in) float n)\n"
- " (declare (in) float eta))\n"
- " ((declare () float k)\n"
- " (assign (constant bool (1)) (var_ref k)\n"
- " (expression float - (constant float (1.0))\n"
- " (expression float * (var_ref eta)\n"
- " (expression float * (var_ref eta)\n"
- " (expression float - (constant float (1.0))\n"
- " (expression float * \n"
- " (expression float dot (var_ref n) (var_ref i))\n"
- " (expression float dot (var_ref n) (var_ref i))))))))\n"
- " (if (expression bool < (var_ref k) (constant float (0.0)))\n"
- " ((return (constant float (0.0))))\n"
- " ((return (expression float -\n"
- " (expression float * (var_ref eta) (var_ref i))\n"
- " (expression float *\n"
- " (expression float +\n"
- " (expression float * (var_ref eta)\n"
- " (expression float dot (var_ref n) (var_ref i)))\n"
- " (expression float sqrt (var_ref k)))\n"
- " (var_ref n))))))))\n"
- "\n"
+ " (declare (in) float x))\n"
+ " ((return (expression float * (constant float (0.5))\n"
+ " (expression float +\n"
+ " (expression float exp (var_ref x))\n"
+ " (expression float exp (expression float neg (var_ref x))))))))\n"
" (signature vec2\n"
" (parameters\n"
- " (declare (in) vec2 i)\n"
- " (declare (in) vec2 n)\n"
- " (declare (in) float eta))\n"
- " ((declare () float k)\n"
- " (assign (constant bool (1)) (var_ref k)\n"
- " (expression float - (constant float (1.0))\n"
- " (expression float * (var_ref eta)\n"
- " (expression float * (var_ref eta)\n"
- " (expression float - (constant float (1.0))\n"
- " (expression float * \n"
- " (expression float dot (var_ref n) (var_ref i))\n"
- " (expression float dot (var_ref n) (var_ref i))))))))\n"
- " (if (expression bool < (var_ref k) (constant float (0.0)))\n"
- " ((return (constant vec2 (0.0 0.0))))\n"
- " ((return (expression vec2 -\n"
- " (expression vec2 * (var_ref eta) (var_ref i))\n"
- " (expression vec2 *\n"
- " (expression float +\n"
- " (expression float * (var_ref eta)\n"
- " (expression float dot (var_ref n) (var_ref i)))\n"
- " (expression float sqrt (var_ref k)))\n"
- " (var_ref n))))))))\n"
- "\n"
+ " (declare (in) vec2 x))\n"
+ " ((return (expression vec2 * (constant vec2 (0.5))\n"
+ " (expression vec2 +\n"
+ " (expression vec2 exp (var_ref x))\n"
+ " (expression vec2 exp (expression vec2 neg (var_ref x))))))))\n"
" (signature vec3\n"
" (parameters\n"
- " (declare (in) vec3 i)\n"
- " (declare (in) vec3 n)\n"
- " (declare (in) float eta))\n"
- " ((declare () float k)\n"
- " (assign (constant bool (1)) (var_ref k)\n"
- " (expression float - (constant float (1.0))\n"
- " (expression float * (var_ref eta)\n"
- " (expression float * (var_ref eta)\n"
- " (expression float - (constant float (1.0))\n"
- " (expression float * \n"
- " (expression float dot (var_ref n) (var_ref i))\n"
- " (expression float dot (var_ref n) (var_ref i))))))))\n"
- " (if (expression bool < (var_ref k) (constant float (0.0)))\n"
- " ((return (constant vec3 (0.0 0.0 0.0))))\n"
- " ((return (expression vec3 -\n"
- " (expression vec3 * (var_ref eta) (var_ref i))\n"
- " (expression vec3 *\n"
- " (expression float +\n"
- " (expression float * (var_ref eta)\n"
- " (expression float dot (var_ref n) (var_ref i)))\n"
- " (expression float sqrt (var_ref k)))\n"
- " (var_ref n))))))))\n"
- "\n"
+ " (declare (in) vec3 x))\n"
+ " ((return (expression vec3 * (constant vec3 (0.5))\n"
+ " (expression vec3 +\n"
+ " (expression vec3 exp (var_ref x))\n"
+ " (expression vec3 exp (expression vec3 neg (var_ref x))))))))\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 i)\n"
- " (declare (in) vec4 n)\n"
- " (declare (in) float eta))\n"
- " ((declare () float k)\n"
- " (assign (constant bool (1)) (var_ref k)\n"
- " (expression float - (constant float (1.0))\n"
- " (expression float * (var_ref eta)\n"
- " (expression float * (var_ref eta)\n"
- " (expression float - (constant float (1.0))\n"
- " (expression float * \n"
- " (expression float dot (var_ref n) (var_ref i))\n"
- " (expression float dot (var_ref n) (var_ref i))))))))\n"
- " (if (expression bool < (var_ref k) (constant float (0.0)))\n"
- " ((return (constant vec4 (0.0 0.0 0.0 0.0))))\n"
- " ((return (expression vec4 -\n"
- " (expression vec4 * (var_ref eta) (var_ref i))\n"
- " (expression vec4 *\n"
- " (expression float +\n"
- " (expression float * (var_ref eta)\n"
- " (expression float dot (var_ref n) (var_ref i)))\n"
- " (expression float sqrt (var_ref k)))\n"
- " (var_ref n))))))))\n"
+ " (declare (in) vec4 x))\n"
+ " ((return (expression vec4 * (constant vec4 (0.5))\n"
+ " (expression vec4 +\n"
+ " (expression vec4 exp (var_ref x))\n"
+ " (expression vec4 exp (expression vec4 neg (var_ref x))))))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_texture1DArrayLod =
+ "((function texture1DArrayLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler1DArray sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
"\n"
"))\n"
-};
-
-static const char *builtins_110_sign = {
- "((function sign\n"
+ ""
+;
+static const char *builtin_asin =
+ "((function asin\n"
" (signature float\n"
" (parameters\n"
" (declare (in) float x))\n"
- " ((return (expression float sign (var_ref x)))))\n"
+ " ((return (expression float *\n"
+ " (expression float sign (var_ref x))\n"
+ " (expression float -\n"
+ " (expression float *\n"
+ " (constant float (3.1415926))\n"
+ " (constant float (0.5)))\n"
+ " (expression float *\n"
+ " (expression float sqrt\n"
+ " (expression float -\n"
+ " (constant float (1.0))\n"
+ " (expression float abs (var_ref x))))\n"
+ " (expression float +\n"
+ " (constant float (1.5707288))\n"
+ " (expression float *\n"
+ " (expression float abs (var_ref x))\n"
+ " (expression float +\n"
+ " (constant float (-0.2121144))\n"
+ " (expression float *\n"
+ " (constant float (0.0742610))\n"
+ " (expression float abs (var_ref x))))))))))))\n"
"\n"
" (signature vec2\n"
" (parameters\n"
" (declare (in) vec2 x))\n"
- " ((return (expression vec2 sign (var_ref x)))))\n"
+ " ((return (expression vec2 *\n"
+ " (expression vec2 sign (var_ref x))\n"
+ " (expression vec2 -\n"
+ " (expression float *\n"
+ " (constant float (3.1415926))\n"
+ " (constant float (0.5)))\n"
+ " (expression vec2 *\n"
+ " (expression vec2 sqrt\n"
+ " (expression vec2 -\n"
+ " (constant float (1.0))\n"
+ " (expression vec2 abs (var_ref x))))\n"
+ " (expression vec2 +\n"
+ " (constant float (1.5707288))\n"
+ " (expression vec2 *\n"
+ " (expression vec2 abs (var_ref x))\n"
+ " (expression vec2 +\n"
+ " (constant float (-0.2121144))\n"
+ " (expression vec2 *\n"
+ " (constant float (0.0742610))\n"
+ " (expression vec2 abs (var_ref x))))))))))))\n"
"\n"
" (signature vec3\n"
" (parameters\n"
" (declare (in) vec3 x))\n"
- " ((return (expression vec3 sign (var_ref x)))))\n"
+ " ((return (expression vec3 *\n"
+ " (expression vec3 sign (var_ref x))\n"
+ " (expression vec3 -\n"
+ " (expression float *\n"
+ " (constant float (3.1415926))\n"
+ " (constant float (0.5)))\n"
+ " (expression vec3 *\n"
+ " (expression vec3 sqrt\n"
+ " (expression vec3 -\n"
+ " (constant float (1.0))\n"
+ " (expression vec3 abs (var_ref x))))\n"
+ " (expression vec3 +\n"
+ " (constant float (1.5707288))\n"
+ " (expression vec3 *\n"
+ " (expression vec3 abs (var_ref x))\n"
+ " (expression vec3 +\n"
+ " (constant float (-0.2121144))\n"
+ " (expression vec3 *\n"
+ " (constant float (0.0742610))\n"
+ " (expression vec3 abs (var_ref x))))))))))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
" (declare (in) vec4 x))\n"
- " ((return (expression vec4 sign (var_ref x)))))\n"
- "))\n"
-};
-
-static const char *builtins_110_sin = {
- "((function sin\n"
- " (signature float\n"
- " (parameters\n"
- " (declare (in) float angle))\n"
- " ((return (expression float sin (var_ref angle)))))\n"
+ " ((return (expression vec4 *\n"
+ " (expression vec4 sign (var_ref x))\n"
+ " (expression vec4 -\n"
+ " (expression float *\n"
+ " (constant float (3.1415926))\n"
+ " (constant float (0.5)))\n"
+ " (expression vec4 *\n"
+ " (expression vec4 sqrt\n"
+ " (expression vec4 -\n"
+ " (constant float (1.0))\n"
+ " (expression vec4 abs (var_ref x))))\n"
+ " (expression vec4 +\n"
+ " (constant float (1.5707288))\n"
+ " (expression vec4 *\n"
+ " (expression vec4 abs (var_ref x))\n"
+ " (expression vec4 +\n"
+ " (constant float (-0.2121144))\n"
+ " (expression vec4 *\n"
+ " (constant float (0.0742610))\n"
+ " (expression vec4 abs (var_ref x))))))))))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_texture1DProj =
+ "((function texture1DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) vec2 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
"\n"
- " (signature vec2\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) vec2 angle))\n"
- " ((return (expression vec2 sin (var_ref angle)))))\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) vec4 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
"\n"
- " (signature vec3\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) vec3 angle))\n"
- " ((return (expression vec3 sin (var_ref angle)))))\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 angle))\n"
- " ((return (expression vec4 sin (var_ref angle)))))\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+ "\n"
"))\n"
-};
-
-static const char *builtins_110_smoothstep = {
- "((function smoothstep\n"
- " (signature float\n"
+ ""
+;
+static const char *builtin_lessThan =
+ "((function lessThan\n"
+ " (signature bvec2\n"
" (parameters\n"
- " (declare (in) float edge0)\n"
- " (declare (in) float edge1)\n"
- " (declare (in) float x))\n"
- " ((declare () float t)\n"
+ " (declare (in) vec2 arg0)\n"
+ " (declare (in) vec2 arg1))\n"
+ " ((declare () bvec2 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- " (assign (constant bool (1)) (var_ref t)\n"
- " (expression float max\n"
- " (expression float min\n"
- " (expression float / (expression float - (var_ref x) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
- " (constant float (1.0)))\n"
- " (constant float (0.0))))\n"
- " (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"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in) vec3 arg0)\n"
+ " (declare (in) vec3 arg1))\n"
+ " ((declare () bvec3 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- " (signature vec2\n"
+ " (signature bvec4\n"
" (parameters\n"
- " (declare (in) float edge0)\n"
- " (declare (in) float edge1)\n"
- " (declare (in) vec2 x))\n"
- " ((declare () vec2 t)\n"
- " (declare () vec2 retval)\n"
+ " (declare (in) vec4 arg0)\n"
+ " (declare (in) vec4 arg1))\n"
+ " ((declare () bvec4 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool < (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- " (assign (constant bool (1)) (swiz x (var_ref t))\n"
- " (expression float max\n"
- " (expression float min\n"
- " (expression float / (expression float - (swiz x (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
- " (constant float (1.0)))\n"
- " (constant float (0.0))))\n"
- " (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"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in) ivec2 arg0)\n"
+ " (declare (in) ivec2 arg1))\n"
+ " ((declare () bvec2 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- " (assign (constant bool (1)) (swiz y (var_ref t))\n"
- " (expression float max\n"
- " (expression float min\n"
- " (expression float / (expression float - (swiz y (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
- " (constant float (1.0)))\n"
- " (constant float (0.0))))\n"
- " (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"
- " (return (var_ref retval))\n"
- " ))\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in) ivec3 arg0)\n"
+ " (declare (in) ivec3 arg1))\n"
+ " ((declare () bvec3 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- " (signature vec3\n"
+ " (signature bvec4\n"
" (parameters\n"
- " (declare (in) float edge0)\n"
- " (declare (in) float edge1)\n"
- " (declare (in) vec3 x))\n"
- " ((declare () vec3 t)\n"
- " (declare () vec3 retval)\n"
+ " (declare (in) ivec4 arg0)\n"
+ " (declare (in) ivec4 arg1))\n"
+ " ((declare () bvec4 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool < (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- " (assign (constant bool (1)) (swiz x (var_ref t))\n"
- " (expression float max\n"
- " (expression float min\n"
- " (expression float / (expression float - (swiz x (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
- " (constant float (1.0)))\n"
- " (constant float (0.0))))\n"
- " (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"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in) uvec2 arg0)\n"
+ " (declare (in) uvec2 arg1))\n"
+ " ((declare () bvec2 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- " (assign (constant bool (1)) (swiz y (var_ref t))\n"
- " (expression float max\n"
- " (expression float min\n"
- " (expression float / (expression float - (swiz y (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
- " (constant float (1.0)))\n"
- " (constant float (0.0))))\n"
- " (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"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in) uvec3 arg0)\n"
+ " (declare (in) uvec3 arg1))\n"
+ " ((declare () bvec3 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- " (assign (constant bool (1)) (swiz z (var_ref t))\n"
- " (expression float max\n"
- " (expression float min\n"
- " (expression float / (expression float - (swiz z (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
- " (constant float (1.0)))\n"
- " (constant float (0.0))))\n"
- " (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"
- " (return (var_ref retval))\n"
- " ))\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in) uvec4 arg0)\n"
+ " (declare (in) uvec4 arg1))\n"
+ " ((declare () bvec4 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool < (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_shadow2DProj =
+ "((function shadow2DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler2DShadow sampler)\n"
+ " (declare (in) vec4 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) ))))\n"
"\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler2DShadow sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((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"
"\n"
+ "))\n"
+ ""
+;
+static const char *builtin_textureLod =
+ "((function textureLod\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) float edge0)\n"
- " (declare (in) float edge1)\n"
- " (declare (in) vec4 x))\n"
- " ((declare () vec4 t)\n"
- " (declare () vec4 retval)\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) float P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
"\n"
- " (assign (constant bool (1)) (swiz x (var_ref t))\n"
- " (expression float max\n"
- " (expression float min\n"
- " (expression float / (expression float - (swiz x (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
- " (constant float (1.0)))\n"
- " (constant float (0.0))))\n"
- " (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"
+ " (signature ivec4\n"
+ " (parameters\n"
+ " (declare (in) isampler1D sampler)\n"
+ " (declare (in) float P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
"\n"
- " (assign (constant bool (1)) (swiz y (var_ref t))\n"
- " (expression float max\n"
- " (expression float min\n"
- " (expression float / (expression float - (swiz y (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
- " (constant float (1.0)))\n"
- " (constant float (0.0))))\n"
- " (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"
+ " (signature uvec4\n"
+ " (parameters\n"
+ " (declare (in) usampler1D sampler)\n"
+ " (declare (in) float P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
"\n"
- " (assign (constant bool (1)) (swiz z (var_ref t))\n"
- " (expression float max\n"
- " (expression float min\n"
- " (expression float / (expression float - (swiz z (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
- " (constant float (1.0)))\n"
- " (constant float (0.0))))\n"
- " (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"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler2D sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
"\n"
- " (assign (constant bool (1)) (swiz w (var_ref t))\n"
- " (expression float max\n"
- " (expression float min\n"
- " (expression float / (expression float - (swiz w (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
- " (constant float (1.0)))\n"
- " (constant float (0.0))))\n"
- " (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"
- " (return (var_ref retval))\n"
- " ))\n"
+ " (signature ivec4\n"
+ " (parameters\n"
+ " (declare (in) isampler2D sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
"\n"
- " (signature vec2\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec2 edge0)\n"
- " (declare (in) vec2 edge1)\n"
- " (declare (in) vec2 x))\n"
- " ((return (expression vec2 max\n"
- " (expression vec2 min\n"
- " (expression vec2 / (expression vec2 - (var_ref x) (var_ref edge0)) (expression vec2 - (var_ref edge1) (var_ref edge0)))\n"
- " (constant vec2 (1.0 1.0)))\n"
- " (constant vec2 (0.0 0.0))))))\n"
+ " (declare (in) usampler2D sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
"\n"
- " (signature vec3\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) vec3 edge0)\n"
- " (declare (in) vec3 edge1)\n"
- " (declare (in) vec3 x))\n"
- " ((return (expression vec3 max\n"
- " (expression vec3 min\n"
- " (expression vec3 / (expression vec3 - (var_ref x) (var_ref edge0)) (expression vec3 - (var_ref edge1) (var_ref edge0)))\n"
- " (constant vec3 (1.0 1.0 1.0)))\n"
- " (constant vec3 (0.0 0.0 0.0))))))\n"
+ " (declare (in) sampler3D sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ "\n"
+ " (signature ivec4\n"
+ " (parameters\n"
+ " (declare (in) isampler3D sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ "\n"
+ " (signature uvec4\n"
+ " (parameters\n"
+ " (declare (in) usampler3D sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 edge0)\n"
- " (declare (in) vec4 edge1)\n"
- " (declare (in) vec4 x))\n"
- " ((return (expression vec4 max\n"
- " (expression vec4 min\n"
- " (expression vec4 / (expression vec4 - (var_ref x) (var_ref edge0)) (expression vec4 - (var_ref edge1) (var_ref edge0)))\n"
- " (constant vec4 (1.0 1.0 1.0 1.0)))\n"
- " (constant vec4 (0.0 0.0 0.0 0.0))))))\n"
- "))\n"
+ " (declare (in) samplerCube sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
"\n"
-};
-
-static const char *builtins_110_sqrt = {
- "((function sqrt\n"
- " (signature float\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) float arg0))\n"
- " ((return (expression float sqrt (var_ref arg0)))))\n"
+ " (declare (in) isamplerCube sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
"\n"
- " (signature vec2\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec2 arg0))\n"
- " ((return (expression vec2 sqrt (var_ref arg0)))))\n"
+ " (declare (in) usamplerCube sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
"\n"
- " (signature vec3\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) vec3 arg0))\n"
- " ((return (expression vec3 sqrt (var_ref arg0)))))\n"
+ " (declare (in) sampler1DArray sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ "\n"
+ " (signature ivec4\n"
+ " (parameters\n"
+ " (declare (in) isampler1DArray sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ "\n"
+ " (signature uvec4\n"
+ " (parameters\n"
+ " (declare (in) usampler1DArray sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 arg0))\n"
- " ((return (expression vec4 sqrt (var_ref arg0)))))\n"
+ " (declare (in) sampler2DArray sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ "\n"
+ " (signature ivec4\n"
+ " (parameters\n"
+ " (declare (in) isampler2DArray sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ "\n"
+ " (signature uvec4\n"
+ " (parameters\n"
+ " (declare (in) usampler2DArray sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ "\n"
"))\n"
-};
-
-static const char *builtins_110_step = {
- "((function step\n"
+ ""
+;
+static const char *builtin_faceforward =
+ "((function faceforward\n"
" (signature float\n"
" (parameters\n"
- " (declare (in) float edge)\n"
- " (declare (in) float x))\n"
- " ((return (expression float b2f (expression bool >= (var_ref x) (var_ref edge))))))\n"
+ " (declare (in) float N)\n"
+ " (declare (in) float I)\n"
+ " (declare (in) float Nref))\n"
+ " ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0)))\n"
+ " ((return (var_ref N)))\n"
+ " ((return (expression float neg (var_ref N)))))))\n"
"\n"
" (signature vec2\n"
" (parameters\n"
- " (declare (in) float edge)\n"
- " (declare (in) vec2 x))\n"
- " ((declare () vec2 t)\n"
- " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool >= (swiz x (var_ref x))(var_ref edge))))\n"
- " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool >= (swiz y (var_ref x))(var_ref edge))))\n"
- " (return (var_ref t))))\n"
+ " (declare (in) vec2 N)\n"
+ " (declare (in) vec2 I)\n"
+ " (declare (in) vec2 Nref))\n"
+ " ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0)))\n"
+ " ((return (var_ref N)))\n"
+ " ((return (expression vec2 neg (var_ref N)))))))\n"
"\n"
" (signature vec3\n"
" (parameters\n"
- " (declare (in) float edge)\n"
- " (declare (in) vec3 x))\n"
- " ((declare () vec3 t)\n"
- " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool >= (swiz x (var_ref x))(var_ref edge))))\n"
- " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool >= (swiz y (var_ref x))(var_ref edge))))\n"
- " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool >= (swiz z (var_ref x))(var_ref edge))))\n"
- " (return (var_ref t))))\n"
+ " (declare (in) vec3 N)\n"
+ " (declare (in) vec3 I)\n"
+ " (declare (in) vec3 Nref))\n"
+ " ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0)))\n"
+ " ((return (var_ref N)))\n"
+ " ((return (expression vec3 neg (var_ref N)))))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) float edge)\n"
- " (declare (in) vec4 x))\n"
- " ((declare () vec4 t)\n"
- " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool >= (swiz x (var_ref x))(var_ref edge))))\n"
- " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool >= (swiz y (var_ref x))(var_ref edge))))\n"
- " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool >= (swiz z (var_ref x))(var_ref edge))))\n"
- " (assign (constant bool (1)) (swiz w (var_ref t)) (expression float b2f (expression bool >= (swiz w (var_ref x))(var_ref edge))))\n"
- " (return (var_ref t))))\n"
+ " (declare (in) vec4 N)\n"
+ " (declare (in) vec4 I)\n"
+ " (declare (in) vec4 Nref))\n"
+ " ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0)))\n"
+ " ((return (var_ref N)))\n"
+ " ((return (expression vec4 neg (var_ref N)))))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_abs =
+ "((function abs\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in) float arg0))\n"
+ " ((return (expression float abs (var_ref arg0)))))\n"
"\n"
" (signature vec2\n"
" (parameters\n"
- " (declare (in) vec2 edge)\n"
- " (declare (in) vec2 x))\n"
- " ((declare () vec2 t)\n"
- " (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"
- " (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"
- " (return (var_ref t))))\n"
+ " (declare (in) vec2 arg0))\n"
+ " ((return (expression vec2 abs (var_ref arg0)))))\n"
"\n"
" (signature vec3\n"
" (parameters\n"
- " (declare (in) vec3 edge)\n"
- " (declare (in) vec3 x))\n"
- " ((declare () vec3 t)\n"
- " (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"
- " (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"
- " (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"
- " (return (var_ref t))))\n"
+ " (declare (in) vec3 arg0))\n"
+ " ((return (expression vec3 abs (var_ref arg0)))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 edge)\n"
- " (declare (in) vec4 x))\n"
- " ((declare () vec4 t)\n"
- " (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"
- " (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"
- " (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"
- " (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"
- " (return (var_ref t))))\n"
+ " (declare (in) vec4 arg0))\n"
+ " ((return (expression vec4 abs (var_ref arg0)))))\n"
"))\n"
- "\n"
-};
-
-static const char *builtins_110_tan = {
- "((function tan\n"
+ ""
+;
+static const char *builtin_log2 =
+ "((function log2\n"
" (signature float\n"
" (parameters\n"
- " (declare (in) float angle))\n"
- " ((return (expression float / (expression float sin (var_ref angle)) (expression float cos (var_ref angle))))))\n"
+ " (declare (in) float arg0))\n"
+ " ((return (expression float log2 (var_ref arg0)))))\n"
"\n"
" (signature vec2\n"
" (parameters\n"
- " (declare (in) vec2 angle))\n"
- " ((return (expression vec2 / (expression vec2 sin (var_ref angle)) (expression vec2 cos (var_ref angle))))))\n"
+ " (declare (in) vec2 arg0))\n"
+ " ((return (expression vec2 log2 (var_ref arg0)))))\n"
"\n"
" (signature vec3\n"
" (parameters\n"
- " (declare (in) vec3 angle))\n"
- " ((return (expression vec3 / (expression vec3 sin (var_ref angle)) (expression vec3 cos (var_ref angle))))))\n"
+ " (declare (in) vec3 arg0))\n"
+ " ((return (expression vec3 log2 (var_ref arg0)))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 angle))\n"
- " ((return (expression vec4 / (expression vec4 sin (var_ref angle)) (expression vec4 cos (var_ref angle))))))\n"
+ " (declare (in) vec4 arg0))\n"
+ " ((return (expression vec4 log2 (var_ref arg0)))))\n"
"))\n"
-};
-
-static const char *builtins_110_textures = {
- "((function texture1D\n"
+ ""
+;
+static const char *builtin_shadow2DRect =
+ "((function shadow2DRect\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) float P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) sampler2DRectShadow sampler)\n"
+ " (declare (in) vec3 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
"\n"
- ")\n"
- " (function texture1DLod\n"
- " (signature vec4\n"
+ "))\n"
+ ""
+;
+static const char *builtin_lessThanEqual =
+ "((function lessThanEqual\n"
+ " (signature bvec2\n"
" (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) float P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ " (declare (in) vec2 arg0)\n"
+ " (declare (in) vec2 arg1))\n"
+ " ((declare () bvec2 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- ")\n"
- " (function texture1DProj\n"
- " (signature vec4\n"
+ " (signature bvec3\n"
" (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) vec2 P) )\n"
- " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
+ " (declare (in) vec3 arg0)\n"
+ " (declare (in) vec3 arg1))\n"
+ " ((declare () bvec3 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- " (signature vec4\n"
+ " (signature bvec4\n"
" (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) vec4 P) )\n"
- " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+ " (declare (in) vec4 arg0)\n"
+ " (declare (in) vec4 arg1))\n"
+ " ((declare () bvec4 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool <= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- ")\n"
- " (function texture1DProjLod\n"
- " (signature vec4\n"
+ " (signature bvec2\n"
" (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
+ " (declare (in) ivec2 arg0)\n"
+ " (declare (in) ivec2 arg1))\n"
+ " ((declare () bvec2 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- " (signature vec4\n"
+ " (signature bvec3\n"
" (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+ " (declare (in) ivec3 arg0)\n"
+ " (declare (in) ivec3 arg1))\n"
+ " ((declare () bvec3 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- ")\n"
- " (function texture2D\n"
- " (signature vec4\n"
+ " (signature bvec4\n"
" (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) vec2 P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) ivec4 arg0)\n"
+ " (declare (in) ivec4 arg1))\n"
+ " ((declare () bvec4 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool <= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- ")\n"
- "(function texture2DLod\n"
- " (signature vec4\n"
+ " (signature bvec2\n"
" (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ " (declare (in) uvec2 arg0)\n"
+ " (declare (in) uvec2 arg1))\n"
+ " ((declare () bvec2 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- ")\n"
- " (function texture2DProj\n"
- " (signature vec4\n"
+ " (signature bvec3\n"
" (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) vec3 P) )\n"
- " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
+ " (declare (in) uvec3 arg0)\n"
+ " (declare (in) uvec3 arg1))\n"
+ " ((declare () bvec3 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- " (signature vec4\n"
+ " (signature bvec4\n"
" (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) vec4 P) )\n"
- " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
- "\n"
- ")\n"
- " (function texture2DProjLod\n"
- " (signature vec4\n"
+ " (declare (in) uvec4 arg0)\n"
+ " (declare (in) uvec4 arg1))\n"
+ " ((declare () bvec4 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool <= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_transpose =
+ "((function transpose\n"
+ " (signature mat2\n"
" (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
+ " (declare (in) mat2 m))\n"
+ " ((declare () mat2 t)\n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
+ "(return (var_ref t))))\n"
"\n"
- " (signature vec4\n"
+ " (signature mat3x2\n"
" (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+ " (declare (in) mat2x3 m))\n"
+ " ((declare () mat3x2 t)\n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
+ "(return (var_ref t))))\n"
"\n"
- ")\n"
- " (function texture3D\n"
- " (signature vec4\n"
+ " (signature mat4x2\n"
" (parameters\n"
- " (declare (in) sampler3D sampler)\n"
- " (declare (in) vec3 P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) mat2x4 m))\n"
+ " ((declare () mat4x2 t)\n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (1))))) \n"
+ "(return (var_ref t))))\n"
"\n"
- ")\n"
- " (function texture3DLod\n"
- " (signature vec4\n"
+ " (signature mat2x3\n"
" (parameters\n"
- " (declare (in) sampler3D sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ " (declare (in) mat3x2 m))\n"
+ " ((declare () mat2x3 t)\n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
+ " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
+ "(return (var_ref t))))\n"
"\n"
- ")\n"
- " (function texture3DProj\n"
- " (signature vec4\n"
+ " (signature mat3\n"
" (parameters\n"
- " (declare (in) sampler3D sampler)\n"
- " (declare (in) vec4 P) )\n"
- " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+ " (declare (in) mat3 m))\n"
+ " ((declare () mat3 t)\n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
+ " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
+ " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (2))))) \n"
+ "(return (var_ref t))))\n"
"\n"
- ")\n"
- " (function texture3DProjLod\n"
- " (signature vec4\n"
+ " (signature mat4x3\n"
" (parameters\n"
- " (declare (in) sampler3D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+ " (declare (in) mat3x4 m))\n"
+ " ((declare () mat4x3 t)\n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
+ " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
+ " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (2))))) \n"
+ " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (2))))) \n"
+ "(return (var_ref t))))\n"
"\n"
- ")\n"
- " (function textureCube\n"
- " (signature vec4\n"
+ " (signature mat2x4\n"
" (parameters\n"
- " (declare (in) samplerCube sampler)\n"
- " (declare (in) vec3 P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) mat4x2 m))\n"
+ " ((declare () mat2x4 t)\n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
+ " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
+ " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (3))))) \n"
+ " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (3))))) \n"
+ "(return (var_ref t))))\n"
"\n"
- ")\n"
- " (function textureCubeLod\n"
- " (signature vec4\n"
+ " (signature mat3x4\n"
" (parameters\n"
- " (declare (in) samplerCube sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ " (declare (in) mat4x3 m))\n"
+ " ((declare () mat3x4 t)\n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
+ " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
+ " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (2))))) \n"
+ " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (3))))) \n"
+ " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (3))))) \n"
+ " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (3))))) \n"
+ "(return (var_ref t))))\n"
"\n"
- ")\n"
- " (function shadow1D\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) sampler1DShadow sampler)\n"
- " (declare (in) vec3 P) )\n"
- " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
- "\n"
- ")\n"
- " (function shadow1DLod\n"
- " (signature vec4\n"
+ " (signature mat4\n"
" (parameters\n"
- " (declare (in) sampler1DShadow sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))\n"
- "\n"
+ " (declare (in) mat4 m))\n"
+ " ((declare () mat4 t)\n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
+ " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
+ " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (2))))) \n"
+ " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (2))))) \n"
+ " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (3))))) \n"
+ " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (3))))) \n"
+ " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (3))))) \n"
+ " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (3))))) \n"
+ "(return (var_ref t))))\n"
")\n"
- " (function shadow1DProj\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) sampler1DShadow sampler)\n"
- " (declare (in) vec4 P) )\n"
- " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) ))))\n"
"\n"
")\n"
- " (function shadow1DProjLod\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) sampler1DShadow sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float lod) )\n"
- " ((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"
"\n"
- ")\n"
- " (function shadow2D\n"
- " (signature vec4\n"
+ ""
+;
+static const char *builtin_step =
+ "((function step\n"
+ " (signature float\n"
" (parameters\n"
- " (declare (in) sampler2DShadow sampler)\n"
- " (declare (in) vec3 P) )\n"
- " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
+ " (declare (in) float edge)\n"
+ " (declare (in) float x))\n"
+ " ((return (expression float b2f (expression bool >= (var_ref x) (var_ref edge))))))\n"
"\n"
- ")\n"
- " (function shadow2DLod\n"
- " (signature vec4\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) sampler2DShadow sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))\n"
+ " (declare (in) float edge)\n"
+ " (declare (in) vec2 x))\n"
+ " ((declare () vec2 t)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool >= (swiz x (var_ref x))(var_ref edge))))\n"
+ " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool >= (swiz y (var_ref x))(var_ref edge))))\n"
+ " (return (var_ref t))))\n"
"\n"
- ")\n"
- " (function shadow2DProj\n"
- " (signature vec4\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) sampler2DShadow sampler)\n"
- " (declare (in) vec4 P) )\n"
- " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) ))))\n"
+ " (declare (in) float edge)\n"
+ " (declare (in) vec3 x))\n"
+ " ((declare () vec3 t)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool >= (swiz x (var_ref x))(var_ref edge))))\n"
+ " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool >= (swiz y (var_ref x))(var_ref edge))))\n"
+ " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool >= (swiz z (var_ref x))(var_ref edge))))\n"
+ " (return (var_ref t))))\n"
"\n"
- ")\n"
- " (function shadow2DProjLod\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler2DShadow sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float lod) )\n"
- " ((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"
- "\n"
- "))\n"
-};
-
-static const char *functions_for_110 [] = {
- builtins_110_abs,
- builtins_110_all,
- builtins_110_any,
- builtins_110_asin,
- builtins_110_atan,
- builtins_110_ceil,
- builtins_110_clamp,
- builtins_110_cos,
- builtins_110_cross,
- builtins_110_degrees,
- builtins_110_distance,
- builtins_110_dot,
- builtins_110_equal,
- builtins_110_exp,
- builtins_110_exp2,
- builtins_110_faceforward,
- builtins_110_floor,
- builtins_110_fract,
- builtins_110_greaterThan,
- builtins_110_greaterThanEqual,
- builtins_110_inversesqrt,
- builtins_110_length,
- builtins_110_lessThan,
- builtins_110_lessThanEqual,
- builtins_110_log,
- builtins_110_log2,
- builtins_110_matrixCompMult,
- builtins_110_max,
- builtins_110_min,
- builtins_110_mix,
- builtins_110_mod,
- builtins_110_noise_fake,
- builtins_110_normalize,
- builtins_110_not,
- builtins_110_notEqual,
- builtins_110_pow,
- builtins_110_radians,
- builtins_110_reflect,
- builtins_110_refract,
- builtins_110_sign,
- builtins_110_sin,
- builtins_110_smoothstep,
- builtins_110_sqrt,
- builtins_110_step,
- builtins_110_tan,
- builtins_110_textures,
-};
-
-/* 110_fs builtins */
-
-static const char *builtins_110_fs_derivatives = {
- "((function dFdx\n"
- " (signature float\n"
- " (parameters\n"
- " (declare (in) float p))\n"
- " ((return (expression float dFdx (var_ref p)))))\n"
+ " (declare (in) float edge)\n"
+ " (declare (in) vec4 x))\n"
+ " ((declare () vec4 t)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool >= (swiz x (var_ref x))(var_ref edge))))\n"
+ " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool >= (swiz y (var_ref x))(var_ref edge))))\n"
+ " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool >= (swiz z (var_ref x))(var_ref edge))))\n"
+ " (assign (constant bool (1)) (swiz w (var_ref t)) (expression float b2f (expression bool >= (swiz w (var_ref x))(var_ref edge))))\n"
+ " (return (var_ref t))))\n"
"\n"
" (signature vec2\n"
" (parameters\n"
- " (declare (in) vec2 p))\n"
- " ((return (expression vec2 dFdx (var_ref p)))))\n"
+ " (declare (in) vec2 edge)\n"
+ " (declare (in) vec2 x))\n"
+ " ((declare () vec2 t)\n"
+ " (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"
+ " (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"
+ " (return (var_ref t))))\n"
"\n"
" (signature vec3\n"
" (parameters\n"
- " (declare (in) vec3 p))\n"
- " ((return (expression vec3 dFdx (var_ref p)))))\n"
+ " (declare (in) vec3 edge)\n"
+ " (declare (in) vec3 x))\n"
+ " ((declare () vec3 t)\n"
+ " (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"
+ " (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"
+ " (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"
+ " (return (var_ref t))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 p))\n"
- " ((return (expression vec4 dFdx (var_ref p)))))\n"
- " )\n"
+ " (declare (in) vec4 edge)\n"
+ " (declare (in) vec4 x))\n"
+ " ((declare () vec4 t)\n"
+ " (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"
+ " (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"
+ " (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"
+ " (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"
+ " (return (var_ref t))))\n"
+ "))\n"
"\n"
- " (function dFdy\n"
+ ""
+;
+static const char *builtin_sinh =
+ "((function sinh\n"
" (signature float\n"
" (parameters\n"
- " (declare (in) float p))\n"
- " ((return (expression float dFdy (var_ref p)))))\n"
- "\n"
+ " (declare (in) float x))\n"
+ " ((return (expression float * (constant float (0.5))\n"
+ " (expression float -\n"
+ " (expression float exp (var_ref x))\n"
+ " (expression float exp (expression float neg (var_ref x))))))))\n"
" (signature vec2\n"
" (parameters\n"
- " (declare (in) vec2 p))\n"
- " ((return (expression vec2 dFdy (var_ref p)))))\n"
- "\n"
+ " (declare (in) vec2 x))\n"
+ " ((return (expression vec2 * (constant vec2 (0.5))\n"
+ " (expression vec2 -\n"
+ " (expression vec2 exp (var_ref x))\n"
+ " (expression vec2 exp (expression vec2 neg (var_ref x))))))))\n"
" (signature vec3\n"
" (parameters\n"
- " (declare (in) vec3 p))\n"
- " ((return (expression vec3 dFdy (var_ref p)))))\n"
- "\n"
+ " (declare (in) vec3 x))\n"
+ " ((return (expression vec3 * (constant vec3 (0.5))\n"
+ " (expression vec3 -\n"
+ " (expression vec3 exp (var_ref x))\n"
+ " (expression vec3 exp (expression vec3 neg (var_ref x))))))))\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 p))\n"
- " ((return (expression vec4 dFdy (var_ref p)))))\n"
- " )\n"
- "\n"
- " (function fwidth\n"
+ " (declare (in) vec4 x))\n"
+ " ((return (expression vec4 * (constant vec4 (0.5))\n"
+ " (expression vec4 -\n"
+ " (expression vec4 exp (var_ref x))\n"
+ " (expression vec4 exp (expression vec4 neg (var_ref x))))))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_cos =
+ "((function cos\n"
" (signature float\n"
" (parameters\n"
- " (declare (in) float p))\n"
- " ((return (expression float +\n"
- " (expression float abs (expression float dFdx (var_ref p)))\n"
- " (expression float abs (expression float dFdy (var_ref p)))))))\n"
+ " (declare (in) float angle))\n"
+ " ((return (expression float cos (var_ref angle)))))\n"
"\n"
" (signature vec2\n"
" (parameters\n"
- " (declare (in) vec2 p))\n"
- " ((return (expression vec2 +\n"
- " (expression vec2 abs (expression vec2 dFdx (var_ref p)))\n"
- " (expression vec2 abs (expression vec2 dFdy (var_ref p)))))))\n"
+ " (declare (in) vec2 angle))\n"
+ " ((return (expression vec2 cos (var_ref angle)))))\n"
"\n"
" (signature vec3\n"
" (parameters\n"
- " (declare (in) vec3 p))\n"
- " ((return (expression vec3 +\n"
- " (expression vec3 abs (expression vec3 dFdx (var_ref p)))\n"
- " (expression vec3 abs (expression vec3 dFdy (var_ref p)))))))\n"
+ " (declare (in) vec3 angle))\n"
+ " ((return (expression vec3 cos (var_ref angle)))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 p))\n"
- " ((return (expression vec4 +\n"
- " (expression vec4 abs (expression vec4 dFdx (var_ref p)))\n"
- " (expression vec4 abs (expression vec4 dFdy (var_ref p)))))))\n"
+ " (declare (in) vec4 angle))\n"
+ " ((return (expression vec4 cos (var_ref angle)))))\n"
"))\n"
-};
-
-static const char *builtins_110_fs_textures = {
- "((function texture1D\n"
+ ""
+;
+static const char *builtin_shadow2DProjLod =
+ "((function shadow2DProjLod\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) float P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (declare (in) sampler2DShadow sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((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"
"\n"
- ")\n"
- " (function texture1DProj\n"
+ "))\n"
+ ""
+;
+static const char *builtin_shadow2DArray =
+ "((function shadow2DArray\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
+ " (declare (in) sampler2DArrayShadow sampler)\n"
+ " (declare (in) vec4 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) 1 (swiz w (var_ref P)) ))))\n"
"\n"
- " (signature vec4\n"
+ "))\n"
+ ""
+;
+static const char *builtin_equal =
+ "((function equal\n"
+ " (signature bvec2\n"
" (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+ " (declare (in) vec2 arg0)\n"
+ " (declare (in) vec2 arg1))\n"
+ " ((declare () bvec2 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- ")\n"
- " (function texture2D\n"
- " (signature vec4\n"
+ " (signature bvec3\n"
" (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (declare (in) vec3 arg0)\n"
+ " (declare (in) vec3 arg1))\n"
+ " ((declare () bvec3 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- ")\n"
- " (function texture2DProj\n"
- " (signature vec4\n"
+ " (signature bvec4\n"
" (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
+ " (declare (in) vec4 arg0)\n"
+ " (declare (in) vec4 arg1))\n"
+ " ((declare () bvec4 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool == (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- " (signature vec4\n"
+ " (signature bvec2\n"
" (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+ " (declare (in) ivec2 arg0)\n"
+ " (declare (in) ivec2 arg1))\n"
+ " ((declare () bvec2 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- ")\n"
- " (function texture3D\n"
- " (signature vec4\n"
+ " (signature bvec3\n"
" (parameters\n"
- " (declare (in) sampler3D sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (declare (in) ivec3 arg0)\n"
+ " (declare (in) ivec3 arg1))\n"
+ " ((declare () bvec3 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- ")\n"
- " (function texture3DProj\n"
- " (signature vec4\n"
+ " (signature bvec4\n"
" (parameters\n"
- " (declare (in) sampler3D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+ " (declare (in) ivec4 arg0)\n"
+ " (declare (in) ivec4 arg1))\n"
+ " ((declare () bvec4 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool == (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- ")\n"
- " (function textureCube\n"
- " (signature vec4\n"
+ " (signature bvec2\n"
" (parameters\n"
- " (declare (in) samplerCube sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (declare (in) uvec2 arg0)\n"
+ " (declare (in) uvec2 arg1))\n"
+ " ((declare () bvec2 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- ")\n"
- " (function shadow1D\n"
- " (signature vec4\n"
+ " (signature bvec3\n"
" (parameters\n"
- " (declare (in) sampler1DShadow sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))\n"
+ " (declare (in) uvec3 arg0)\n"
+ " (declare (in) uvec3 arg1))\n"
+ " ((declare () bvec3 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- ")\n"
- " (function shadow1DProj\n"
- " (signature vec4\n"
+ " (signature bvec4\n"
" (parameters\n"
- " (declare (in) sampler1DShadow sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float bias) )\n"
- " ((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"
+ " (declare (in) uvec4 arg0)\n"
+ " (declare (in) uvec4 arg1))\n"
+ " ((declare () bvec4 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool == (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_length =
+ "((function length\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in) float arg0))\n"
+ " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
"\n"
- ")\n"
- " (function shadow2D\n"
- " (signature vec4\n"
+ " (signature float\n"
" (parameters\n"
- " (declare (in) sampler2DShadow sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))\n"
+ " (declare (in) vec2 arg0))\n"
+ " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
"\n"
- ")\n"
- " (function shadow2DProj\n"
- " (signature vec4\n"
+ " (signature float\n"
" (parameters\n"
- " (declare (in) sampler2DShadow sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float bias) )\n"
- " ((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"
+ " (declare (in) vec3 arg0))\n"
+ " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
"\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in) vec4 arg0))\n"
+ " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
"))\n"
-};
-
-static const char *functions_for_110_fs [] = {
- builtins_110_fs_derivatives,
- builtins_110_fs_textures,
-};
-
-/* 110_vs builtins */
-
-static const char *builtins_110_vs_ftransform = {
- "((declare (uniform) mat4 gl_ModelViewProjectionMatrix)\n"
- " (declare (in) vec4 gl_Vertex)\n"
- " (function ftransform\n"
+ ""
+;
+static const char *builtin_acos =
+ "((function acos\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in) float x))\n"
+ " ((return (expression float - (constant float (1.5707963))\n"
+ " (call asin ((var_ref x)))))))\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in) vec2 x))\n"
+ " ((return (expression vec2 - (constant float (1.5707963))\n"
+ " (call asin ((var_ref x)))))))\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in) vec3 x))\n"
+ " ((return (expression vec3 - (constant float (1.5707963))\n"
+ " (call asin ((var_ref x)))))))\n"
" (signature vec4\n"
- " (parameters)\n"
- " ((return (expression vec4 *\n"
- " (var_ref gl_ModelViewProjectionMatrix)\n"
- " (var_ref gl_Vertex)))))\n"
+ " (parameters\n"
+ " (declare (in) vec4 x))\n"
+ " ((return (expression vec4 - (constant float (1.5707963))\n"
+ " (call asin ((var_ref x)))))))\n"
"))\n"
-};
-
-static const char *functions_for_110_vs [] = {
- builtins_110_vs_ftransform,
-};
-
-/* 120 builtins */
-
-static const char *builtins_120_matrixCompMult = {
+ ""
+;
+static const char *builtin_matrixCompMult =
"((function matrixCompMult\n"
+ " (signature mat2\n"
+ " (parameters\n"
+ " (declare (in) mat2 x)\n"
+ " (declare (in) mat2 y))\n"
+ " ((declare () mat2 z)\n"
+ " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec2 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec2 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
+ "(return (var_ref z))))\n"
+ "\n"
+ " (signature mat3\n"
+ " (parameters\n"
+ " (declare (in) mat3 x)\n"
+ " (declare (in) mat3 y))\n"
+ " ((declare () mat3 z)\n"
+ " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec3 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec3 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (2))) (expression vec3 * (array_ref (var_ref x) (constant int (2))) (array_ref (var_ref y) (constant int (2))))) \n"
+ "(return (var_ref z))))\n"
+ "\n"
+ " (signature mat4\n"
+ " (parameters\n"
+ " (declare (in) mat4 x)\n"
+ " (declare (in) mat4 y))\n"
+ " ((declare () mat4 z)\n"
+ " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec4 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
+ " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec4 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
+ " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (2))) (expression vec4 * (array_ref (var_ref x) (constant int (2))) (array_ref (var_ref y) (constant int (2))))) \n"
+ " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (3))) (expression vec4 * (array_ref (var_ref x) (constant int (3))) (array_ref (var_ref y) (constant int (3))))) \n"
+ "(return (var_ref z))))\n"
+ "\n"
" (signature mat2x3\n"
" (parameters\n"
" (declare (in) mat2x3 x)\n"
" (assign (constant bool (1)) (array_ref (var_ref z) (constant int (3))) (expression vec3 * (array_ref (var_ref x) (constant int (3))) (array_ref (var_ref y) (constant int (3))))) \n"
"(return (var_ref z))))\n"
"))\n"
-};
-
-static const char *builtins_120_outerProduct = {
- "((function outerProduct\n"
- " (signature mat2\n"
+ ""
+;
+static const char *builtin_pow =
+ "((function pow\n"
+ " (signature float\n"
" (parameters\n"
- " (declare (in) vec2 u)\n"
- " (declare (in) vec2 v))\n"
- " ((declare () mat2 m)\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref u) (swiz x (var_ref v))))\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref u) (swiz y (var_ref v))))\n"
- " (return (var_ref m))))\n"
+ " (declare (in) float arg0)\n"
+ " (declare (in) float arg1))\n"
+ " ((return (expression float pow (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature mat2x3\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) vec3 u)\n"
- " (declare (in) vec2 v))\n"
- " ((declare () mat2x3 m)\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref u) (swiz x (var_ref v))))\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref u) (swiz y (var_ref v))))\n"
- " (return (var_ref m))))\n"
+ " (declare (in) vec2 arg0)\n"
+ " (declare (in) vec2 arg1))\n"
+ " ((return (expression vec2 pow (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature mat2x4\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) vec4 u)\n"
- " (declare (in) vec2 v))\n"
- " ((declare () mat2x4 m)\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref u) (swiz x (var_ref v))))\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref u) (swiz y (var_ref v))))\n"
- " (return (var_ref m))))\n"
+ " (declare (in) vec3 arg0)\n"
+ " (declare (in) vec3 arg1))\n"
+ " ((return (expression vec3 pow (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature mat3x2\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) vec2 u)\n"
- " (declare (in) vec3 v))\n"
- " ((declare () mat3x2 m)\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref u) (swiz x (var_ref v))))\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref u) (swiz y (var_ref v))))\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec2 * (var_ref u) (swiz z (var_ref v))))\n"
- " (return (var_ref m))\n"
- " ))\n"
- "\n"
- " (signature mat3\n"
+ " (declare (in) vec4 arg0)\n"
+ " (declare (in) vec4 arg1))\n"
+ " ((return (expression vec4 pow (var_ref arg0) (var_ref arg1)))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_texture2DProjLod =
+ "((function texture2DProjLod\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) vec3 u)\n"
- " (declare (in) vec3 v))\n"
- " ((declare () mat3 m)\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref u) (swiz x (var_ref v))))\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref u) (swiz y (var_ref v))))\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec3 * (var_ref u) (swiz z (var_ref v))))\n"
- " (return (var_ref m))))\n"
+ " (declare (in) sampler2D sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
"\n"
- " (signature mat3x4\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 u)\n"
- " (declare (in) vec3 v))\n"
- " ((declare () mat3x4 m)\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref u) (swiz x (var_ref v))))\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref u) (swiz y (var_ref v))))\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec4 * (var_ref u) (swiz z (var_ref v))))\n"
- " (return (var_ref m))))\n"
+ " (declare (in) sampler2D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
"\n"
- " (signature mat4x2\n"
+ "))\n"
+ ""
+;
+static const char *builtin_textureProjLod =
+ "((function textureProjLod\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) vec2 u)\n"
- " (declare (in) vec4 v))\n"
- " ((declare () mat4x2 m)\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref u) (swiz x (var_ref v))))\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref u) (swiz y (var_ref v))))\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec2 * (var_ref u) (swiz z (var_ref v))))\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (3))) (expression vec2 * (var_ref u) (swiz w (var_ref v))))\n"
- " (return (var_ref m))))\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
"\n"
- " (signature mat4x3\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) vec3 u)\n"
- " (declare (in) vec4 v))\n"
- " ((declare () mat4x3 m)\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref u) (swiz x (var_ref v))))\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref u) (swiz y (var_ref v))))\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec3 * (var_ref u) (swiz z (var_ref v))))\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (3))) (expression vec3 * (var_ref u) (swiz w (var_ref v))))\n"
- " (return (var_ref m))))\n"
+ " (declare (in) isampler1D sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
"\n"
- " (signature mat4\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) vec4 u)\n"
- " (declare (in) vec4 v))\n"
- " ((declare () mat4 m)\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref u) (swiz x (var_ref v))))\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref u) (swiz y (var_ref v))))\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec4 * (var_ref u) (swiz z (var_ref v))))\n"
- " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (3))) (expression vec4 * (var_ref u) (swiz w (var_ref v))))\n"
- " (return (var_ref m))))\n"
- "))\n"
-};
-
-static const char *builtins_120_transpose = {
- "((function transpose\n"
- " (signature mat2\n"
+ " (declare (in) usampler1D sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
+ "\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) mat2 m))\n"
- " ((declare () mat2 t)\n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
- "(return (var_ref t))))\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
"\n"
- " (signature mat3x2\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) mat2x3 m))\n"
- " ((declare () mat3x2 t)\n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
- "(return (var_ref t))))\n"
+ " (declare (in) isampler1D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
"\n"
- " (signature mat4x2\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) mat2x4 m))\n"
- " ((declare () mat4x2 t)\n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (1))))) \n"
- "(return (var_ref t))))\n"
+ " (declare (in) usampler1D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
"\n"
- " (signature mat2x3\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) mat3x2 m))\n"
- " ((declare () mat2x3 t)\n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
- " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
- "(return (var_ref t))))\n"
+ " (declare (in) sampler2D sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
"\n"
- " (signature mat3\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) mat3 m))\n"
- " ((declare () mat3 t)\n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
- " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
- " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (2))))) \n"
- "(return (var_ref t))))\n"
+ " (declare (in) isampler2D sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
"\n"
- " (signature mat4x3\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) mat3x4 m))\n"
- " ((declare () mat4x3 t)\n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
- " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
- " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (2))))) \n"
- " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (2))))) \n"
- "(return (var_ref t))))\n"
+ " (declare (in) usampler2D sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
"\n"
- " (signature mat2x4\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) mat4x2 m))\n"
- " ((declare () mat2x4 t)\n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
- " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
- " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (3))))) \n"
- " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (3))))) \n"
- "(return (var_ref t))))\n"
+ " (declare (in) sampler2D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
"\n"
- " (signature mat3x4\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) mat4x3 m))\n"
- " ((declare () mat3x4 t)\n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
- " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
- " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (2))))) \n"
- " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (3))))) \n"
- " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (3))))) \n"
- " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (3))))) \n"
- "(return (var_ref t))))\n"
+ " (declare (in) isampler2D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
"\n"
- " (signature mat4\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) mat4 m))\n"
- " ((declare () mat4 t)\n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (0))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (1))))) \n"
- " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
- " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
- " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (2))))) \n"
- " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (2))))) \n"
- " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (3))))) \n"
- " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (3))))) \n"
- " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (3))))) \n"
- " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (3))))) \n"
- "(return (var_ref t))))\n"
- ")\n"
+ " (declare (in) usampler2D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
"\n"
- ")\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler3D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
"\n"
-};
-
-static const char *functions_for_120 [] = {
- builtins_120_matrixCompMult,
- builtins_120_outerProduct,
- builtins_120_transpose,
-};
-
-/* 130 builtins */
-
-static const char *builtins_130_clamp = {
- "((function clamp\n"
- " (signature int\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) int arg0)\n"
- " (declare (in) int arg1)\n"
- " (declare (in) int arg2))\n"
- " ((return (expression int max (expression int min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ " (declare (in) isampler3D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
"\n"
- " (signature ivec2\n"
+ " (signature uvec4\n"
" (parameters\n"
- " (declare (in) ivec2 arg0)\n"
- " (declare (in) ivec2 arg1)\n"
- " (declare (in) ivec2 arg2))\n"
- " ((return (expression ivec2 max (expression ivec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ " (declare (in) usampler3D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
"\n"
- " (signature ivec3\n"
+ "))\n"
+ ""
+;
+static const char *builtin_log =
+ "((function log\n"
+ " (signature float\n"
" (parameters\n"
- " (declare (in) ivec3 arg0)\n"
- " (declare (in) ivec3 arg1)\n"
- " (declare (in) ivec3 arg2))\n"
- " ((return (expression ivec3 max (expression ivec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ " (declare (in) float arg0))\n"
+ " ((return (expression float log (var_ref arg0)))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) ivec4 arg0)\n"
- " (declare (in) ivec4 arg1)\n"
- " (declare (in) ivec4 arg2))\n"
- " ((return (expression ivec4 max (expression ivec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ " (declare (in) vec2 arg0))\n"
+ " ((return (expression vec2 log (var_ref arg0)))))\n"
"\n"
- " (signature ivec2\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) ivec2 arg0)\n"
- " (declare (in) int arg1)\n"
- " (declare (in) int arg2))\n"
- " ((return (expression ivec2 max (expression ivec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ " (declare (in) vec3 arg0))\n"
+ " ((return (expression vec3 log (var_ref arg0)))))\n"
"\n"
- " (signature ivec3\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) ivec3 arg0)\n"
- " (declare (in) int arg1)\n"
- " (declare (in) int arg2))\n"
- " ((return (expression ivec3 max (expression ivec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ " (declare (in) vec4 arg0))\n"
+ " ((return (expression vec4 log (var_ref arg0)))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_exp2 =
+ "((function exp2\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in) float arg0))\n"
+ " ((return (expression float exp2 (var_ref arg0)))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) ivec4 arg0)\n"
- " (declare (in) int arg1)\n"
- " (declare (in) int arg2))\n"
- " ((return (expression ivec4 max (expression ivec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ " (declare (in) vec2 arg0))\n"
+ " ((return (expression vec2 exp2 (var_ref arg0)))))\n"
"\n"
- " (signature uint\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) uint arg0)\n"
- " (declare (in) uint arg1)\n"
- " (declare (in) uint arg2))\n"
- " ((return (expression uint max (expression uint min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ " (declare (in) vec3 arg0))\n"
+ " ((return (expression vec3 exp2 (var_ref arg0)))))\n"
"\n"
- " (signature uvec2\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) uvec2 arg0)\n"
- " (declare (in) uvec2 arg1)\n"
- " (declare (in) uvec2 arg2))\n"
- " ((return (expression uvec2 max (expression uvec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ " (declare (in) vec4 arg0))\n"
+ " ((return (expression vec4 exp2 (var_ref arg0)))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_fract =
+ "((function fract\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in) float x))\n"
+ " ((return (expression float fract (var_ref x)))))\n"
"\n"
- " (signature uvec3\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) uvec3 arg0)\n"
- " (declare (in) uvec3 arg1)\n"
- " (declare (in) uvec3 arg2))\n"
- " ((return (expression uvec3 max (expression uvec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ " (declare (in) vec2 x))\n"
+ " ((return (expression vec2 fract (var_ref x)))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) uvec4 arg0)\n"
- " (declare (in) uvec4 arg1)\n"
- " (declare (in) uvec4 arg2))\n"
- " ((return (expression uvec4 max (expression uvec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ " (declare (in) vec3 x))\n"
+ " ((return (expression vec3 fract (var_ref x)))))\n"
"\n"
- " (signature uvec2\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) uvec2 arg0)\n"
- " (declare (in) uint arg1)\n"
- " (declare (in) uint arg2))\n"
- " ((return (expression uvec2 max (expression uvec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ " (declare (in) vec4 x))\n"
+ " ((return (expression vec4 fract (var_ref x)))))\n"
+ "))\n"
"\n"
- " (signature uvec3\n"
+ ""
+;
+static const char *builtin_shadow1DLod =
+ "((function shadow1DLod\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) uvec3 arg0)\n"
- " (declare (in) uint arg1)\n"
- " (declare (in) uint arg2))\n"
- " ((return (expression uvec3 max (expression uvec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ " (declare (in) sampler1DShadow sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))\n"
"\n"
- " (signature uvec4\n"
+ "))\n"
+ ""
+;
+static const char *builtin_texture1DLod =
+ "((function texture1DLod\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) uvec4 arg0)\n"
- " (declare (in) uint arg1)\n"
- " (declare (in) uint arg2))\n"
- " ((return (expression uvec4 max (expression uvec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) float P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ "\n"
"))\n"
-};
-
-static const char *builtins_130_cosh = {
- "((function cosh\n"
+ ""
+;
+static const char *builtin_texture2DArray =
+ "((function texture2DArray\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler2DArray sampler)\n"
+ " (declare (in) vec3 P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler2DArray sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ "\n"
+ "))\n"
+ ""
+;
+static const char *builtin_texture3DProj =
+ "((function texture3DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler3D sampler)\n"
+ " (declare (in) vec4 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler3D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+ "\n"
+ "))\n"
+ ""
+;
+static const char *builtin_sign =
+ "((function sign\n"
" (signature float\n"
" (parameters\n"
" (declare (in) float x))\n"
- " ((return (expression float * (constant float (0.5))\n"
- " (expression float +\n"
- " (expression float exp (var_ref x))\n"
- " (expression float exp (expression float neg (var_ref x))))))))\n"
+ " ((return (expression float sign (var_ref x)))))\n"
+ "\n"
" (signature vec2\n"
" (parameters\n"
" (declare (in) vec2 x))\n"
- " ((return (expression vec2 * (constant vec2 (0.5))\n"
- " (expression vec2 +\n"
- " (expression vec2 exp (var_ref x))\n"
- " (expression vec2 exp (expression vec2 neg (var_ref x))))))))\n"
+ " ((return (expression vec2 sign (var_ref x)))))\n"
+ "\n"
" (signature vec3\n"
" (parameters\n"
" (declare (in) vec3 x))\n"
- " ((return (expression vec3 * (constant vec3 (0.5))\n"
- " (expression vec3 +\n"
- " (expression vec3 exp (var_ref x))\n"
- " (expression vec3 exp (expression vec3 neg (var_ref x))))))))\n"
+ " ((return (expression vec3 sign (var_ref x)))))\n"
+ "\n"
" (signature vec4\n"
" (parameters\n"
" (declare (in) vec4 x))\n"
- " ((return (expression vec4 * (constant vec4 (0.5))\n"
- " (expression vec4 +\n"
- " (expression vec4 exp (var_ref x))\n"
- " (expression vec4 exp (expression vec4 neg (var_ref x))))))))\n"
- "))\n"
-};
-
-static const char *builtins_130_equal = {
- "((function equal\n"
- " (signature bvec2\n"
- " (parameters\n"
- " (declare (in) uvec2 arg0)\n"
- " (declare (in) uvec2 arg1))\n"
- " ((declare () bvec2 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " ((return (expression vec4 sign (var_ref x)))))\n"
"\n"
- " (signature bvec3\n"
+ " (signature int\n"
" (parameters\n"
- " (declare (in) uvec3 arg0)\n"
- " (declare (in) uvec3 arg1))\n"
- " ((declare () bvec3 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (declare (in) int x))\n"
+ " ((return (expression int sign (var_ref x)))))\n"
"\n"
- " (signature bvec4\n"
- " (parameters\n"
- " (declare (in) uvec4 arg0)\n"
- " (declare (in) uvec4 arg1))\n"
- " ((declare () bvec4 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool == (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
- "))\n"
-};
-
-static const char *builtins_130_greaterThan = {
- "((function greaterThan\n"
- " (signature bvec2\n"
+ " (signature ivec2\n"
" (parameters\n"
- " (declare (in) uvec2 arg0)\n"
- " (declare (in) uvec2 arg1))\n"
- " ((declare () bvec2 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (declare (in) ivec2 x))\n"
+ " ((return (expression ivec2 sign (var_ref x)))))\n"
"\n"
- " (signature bvec3\n"
+ " (signature ivec3\n"
" (parameters\n"
- " (declare (in) uvec3 arg0)\n"
- " (declare (in) uvec3 arg1))\n"
- " ((declare () bvec3 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (declare (in) ivec3 x))\n"
+ " ((return (expression ivec3 sign (var_ref x)))))\n"
"\n"
- " (signature bvec4\n"
+ " (signature ivec4\n"
" (parameters\n"
- " (declare (in) uvec4 arg0)\n"
- " (declare (in) uvec4 arg1))\n"
- " ((declare () bvec4 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool > (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (declare (in) ivec4 x))\n"
+ " ((return (expression ivec4 sign (var_ref x)))))\n"
"))\n"
-};
-
-static const char *builtins_130_greaterThanEqual = {
- "((function greaterThanEqual\n"
- " (signature bvec2\n"
- " (parameters\n"
- " (declare (in) uvec2 arg0)\n"
- " (declare (in) uvec2 arg1))\n"
- " ((declare () bvec2 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
"\n"
- " (signature bvec3\n"
+ ""
+;
+static const char *builtin_inversesqrt =
+ "((function inversesqrt\n"
+ " (signature float\n"
" (parameters\n"
- " (declare (in) uvec3 arg0)\n"
- " (declare (in) uvec3 arg1))\n"
- " ((declare () bvec3 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (declare (in) float arg0))\n"
+ " ((return (expression float rsq (var_ref arg0)))))\n"
"\n"
- " (signature bvec4\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) uvec4 arg0)\n"
- " (declare (in) uvec4 arg1))\n"
+ " (declare (in) vec2 arg0))\n"
+ " ((return (expression vec2 rsq (var_ref arg0)))))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in) vec3 arg0))\n"
+ " ((return (expression vec3 rsq (var_ref arg0)))))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) vec4 arg0))\n"
+ " ((return (expression vec4 rsq (var_ref arg0)))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_distance =
+ "((function distance\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in) float p0)\n"
+ " (declare (in) float p1))\n"
+ " ((declare () float p)\n"
+ " (assign (constant bool (1)) (var_ref p) (expression float - (var_ref p0) (var_ref p1)))\n"
+ " (return (expression float sqrt (expression float dot (var_ref p) (var_ref p))))))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in) vec2 p0)\n"
+ " (declare (in) vec2 p1))\n"
+ " ((declare () vec2 p)\n"
+ " (assign (constant bool (1)) (var_ref p) (expression vec2 - (var_ref p0) (var_ref p1)))\n"
+ " (return (expression float sqrt (expression float dot (var_ref p) (var_ref p))))))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in) vec3 p0)\n"
+ " (declare (in) vec3 p1))\n"
+ " ((declare () vec3 p)\n"
+ " (assign (constant bool (1)) (var_ref p) (expression vec3 - (var_ref p0) (var_ref p1)))\n"
+ " (return (expression float sqrt (expression float dot (var_ref p) (var_ref p))))))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in) vec4 p0)\n"
+ " (declare (in) vec4 p1))\n"
+ " ((declare () vec4 p)\n"
+ " (assign (constant bool (1)) (var_ref p) (expression vec4 - (var_ref p0) (var_ref p1)))\n"
+ " (return (expression float sqrt (expression float dot (var_ref p) (var_ref p))))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_noise2 =
+ "((function noise2\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in) float x))\n"
+ " ((return (constant vec2 (0 0)))))\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in) vec2 x))\n"
+ " ((return (constant vec2 (0 0)))))\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in) vec3 x))\n"
+ " ((return (constant vec2 (0 0)))))\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in) vec4 x))\n"
+ " ((return (constant vec2 (0 0)))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_tanh =
+ "((function tanh\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in) float x))\n"
+ " ((return (expression float /\n"
+ " (expression float -\n"
+ " (expression float exp (var_ref x))\n"
+ " (expression float exp (expression float neg (var_ref x))))\n"
+ " (expression float +\n"
+ " (expression float exp (var_ref x))\n"
+ " (expression float exp (expression float neg (var_ref x))))))))\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in) vec2 x))\n"
+ " ((return (expression vec2 /\n"
+ " (expression vec2 -\n"
+ " (expression vec2 exp (var_ref x))\n"
+ " (expression vec2 exp (expression vec2 neg (var_ref x))))\n"
+ " (expression vec2 +\n"
+ " (expression vec2 exp (var_ref x))\n"
+ " (expression vec2 exp (expression vec2 neg (var_ref x))))))))\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in) vec3 x))\n"
+ " ((return (expression vec3 /\n"
+ " (expression vec3 -\n"
+ " (expression vec3 exp (var_ref x))\n"
+ " (expression vec3 exp (expression vec3 neg (var_ref x))))\n"
+ " (expression vec3 +\n"
+ " (expression vec3 exp (var_ref x))\n"
+ " (expression vec3 exp (expression vec3 neg (var_ref x))))))))\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) vec4 x))\n"
+ " ((return (expression vec4 /\n"
+ " (expression vec4 -\n"
+ " (expression vec4 exp (var_ref x))\n"
+ " (expression vec4 exp (expression vec4 neg (var_ref x))))\n"
+ " (expression vec4 +\n"
+ " (expression vec4 exp (var_ref x))\n"
+ " (expression vec4 exp (expression vec4 neg (var_ref x))))))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_texture1DProjLod =
+ "((function texture1DProjLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+ "\n"
+ "))\n"
+ ""
+;
+static const char *builtin_texture1DArray =
+ "((function texture1DArray\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler1DArray sampler)\n"
+ " (declare (in) vec2 P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler1DArray sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ "\n"
+ "))\n"
+ ""
+;
+static const char *builtin_texture2D =
+ "((function texture2D\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler2D sampler)\n"
+ " (declare (in) vec2 P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in) sampler2D sampler)\n"
+ " (declare (in) vec2 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ "\n"
+ "))\n"
+ ""
+;
+static const char *builtin_greaterThanEqual =
+ "((function greaterThanEqual\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in) vec2 arg0)\n"
+ " (declare (in) vec2 arg1))\n"
+ " ((declare () bvec2 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in) vec3 arg0)\n"
+ " (declare (in) vec3 arg1))\n"
+ " ((declare () bvec3 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in) vec4 arg0)\n"
+ " (declare (in) vec4 arg1))\n"
" ((declare () bvec4 temp)\n"
" (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
" (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
" (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
" (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool >= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
" (return (var_ref temp))))\n"
- "))\n"
-};
-
-static const char *builtins_130_lessThan = {
- "((function lessThan\n"
+ "\n"
" (signature bvec2\n"
" (parameters\n"
- " (declare (in) uvec2 arg0)\n"
- " (declare (in) uvec2 arg1))\n"
+ " (declare (in) ivec2 arg0)\n"
+ " (declare (in) ivec2 arg1))\n"
" ((declare () bvec2 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
" (return (var_ref temp))))\n"
"\n"
" (signature bvec3\n"
" (parameters\n"
- " (declare (in) uvec3 arg0)\n"
- " (declare (in) uvec3 arg1))\n"
+ " (declare (in) ivec3 arg0)\n"
+ " (declare (in) ivec3 arg1))\n"
" ((declare () bvec3 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
" (return (var_ref temp))))\n"
"\n"
" (signature bvec4\n"
" (parameters\n"
- " (declare (in) uvec4 arg0)\n"
- " (declare (in) uvec4 arg1))\n"
+ " (declare (in) ivec4 arg0)\n"
+ " (declare (in) ivec4 arg1))\n"
" ((declare () bvec4 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool < (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool >= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
" (return (var_ref temp))))\n"
- "))\n"
-};
-
-static const char *builtins_130_lessThanEqual = {
- "((function lessThanEqual\n"
+ "\n"
" (signature bvec2\n"
" (parameters\n"
" (declare (in) uvec2 arg0)\n"
" (declare (in) uvec2 arg1))\n"
" ((declare () bvec2 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
" (return (var_ref temp))))\n"
"\n"
" (signature bvec3\n"
" (declare (in) uvec3 arg0)\n"
" (declare (in) uvec3 arg1))\n"
" ((declare () bvec3 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
" (return (var_ref temp))))\n"
"\n"
" (signature bvec4\n"
" (declare (in) uvec4 arg0)\n"
" (declare (in) uvec4 arg1))\n"
" ((declare () bvec4 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool <= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool >= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
" (return (var_ref temp))))\n"
"))\n"
-};
-
-static const char *builtins_130_max = {
- "((function max\n"
- " (signature int\n"
+ ""
+;
+static const char *builtin_texture3DProjLod =
+ "((function texture3DProjLod\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) int arg0)\n"
- " (declare (in) int arg1))\n"
- " ((return (expression int max (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) sampler3D sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
"\n"
- " (signature ivec2\n"
+ "))\n"
+ ""
+;
+static const char *builtin_tan =
+ "((function tan\n"
+ " (signature float\n"
" (parameters\n"
- " (declare (in) ivec2 arg0)\n"
- " (declare (in) ivec2 arg1))\n"
- " ((return (expression ivec2 max (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) float angle))\n"
+ " ((return (expression float / (expression float sin (var_ref angle)) (expression float cos (var_ref angle))))))\n"
"\n"
- " (signature ivec3\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) ivec3 arg0)\n"
- " (declare (in) ivec3 arg1))\n"
- " ((return (expression ivec3 max (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) vec2 angle))\n"
+ " ((return (expression vec2 / (expression vec2 sin (var_ref angle)) (expression vec2 cos (var_ref angle))))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) ivec4 arg0)\n"
- " (declare (in) ivec4 arg1))\n"
- " ((return (expression ivec4 max (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) vec3 angle))\n"
+ " ((return (expression vec3 / (expression vec3 sin (var_ref angle)) (expression vec3 cos (var_ref angle))))))\n"
"\n"
- " (signature ivec2\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) ivec2 arg0)\n"
- " (declare (in) int arg1))\n"
- " ((return (expression ivec2 max (var_ref arg0) (var_ref arg1)))))\n"
- "\n"
- " (signature ivec3\n"
+ " (declare (in) vec4 angle))\n"
+ " ((return (expression vec4 / (expression vec4 sin (var_ref angle)) (expression vec4 cos (var_ref angle))))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_any =
+ "((function any\n"
+ " (signature bool\n"
" (parameters\n"
- " (declare (in) ivec3 arg0)\n"
- " (declare (in) int arg1))\n"
- " ((return (expression ivec3 max (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) bvec2 arg0))\n"
+ " ((return (expression bool || (swiz x (var_ref arg0))(swiz y (var_ref arg0))))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature bool\n"
" (parameters\n"
- " (declare (in) ivec4 arg0)\n"
- " (declare (in) int arg1))\n"
- " ((return (expression ivec4 max (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) bvec3 arg0))\n"
+ " ((return (expression bool || (expression bool || (swiz x (var_ref arg0))(swiz y (var_ref arg0))) (swiz z (var_ref arg0))))))\n"
"\n"
- " (signature uint\n"
+ " (signature bool\n"
" (parameters\n"
- " (declare (in) uint arg0)\n"
- " (declare (in) uint arg1))\n"
- " ((return (expression uint max (var_ref arg0) (var_ref arg1)))))\n"
- "\n"
- " (signature uvec2\n"
+ " (declare (in) bvec4 arg0))\n"
+ " ((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"
+ "))\n"
+ ""
+;
+static const char *builtin_normalize =
+ "((function normalize\n"
+ " (signature float\n"
" (parameters\n"
- " (declare (in) uvec2 arg0)\n"
- " (declare (in) uvec2 arg1))\n"
- " ((return (expression uvec2 max (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) float arg0))\n"
+ " ((return (expression float * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
"\n"
- " (signature uvec3\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) uvec3 arg0)\n"
- " (declare (in) uvec3 arg1))\n"
- " ((return (expression uvec3 max (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) vec2 arg0))\n"
+ " ((return (expression vec2 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) uvec4 arg0)\n"
- " (declare (in) uvec4 arg1))\n"
- " ((return (expression uvec4 max (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) vec3 arg0))\n"
+ " ((return (expression vec3 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
"\n"
- " (signature uvec2\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) uvec2 arg0)\n"
- " (declare (in) uint arg1))\n"
- " ((return (expression uvec2 max (var_ref arg0) (var_ref arg1)))))\n"
- "\n"
- " (signature uvec3\n"
+ " (declare (in) vec4 arg0))\n"
+ " ((return (expression vec4 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_shadow1DProj =
+ "((function shadow1DProj\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) uvec3 arg0)\n"
- " (declare (in) uint arg1))\n"
- " ((return (expression uvec3 max (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) sampler1DShadow sampler)\n"
+ " (declare (in) vec4 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) ))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) uvec4 arg0)\n"
- " (declare (in) uint arg1))\n"
- " ((return (expression uvec4 max (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) sampler1DShadow sampler)\n"
+ " (declare (in) vec4 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((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"
+ "\n"
"))\n"
-};
-
-static const char *builtins_130_min = {
- "((function min\n"
- " (signature int\n"
+ ""
+;
+static const char *builtin_floor =
+ "((function floor\n"
+ " (signature float\n"
" (parameters\n"
- " (declare (in) int arg0)\n"
- " (declare (in) int arg1))\n"
- " ((return (expression int min (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) float arg0))\n"
+ " ((return (expression float floor (var_ref arg0)))))\n"
"\n"
- " (signature ivec2\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) ivec2 arg0)\n"
- " (declare (in) ivec2 arg1))\n"
- " ((return (expression ivec2 min (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) vec2 arg0))\n"
+ " ((return (expression vec2 floor (var_ref arg0)))))\n"
"\n"
- " (signature ivec3\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) ivec3 arg0)\n"
- " (declare (in) ivec3 arg1))\n"
- " ((return (expression ivec3 min (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) vec3 arg0))\n"
+ " ((return (expression vec3 floor (var_ref arg0)))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) ivec4 arg0)\n"
- " (declare (in) ivec4 arg1))\n"
- " ((return (expression ivec4 min (var_ref arg0) (var_ref arg1)))))\n"
- "\n"
- " (signature ivec2\n"
+ " (declare (in) vec4 arg0))\n"
+ " ((return (expression vec4 floor (var_ref arg0)))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_cross =
+ "((function cross\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) ivec2 arg0)\n"
- " (declare (in) int arg1))\n"
- " ((return (expression ivec2 min (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) vec3 arg0)\n"
+ " (declare (in) vec3 arg1))\n"
+ " ((return (expression vec3 cross (var_ref arg0) (var_ref arg1)))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_sqrt =
+ "((function sqrt\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in) float arg0))\n"
+ " ((return (expression float sqrt (var_ref arg0)))))\n"
"\n"
- " (signature ivec3\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) ivec3 arg0)\n"
- " (declare (in) int arg1))\n"
- " ((return (expression ivec3 min (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) vec2 arg0))\n"
+ " ((return (expression vec2 sqrt (var_ref arg0)))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) ivec4 arg0)\n"
- " (declare (in) int arg1))\n"
- " ((return (expression ivec4 min (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) vec3 arg0))\n"
+ " ((return (expression vec3 sqrt (var_ref arg0)))))\n"
"\n"
- " (signature uint\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) uint arg0)\n"
- " (declare (in) uint arg1))\n"
- " ((return (expression uint min (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) vec4 arg0))\n"
+ " ((return (expression vec4 sqrt (var_ref arg0)))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_mix =
+ "((function mix\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in) float arg0)\n"
+ " (declare (in) float arg1)\n"
+ " (declare (in) float arg2))\n"
+ " ((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"
"\n"
- " (signature uvec2\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) uvec2 arg0)\n"
- " (declare (in) uvec2 arg1))\n"
- " ((return (expression uvec2 min (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) vec2 arg0)\n"
+ " (declare (in) vec2 arg1)\n"
+ " (declare (in) vec2 arg2))\n"
+ " ((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"
"\n"
- " (signature uvec3\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) uvec3 arg0)\n"
- " (declare (in) uvec3 arg1))\n"
- " ((return (expression uvec3 min (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) vec3 arg0)\n"
+ " (declare (in) vec3 arg1)\n"
+ " (declare (in) vec3 arg2))\n"
+ " ((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"
"\n"
- " (signature uvec4\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) uvec4 arg0)\n"
- " (declare (in) uvec4 arg1))\n"
- " ((return (expression uvec4 min (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) vec4 arg0)\n"
+ " (declare (in) vec4 arg1)\n"
+ " (declare (in) vec4 arg2))\n"
+ " ((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"
"\n"
- " (signature uvec2\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) uvec2 arg0)\n"
- " (declare (in) uint arg1))\n"
- " ((return (expression uvec2 min (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) vec2 arg0)\n"
+ " (declare (in) vec2 arg1)\n"
+ " (declare (in) float arg2))\n"
+ " ((return (expression vec2 + (expression vec2 * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression vec2 * (var_ref arg1) (var_ref arg2))))))\n"
"\n"
- " (signature uvec3\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) uvec3 arg0)\n"
- " (declare (in) uint arg1))\n"
- " ((return (expression uvec3 min (var_ref arg0) (var_ref arg1)))))\n"
+ " (declare (in) vec3 arg0)\n"
+ " (declare (in) vec3 arg1)\n"
+ " (declare (in) float arg2))\n"
+ " ((return (expression vec3 + (expression vec3 * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression vec3 * (var_ref arg1) (var_ref arg2))))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) uvec4 arg0)\n"
- " (declare (in) uint arg1))\n"
- " ((return (expression uvec4 min (var_ref arg0) (var_ref arg1)))))\n"
- "))\n"
-};
-
-static const char *builtins_130_mix = {
- "((function mix\n"
+ " (declare (in) vec4 arg0)\n"
+ " (declare (in) vec4 arg1)\n"
+ " (declare (in) float arg2))\n"
+ " ((return (expression vec4 + (expression vec4 * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression vec4 * (var_ref arg1) (var_ref arg2))))))\n"
+ "\n"
" (signature float\n"
" (parameters\n"
" (declare (in) float v1)\n"
" (assign (swiz w (var_ref a)) (swiz w (var_ref v1)) (swiz w (var_ref v2)))\n"
" (return (var_ref v1))))\n"
"))\n"
-};
-
-static const char *builtins_130_notEqual = {
- "((function notEqual\n"
- " (signature bvec2\n"
- " (parameters\n"
- " (declare (in) uvec2 arg0)\n"
- " (declare (in) uvec2 arg1))\n"
- " ((declare () bvec2 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
- "\n"
- " (signature bvec3\n"
+ ""
+;
+static const char *builtin_shadow1DArrayLod =
+ "((function shadow1DArrayLod\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) uvec3 arg0)\n"
- " (declare (in) uvec3 arg1))\n"
- " ((declare () bvec3 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
+ " (declare (in) sampler1DArrayShadow sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))\n"
"\n"
- " (signature bvec4\n"
- " (parameters\n"
- " (declare (in) uvec4 arg0)\n"
- " (declare (in) uvec4 arg1))\n"
- " ((declare () bvec4 temp)\n"
- " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
- " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool != (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
- " (return (var_ref temp))))\n"
- "))\n"
-};
-
-static const char *builtins_130_sign = {
- "((function sign\n"
- " (signature int\n"
- " (parameters\n"
- " (declare (in) int x))\n"
- " ((return (expression int sign (var_ref x)))))\n"
- "\n"
- " (signature ivec2\n"
- " (parameters\n"
- " (declare (in) ivec2 x))\n"
- " ((return (expression ivec2 sign (var_ref x)))))\n"
- "\n"
- " (signature ivec3\n"
- " (parameters\n"
- " (declare (in) ivec3 x))\n"
- " ((return (expression ivec3 sign (var_ref x)))))\n"
- "\n"
- " (signature ivec4\n"
- " (parameters\n"
- " (declare (in) ivec4 x))\n"
- " ((return (expression ivec4 sign (var_ref x)))))\n"
"))\n"
- "\n"
-};
-
-static const char *builtins_130_sinh = {
- "((function sinh\n"
- " (signature float\n"
- " (parameters\n"
- " (declare (in) float x))\n"
- " ((return (expression float * (constant float (0.5))\n"
- " (expression float -\n"
- " (expression float exp (var_ref x))\n"
- " (expression float exp (expression float neg (var_ref x))))))))\n"
- " (signature vec2\n"
- " (parameters\n"
- " (declare (in) vec2 x))\n"
- " ((return (expression vec2 * (constant vec2 (0.5))\n"
- " (expression vec2 -\n"
- " (expression vec2 exp (var_ref x))\n"
- " (expression vec2 exp (expression vec2 neg (var_ref x))))))))\n"
- " (signature vec3\n"
- " (parameters\n"
- " (declare (in) vec3 x))\n"
- " ((return (expression vec3 * (constant vec3 (0.5))\n"
- " (expression vec3 -\n"
- " (expression vec3 exp (var_ref x))\n"
- " (expression vec3 exp (expression vec3 neg (var_ref x))))))))\n"
+ ""
+;
+static const char *builtin_ftransform =
+ "((declare (uniform) mat4 gl_ModelViewProjectionMatrix)\n"
+ " (declare (in) vec4 gl_Vertex)\n"
+ " (function ftransform\n"
" (signature vec4\n"
- " (parameters\n"
- " (declare (in) vec4 x))\n"
- " ((return (expression vec4 * (constant vec4 (0.5))\n"
- " (expression vec4 -\n"
- " (expression vec4 exp (var_ref x))\n"
- " (expression vec4 exp (expression vec4 neg (var_ref x))))))))\n"
+ " (parameters)\n"
+ " ((return (expression vec4 *\n"
+ " (var_ref gl_ModelViewProjectionMatrix)\n"
+ " (var_ref gl_Vertex)))))\n"
"))\n"
-};
-
-static const char *builtins_130_tanh = {
- "((function tanh\n"
+ ""
+;
+static const char *builtin_sin =
+ "((function sin\n"
" (signature float\n"
" (parameters\n"
- " (declare (in) float x))\n"
- " ((return (expression float /\n"
- " (expression float -\n"
- " (expression float exp (var_ref x))\n"
- " (expression float exp (expression float neg (var_ref x))))\n"
- " (expression float +\n"
- " (expression float exp (var_ref x))\n"
- " (expression float exp (expression float neg (var_ref x))))))))\n"
+ " (declare (in) float angle))\n"
+ " ((return (expression float sin (var_ref angle)))))\n"
+ "\n"
" (signature vec2\n"
" (parameters\n"
- " (declare (in) vec2 x))\n"
- " ((return (expression vec2 /\n"
- " (expression vec2 -\n"
- " (expression vec2 exp (var_ref x))\n"
- " (expression vec2 exp (expression vec2 neg (var_ref x))))\n"
- " (expression vec2 +\n"
- " (expression vec2 exp (var_ref x))\n"
- " (expression vec2 exp (expression vec2 neg (var_ref x))))))))\n"
+ " (declare (in) vec2 angle))\n"
+ " ((return (expression vec2 sin (var_ref angle)))))\n"
+ "\n"
" (signature vec3\n"
" (parameters\n"
- " (declare (in) vec3 x))\n"
- " ((return (expression vec3 /\n"
- " (expression vec3 -\n"
- " (expression vec3 exp (var_ref x))\n"
- " (expression vec3 exp (expression vec3 neg (var_ref x))))\n"
- " (expression vec3 +\n"
- " (expression vec3 exp (var_ref x))\n"
- " (expression vec3 exp (expression vec3 neg (var_ref x))))))))\n"
+ " (declare (in) vec3 angle))\n"
+ " ((return (expression vec3 sin (var_ref angle)))))\n"
+ "\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) vec4 x))\n"
- " ((return (expression vec4 /\n"
- " (expression vec4 -\n"
- " (expression vec4 exp (var_ref x))\n"
- " (expression vec4 exp (expression vec4 neg (var_ref x))))\n"
- " (expression vec4 +\n"
- " (expression vec4 exp (var_ref x))\n"
- " (expression vec4 exp (expression vec4 neg (var_ref x))))))))\n"
+ " (declare (in) vec4 angle))\n"
+ " ((return (expression vec4 sin (var_ref angle)))))\n"
"))\n"
-};
-
-static const char *builtins_130_texelFetch = {
- "((function texelFetch\n"
+ ""
+;
+static const char *builtin_shadow2D =
+ "((function shadow2D\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) int P) \n"
- " (declare (in) int lod) )\n"
- " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
- "\n"
- " (signature ivec4\n"
- " (parameters\n"
- " (declare (in) isampler1D sampler)\n"
- " (declare (in) int P) \n"
- " (declare (in) int lod) )\n"
- " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
- "\n"
- " (signature uvec4\n"
- " (parameters\n"
- " (declare (in) usampler1D sampler)\n"
- " (declare (in) int P) \n"
- " (declare (in) int lod) )\n"
- " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+ " (declare (in) sampler2DShadow sampler)\n"
+ " (declare (in) vec3 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) ivec2 P) \n"
- " (declare (in) int lod) )\n"
- " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
- "\n"
- " (signature ivec4\n"
- " (parameters\n"
- " (declare (in) isampler2D sampler)\n"
- " (declare (in) ivec2 P) \n"
- " (declare (in) int lod) )\n"
- " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
- "\n"
- " (signature uvec4\n"
- " (parameters\n"
- " (declare (in) usampler2D sampler)\n"
- " (declare (in) ivec2 P) \n"
- " (declare (in) int lod) )\n"
- " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+ " (declare (in) sampler2DShadow sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))\n"
"\n"
+ "))\n"
+ ""
+;
+static const char *builtin_shadow2DLod =
+ "((function shadow2DLod\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler3D sampler)\n"
- " (declare (in) ivec3 P) \n"
- " (declare (in) int lod) )\n"
- " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
- "\n"
- " (signature ivec4\n"
- " (parameters\n"
- " (declare (in) isampler3D sampler)\n"
- " (declare (in) ivec3 P) \n"
- " (declare (in) int lod) )\n"
- " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
- "\n"
- " (signature uvec4\n"
- " (parameters\n"
- " (declare (in) usampler3D sampler)\n"
- " (declare (in) ivec3 P) \n"
- " (declare (in) int lod) )\n"
- " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+ " (declare (in) sampler2DShadow sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))\n"
"\n"
+ "))\n"
+ ""
+;
+static const char *builtin_shadow2DRectProj =
+ "((function shadow2DRectProj\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler1DArray sampler)\n"
- " (declare (in) ivec2 P) \n"
- " (declare (in) int lod) )\n"
- " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+ " (declare (in) sampler2DRectShadow sampler)\n"
+ " (declare (in) vec4 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) ))))\n"
"\n"
- " (signature ivec4\n"
+ "))\n"
+ ""
+;
+static const char *builtin_atan =
+ "((function atan\n"
+ " (signature float\n"
" (parameters\n"
- " (declare (in) isampler1DArray sampler)\n"
- " (declare (in) ivec2 P) \n"
- " (declare (in) int lod) )\n"
- " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+ " (declare (in) float x))\n"
+ " ((return (call asin ((expression float *\n"
+ " (var_ref x)\n"
+ " (expression float rsq\n"
+ " (expression float +\n"
+ " (expression float *\n"
+ " (var_ref x)\n"
+ " (var_ref x))\n"
+ " (constant float (1.0))))))))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) usampler1DArray sampler)\n"
- " (declare (in) ivec2 P) \n"
- " (declare (in) int lod) )\n"
- " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+ " (declare (in) vec2 y_over_x))\n"
+ " ((return (call asin ((expression vec2 *\n"
+ " (var_ref y_over_x)\n"
+ " (expression vec2 rsq\n"
+ " (expression vec2 +\n"
+ " (expression vec2 *\n"
+ " (var_ref y_over_x)\n"
+ " (var_ref y_over_x))\n"
+ " (constant float (1.0))))))))))\n"
"\n"
- " (signature vec4\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) sampler2DArray sampler)\n"
- " (declare (in) ivec3 P) \n"
- " (declare (in) int lod) )\n"
- " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+ " (declare (in) vec3 y_over_x))\n"
+ " ((return (call asin ((expression vec3 *\n"
+ " (var_ref y_over_x)\n"
+ " (expression vec3 rsq\n"
+ " (expression vec3 +\n"
+ " (expression vec3 *\n"
+ " (var_ref y_over_x)\n"
+ " (var_ref y_over_x))\n"
+ " (constant float (1.0))))))))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) isampler2DArray sampler)\n"
- " (declare (in) ivec3 P) \n"
- " (declare (in) int lod) )\n"
- " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+ " (declare (in) vec4 y_over_x))\n"
+ " ((return (call asin ((expression vec4 *\n"
+ " (var_ref y_over_x)\n"
+ " (expression vec4 rsq\n"
+ " (expression vec4 +\n"
+ " (expression vec4 *\n"
+ " (var_ref y_over_x)\n"
+ " (var_ref y_over_x))\n"
+ " (constant float (1.0))))))))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float y)\n"
+ " (declare (in ) float x)\n"
+ " )\n"
+ " (\n"
+ " (declare () float r)\n"
+ " (declare ( ) float abs_retval)\n"
+ " (assign (constant bool (1)) (var_ref abs_retval) (call abs ((var_ref x) ))\n"
+ ") \n"
+ " (if (expression bool > (var_ref abs_retval) (constant float (0.000100)) ) (\n"
+ " (declare ( ) float atan_retval)\n"
+ " (assign (constant bool (1)) (var_ref atan_retval) (call atan ((expression float / (var_ref y) (var_ref x) ) ))\n"
+ ") \n"
+ " (assign (constant bool (1)) (var_ref r) (var_ref atan_retval) ) \n"
+ " (if (expression bool < (var_ref x) (constant float (0.000000)) ) (\n"
+ " (if (expression bool >= (var_ref y) (constant float (0.000000)) ) (\n"
+ " (declare ( ) float assignment_tmp)\n"
+ " (assign (constant bool (1)) (var_ref assignment_tmp) (expression float + (var_ref r) (constant float (3.141593)) ) ) \n"
+ " (assign (constant bool (1)) (var_ref r) (var_ref assignment_tmp) ) \n"
+ " )\n"
+ " (\n"
+ " (declare ( ) float assignment_tmp)\n"
+ " (assign (constant bool (1)) (var_ref assignment_tmp) (expression float - (var_ref r) (constant float (3.141593)) ) ) \n"
+ " (assign (constant bool (1)) (var_ref r) (var_ref assignment_tmp) ) \n"
+ " ))\n"
+ "\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " )\n"
+ " (\n"
+ " (if (expression bool >= (var_ref y) (constant float (0.000000)) ) (\n"
+ " (assign (constant bool (1)) (var_ref r) (constant float (1.570796)) ) \n"
+ " )\n"
+ " (\n"
+ " (assign (constant bool (1)) (var_ref r) (constant float (-1.570796)) ) \n"
+ " ))\n"
+ "\n"
+ " ))\n"
+ "\n"
+ " (return (var_ref r) )\n"
+ " ))\n"
+ "\n"
+ "\n"
+ "\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) usampler2DArray sampler)\n"
- " (declare (in) ivec3 P) \n"
- " (declare (in) int lod) )\n"
- " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+ " (declare (in) vec2 y)\n"
+ " (declare (in) vec2 x))\n"
+ " ((declare () vec2 r)\n"
+ " (assign (constant bool (1))\n"
+ " (swiz x (var_ref r))\n"
+ " (call atan ((swiz x (var_ref y))\n"
+ " (swiz x (var_ref x)))))\n"
+ " (assign (constant bool (1))\n"
+ " (swiz y (var_ref r))\n"
+ " (call atan ((swiz y (var_ref y))\n"
+ " (swiz y (var_ref x)))))\n"
+ " (return (var_ref r))))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in) vec3 y)\n"
+ " (declare (in) vec3 x))\n"
+ " ((declare () vec3 r)\n"
+ " (assign (constant bool (1))\n"
+ " (swiz x (var_ref r))\n"
+ " (call atan ((swiz x (var_ref y))\n"
+ " (swiz x (var_ref x)))))\n"
+ " (assign (constant bool (1))\n"
+ " (swiz y (var_ref r))\n"
+ " (call atan ((swiz y (var_ref y))\n"
+ " (swiz y (var_ref x)))))\n"
+ " (assign (constant bool (1))\n"
+ " (swiz z (var_ref r))\n"
+ " (call atan ((swiz z (var_ref y))\n"
+ " (swiz z (var_ref x)))))\n"
+ " (return (var_ref r))))\n"
"\n"
- "))\n"
-};
-
-static const char *builtins_130_texture = {
- "((function texture\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) float P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) vec4 y)\n"
+ " (declare (in) vec4 x))\n"
+ " ((declare () vec4 r)\n"
+ " (assign (constant bool (1))\n"
+ " (swiz x (var_ref r))\n"
+ " (call atan ((swiz x (var_ref y))\n"
+ " (swiz x (var_ref x)))))\n"
+ " (assign (constant bool (1))\n"
+ " (swiz y (var_ref r))\n"
+ " (call atan ((swiz y (var_ref y))\n"
+ " (swiz y (var_ref x)))))\n"
+ " (assign (constant bool (1))\n"
+ " (swiz z (var_ref r))\n"
+ " (call atan ((swiz z (var_ref y))\n"
+ " (swiz z (var_ref x)))))\n"
+ " (assign (constant bool (1))\n"
+ " (swiz w (var_ref r))\n"
+ " (call atan ((swiz w (var_ref y))\n"
+ " (swiz w (var_ref x)))))\n"
+ " (return (var_ref r)))))\n"
"\n"
- " (signature ivec4\n"
+ "))\n"
+ ""
+;
+static const char *builtin_max =
+ "((function max\n"
+ " (signature float\n"
" (parameters\n"
- " (declare (in) isampler1D sampler)\n"
- " (declare (in) float P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) float arg0)\n"
+ " (declare (in) float arg1))\n"
+ " ((return (expression float max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) usampler1D sampler)\n"
- " (declare (in) float P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) vec2 arg0)\n"
+ " (declare (in) vec2 arg1))\n"
+ " ((return (expression vec2 max (var_ref arg0) (var_ref arg1)))))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in) vec3 arg0)\n"
+ " (declare (in) vec3 arg1))\n"
+ " ((return (expression vec3 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) vec2 P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) vec4 arg0)\n"
+ " (declare (in) vec4 arg1))\n"
+ " ((return (expression vec4 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) isampler2D sampler)\n"
- " (declare (in) vec2 P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) vec2 arg0)\n"
+ " (declare (in) float arg1))\n"
+ " ((return (expression vec2 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) usampler2D sampler)\n"
- " (declare (in) vec2 P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) vec3 arg0)\n"
+ " (declare (in) float arg1))\n"
+ " ((return (expression vec3 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler3D sampler)\n"
- " (declare (in) vec3 P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) vec4 arg0)\n"
+ " (declare (in) float arg1))\n"
+ " ((return (expression vec4 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature int\n"
" (parameters\n"
- " (declare (in) isampler3D sampler)\n"
- " (declare (in) vec3 P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) int arg0)\n"
+ " (declare (in) int arg1))\n"
+ " ((return (expression int max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature ivec2\n"
" (parameters\n"
- " (declare (in) usampler3D sampler)\n"
- " (declare (in) vec3 P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) ivec2 arg0)\n"
+ " (declare (in) ivec2 arg1))\n"
+ " ((return (expression ivec2 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature vec4\n"
+ " (signature ivec3\n"
" (parameters\n"
- " (declare (in) samplerCube sampler)\n"
- " (declare (in) vec3 P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) ivec3 arg0)\n"
+ " (declare (in) ivec3 arg1))\n"
+ " ((return (expression ivec3 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature ivec4\n"
" (parameters\n"
- " (declare (in) isamplerCube sampler)\n"
- " (declare (in) vec3 P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) ivec4 arg0)\n"
+ " (declare (in) ivec4 arg1))\n"
+ " ((return (expression ivec4 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature ivec2\n"
" (parameters\n"
- " (declare (in) usamplerCube sampler)\n"
- " (declare (in) vec3 P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) ivec2 arg0)\n"
+ " (declare (in) int arg1))\n"
+ " ((return (expression ivec2 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature vec4\n"
+ " (signature ivec3\n"
" (parameters\n"
- " (declare (in) sampler1DArray sampler)\n"
- " (declare (in) vec2 P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) ivec3 arg0)\n"
+ " (declare (in) int arg1))\n"
+ " ((return (expression ivec3 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature ivec4\n"
" (parameters\n"
- " (declare (in) isampler1DArray sampler)\n"
- " (declare (in) vec2 P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) ivec4 arg0)\n"
+ " (declare (in) int arg1))\n"
+ " ((return (expression ivec4 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature uint\n"
" (parameters\n"
- " (declare (in) usampler1DArray sampler)\n"
- " (declare (in) vec2 P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) uint arg0)\n"
+ " (declare (in) uint arg1))\n"
+ " ((return (expression uint max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature vec4\n"
+ " (signature uvec2\n"
" (parameters\n"
- " (declare (in) sampler2DArray sampler)\n"
- " (declare (in) vec3 P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) uvec2 arg0)\n"
+ " (declare (in) uvec2 arg1))\n"
+ " ((return (expression uvec2 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature uvec3\n"
" (parameters\n"
- " (declare (in) isampler2DArray sampler)\n"
- " (declare (in) vec3 P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) uvec3 arg0)\n"
+ " (declare (in) uvec3 arg1))\n"
+ " ((return (expression uvec3 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature uvec4\n"
" (parameters\n"
- " (declare (in) usampler2DArray sampler)\n"
- " (declare (in) vec3 P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (declare (in) uvec4 arg0)\n"
+ " (declare (in) uvec4 arg1))\n"
+ " ((return (expression uvec4 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- "))\n"
-};
-
-static const char *builtins_130_textureGrad = {
- "((function textureGrad\n"
- " (signature vec4\n"
+ " (signature uvec2\n"
" (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) float P) \n"
- " (declare (in) float dPdx) \n"
- " (declare (in) float dPdy) )\n"
- " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ " (declare (in) uvec2 arg0)\n"
+ " (declare (in) uint arg1))\n"
+ " ((return (expression uvec2 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature uvec3\n"
" (parameters\n"
- " (declare (in) isampler1D sampler)\n"
- " (declare (in) float P) \n"
- " (declare (in) float dPdx) \n"
- " (declare (in) float dPdy) )\n"
- " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ " (declare (in) uvec3 arg0)\n"
+ " (declare (in) uint arg1))\n"
+ " ((return (expression uvec3 max (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature uvec4\n"
" (parameters\n"
- " (declare (in) usampler1D sampler)\n"
- " (declare (in) float P) \n"
- " (declare (in) float dPdx) \n"
- " (declare (in) float dPdy) )\n"
- " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
- "\n"
- " (signature vec4\n"
+ " (declare (in) uvec4 arg0)\n"
+ " (declare (in) uint arg1))\n"
+ " ((return (expression uvec4 max (var_ref arg0) (var_ref arg1)))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_reflect =
+ "((function reflect\n"
+ " (signature float\n"
" (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) vec2 dPdx) \n"
- " (declare (in) vec2 dPdy) )\n"
- " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ " (declare (in) float i)\n"
+ " (declare (in) float n))\n"
+ " ((return (expression float -\n"
+ " (var_ref i)\n"
+ " (expression float *\n"
+ " (constant float (2.0))\n"
+ " (expression float *\n"
+ " (expression float dot\n"
+ " (var_ref n)\n"
+ " (var_ref i))\n"
+ " (var_ref n)))))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) isampler2D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) vec2 dPdx) \n"
- " (declare (in) vec2 dPdy) )\n"
- " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ " (declare (in) vec2 i)\n"
+ " (declare (in) vec2 n))\n"
+ " ((return (expression vec2 -\n"
+ " (var_ref i)\n"
+ " (expression vec2 *\n"
+ " (constant float (2.0))\n"
+ " (expression vec2 *\n"
+ " (expression float dot\n"
+ " (var_ref n)\n"
+ " (var_ref i))\n"
+ " (var_ref n)))))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) usampler2D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) vec2 dPdx) \n"
- " (declare (in) vec2 dPdy) )\n"
- " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ " (declare (in) vec3 i)\n"
+ " (declare (in) vec3 n))\n"
+ " ((return (expression vec3 -\n"
+ " (var_ref i)\n"
+ " (expression vec3 *\n"
+ " (constant float (2.0))\n"
+ " (expression vec3 *\n"
+ " (expression float dot\n"
+ " (var_ref n)\n"
+ " (var_ref i))\n"
+ " (var_ref n)))))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler3D sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) vec3 dPdx) \n"
- " (declare (in) vec3 dPdy) )\n"
- " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ " (declare (in) vec4 i)\n"
+ " (declare (in) vec4 n))\n"
+ " ((return (expression vec4 -\n"
+ " (var_ref i)\n"
+ " (expression vec4 *\n"
+ " (constant float (2.0))\n"
+ " (expression vec4 *\n"
+ " (expression float dot\n"
+ " (var_ref n)\n"
+ " (var_ref i))\n"
+ " (var_ref n)))))))\n"
"\n"
- " (signature ivec4\n"
+ "))\n"
+ ""
+;
+static const char *builtin_texture3D =
+ "((function texture3D\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) isampler3D sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) vec3 dPdx) \n"
- " (declare (in) vec3 dPdy) )\n"
- " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ " (declare (in) sampler3D sampler)\n"
+ " (declare (in) vec3 P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) usampler3D sampler)\n"
+ " (declare (in) sampler3D sampler)\n"
" (declare (in) vec3 P) \n"
- " (declare (in) vec3 dPdx) \n"
- " (declare (in) vec3 dPdy) )\n"
- " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
"\n"
+ "))\n"
+ ""
+;
+static const char *builtin_texelFetch =
+ "((function texelFetch\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) samplerCube sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) vec3 dPdx) \n"
- " (declare (in) vec3 dPdy) )\n"
- " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ " (declare (in) sampler1D sampler)\n"
+ " (declare (in) int P) \n"
+ " (declare (in) int lod) )\n"
+ " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
"\n"
" (signature ivec4\n"
" (parameters\n"
- " (declare (in) isamplerCube sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) vec3 dPdx) \n"
- " (declare (in) vec3 dPdy) )\n"
- " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ " (declare (in) isampler1D sampler)\n"
+ " (declare (in) int P) \n"
+ " (declare (in) int lod) )\n"
+ " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
"\n"
" (signature uvec4\n"
" (parameters\n"
- " (declare (in) usamplerCube sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) vec3 dPdx) \n"
- " (declare (in) vec3 dPdy) )\n"
- " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ " (declare (in) usampler1D sampler)\n"
+ " (declare (in) int P) \n"
+ " (declare (in) int lod) )\n"
+ " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler1DArray sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) vec2 dPdx) \n"
- " (declare (in) vec2 dPdy) )\n"
- " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ " (declare (in) sampler2D sampler)\n"
+ " (declare (in) ivec2 P) \n"
+ " (declare (in) int lod) )\n"
+ " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
"\n"
" (signature ivec4\n"
" (parameters\n"
- " (declare (in) isampler1DArray sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) vec2 dPdx) \n"
- " (declare (in) vec2 dPdy) )\n"
- " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ " (declare (in) isampler2D sampler)\n"
+ " (declare (in) ivec2 P) \n"
+ " (declare (in) int lod) )\n"
+ " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
"\n"
" (signature uvec4\n"
" (parameters\n"
- " (declare (in) usampler1DArray sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) vec2 dPdx) \n"
- " (declare (in) vec2 dPdy) )\n"
- " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ " (declare (in) usampler2D sampler)\n"
+ " (declare (in) ivec2 P) \n"
+ " (declare (in) int lod) )\n"
+ " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler2DArray sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) vec3 dPdx) \n"
- " (declare (in) vec3 dPdy) )\n"
- " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ " (declare (in) sampler3D sampler)\n"
+ " (declare (in) ivec3 P) \n"
+ " (declare (in) int lod) )\n"
+ " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
"\n"
" (signature ivec4\n"
" (parameters\n"
- " (declare (in) isampler2DArray sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) vec3 dPdx) \n"
- " (declare (in) vec3 dPdy) )\n"
- " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ " (declare (in) isampler3D sampler)\n"
+ " (declare (in) ivec3 P) \n"
+ " (declare (in) int lod) )\n"
+ " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
"\n"
" (signature uvec4\n"
" (parameters\n"
- " (declare (in) usampler2DArray sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) vec3 dPdx) \n"
- " (declare (in) vec3 dPdy) )\n"
- " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+ " (declare (in) usampler3D sampler)\n"
+ " (declare (in) ivec3 P) \n"
+ " (declare (in) int lod) )\n"
+ " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
"\n"
- ")\n"
- ")\n"
-};
-
-static const char *builtins_130_textureLod = {
- "((function textureLod\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) float P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ " (declare (in) sampler1DArray sampler)\n"
+ " (declare (in) ivec2 P) \n"
+ " (declare (in) int lod) )\n"
+ " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
"\n"
" (signature ivec4\n"
" (parameters\n"
- " (declare (in) isampler1D sampler)\n"
- " (declare (in) float P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ " (declare (in) isampler1DArray sampler)\n"
+ " (declare (in) ivec2 P) \n"
+ " (declare (in) int lod) )\n"
+ " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
"\n"
" (signature uvec4\n"
" (parameters\n"
- " (declare (in) usampler1D sampler)\n"
- " (declare (in) float P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ " (declare (in) usampler1DArray sampler)\n"
+ " (declare (in) ivec2 P) \n"
+ " (declare (in) int lod) )\n"
+ " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ " (declare (in) sampler2DArray sampler)\n"
+ " (declare (in) ivec3 P) \n"
+ " (declare (in) int lod) )\n"
+ " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
"\n"
" (signature ivec4\n"
" (parameters\n"
- " (declare (in) isampler2D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ " (declare (in) isampler2DArray sampler)\n"
+ " (declare (in) ivec3 P) \n"
+ " (declare (in) int lod) )\n"
+ " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
"\n"
" (signature uvec4\n"
" (parameters\n"
- " (declare (in) usampler2D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ " (declare (in) usampler2DArray sampler)\n"
+ " (declare (in) ivec3 P) \n"
+ " (declare (in) int lod) )\n"
+ " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
"\n"
+ "))\n"
+ ""
+;
+static const char *builtin_noise4 =
+ "((function noise4\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler3D sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
- "\n"
- " (signature ivec4\n"
- " (parameters\n"
- " (declare (in) isampler3D sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
- "\n"
- " (signature uvec4\n"
+ " (declare (in) float x))\n"
+ " ((return (constant vec4 (0 0 0 0)))))\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) usampler3D sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
- "\n"
+ " (declare (in) vec2 x))\n"
+ " ((return (constant vec4 (0 0 0 0)))))\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) samplerCube sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
- "\n"
- " (signature ivec4\n"
+ " (declare (in) vec3 x))\n"
+ " ((return (constant vec4 (0 0 0 0)))))\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) isamplerCube sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
- "\n"
- " (signature uvec4\n"
+ " (declare (in) vec4 x))\n"
+ " ((return (constant vec4 (0 0 0 0)))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_notEqual =
+ "((function notEqual\n"
+ " (signature bvec2\n"
" (parameters\n"
- " (declare (in) usamplerCube sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ " (declare (in) vec2 arg0)\n"
+ " (declare (in) vec2 arg1))\n"
+ " ((declare () bvec2 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n"
+ " (return (var_ref temp))))\n"
"\n"
- " (signature vec4\n"
+ " (signature bvec3\n"
" (parameters\n"
- " (declare (in) sampler1DArray sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ " (declare (in) vec3 arg0)\n"
+ " (declare (in) vec3 arg1))\n"
+ " ((declare () bvec3 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1))))\n"
+ " (return (var_ref temp))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature bvec4\n"
" (parameters\n"
- " (declare (in) isampler1DArray sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ " (declare (in) vec4 arg0)\n"
+ " (declare (in) vec4 arg1))\n"
+ " ((declare () bvec4 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1))))\n"
+ " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool != (swiz w (var_ref arg0))(swiz w (var_ref arg1))))\n"
+ " (return (var_ref temp))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature bvec2\n"
" (parameters\n"
- " (declare (in) usampler1DArray sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ " (declare (in) ivec2 arg0)\n"
+ " (declare (in) ivec2 arg1))\n"
+ " ((declare () bvec2 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n"
+ " (return (var_ref temp))))\n"
"\n"
- " (signature vec4\n"
+ " (signature bvec3\n"
" (parameters\n"
- " (declare (in) sampler2DArray sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ " (declare (in) ivec3 arg0)\n"
+ " (declare (in) ivec3 arg1))\n"
+ " ((declare () bvec3 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1))))\n"
+ " (return (var_ref temp))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature bvec4\n"
" (parameters\n"
- " (declare (in) isampler2DArray sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ " (declare (in) ivec4 arg0)\n"
+ " (declare (in) ivec4 arg1))\n"
+ " ((declare () bvec4 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1))))\n"
+ " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool != (swiz w (var_ref arg0))(swiz w (var_ref arg1))))\n"
+ " (return (var_ref temp))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature bvec2\n"
" (parameters\n"
- " (declare (in) usampler2DArray sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ " (declare (in) uvec2 arg0)\n"
+ " (declare (in) uvec2 arg1))\n"
+ " ((declare () bvec2 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- "))\n"
-};
-
-static const char *builtins_130_textureProj = {
- "((function textureProj\n"
- " (signature vec4\n"
+ " (signature bvec3\n"
" (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) vec2 P) )\n"
- " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
+ " (declare (in) uvec3 arg0)\n"
+ " (declare (in) uvec3 arg1))\n"
+ " ((declare () bvec3 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature bvec4\n"
" (parameters\n"
- " (declare (in) isampler1D sampler)\n"
- " (declare (in) vec2 P) )\n"
- " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
- "\n"
- " (signature uvec4\n"
+ " (declare (in) uvec4 arg0)\n"
+ " (declare (in) uvec4 arg1))\n"
+ " ((declare () bvec4 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool != (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_outerProduct =
+ "((function outerProduct\n"
+ " (signature mat2\n"
" (parameters\n"
- " (declare (in) usampler1D sampler)\n"
- " (declare (in) vec2 P) )\n"
- " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
+ " (declare (in) vec2 u)\n"
+ " (declare (in) vec2 v))\n"
+ " ((declare () mat2 m)\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref u) (swiz x (var_ref v))))\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref u) (swiz y (var_ref v))))\n"
+ " (return (var_ref m))))\n"
"\n"
- " (signature vec4\n"
+ " (signature mat2x3\n"
" (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) vec4 P) )\n"
- " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+ " (declare (in) vec3 u)\n"
+ " (declare (in) vec2 v))\n"
+ " ((declare () mat2x3 m)\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref u) (swiz x (var_ref v))))\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref u) (swiz y (var_ref v))))\n"
+ " (return (var_ref m))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature mat2x4\n"
" (parameters\n"
- " (declare (in) isampler1D sampler)\n"
- " (declare (in) vec4 P) )\n"
- " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+ " (declare (in) vec4 u)\n"
+ " (declare (in) vec2 v))\n"
+ " ((declare () mat2x4 m)\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref u) (swiz x (var_ref v))))\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref u) (swiz y (var_ref v))))\n"
+ " (return (var_ref m))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature mat3x2\n"
" (parameters\n"
- " (declare (in) usampler1D sampler)\n"
- " (declare (in) vec4 P) )\n"
- " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+ " (declare (in) vec2 u)\n"
+ " (declare (in) vec3 v))\n"
+ " ((declare () mat3x2 m)\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref u) (swiz x (var_ref v))))\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref u) (swiz y (var_ref v))))\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec2 * (var_ref u) (swiz z (var_ref v))))\n"
+ " (return (var_ref m))\n"
+ " ))\n"
"\n"
- " (signature vec4\n"
+ " (signature mat3\n"
" (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) vec3 P) )\n"
- " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
+ " (declare (in) vec3 u)\n"
+ " (declare (in) vec3 v))\n"
+ " ((declare () mat3 m)\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref u) (swiz x (var_ref v))))\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref u) (swiz y (var_ref v))))\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec3 * (var_ref u) (swiz z (var_ref v))))\n"
+ " (return (var_ref m))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature mat3x4\n"
" (parameters\n"
- " (declare (in) isampler2D sampler)\n"
- " (declare (in) vec3 P) )\n"
- " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
+ " (declare (in) vec4 u)\n"
+ " (declare (in) vec3 v))\n"
+ " ((declare () mat3x4 m)\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref u) (swiz x (var_ref v))))\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref u) (swiz y (var_ref v))))\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec4 * (var_ref u) (swiz z (var_ref v))))\n"
+ " (return (var_ref m))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature mat4x2\n"
" (parameters\n"
- " (declare (in) usampler2D sampler)\n"
- " (declare (in) vec3 P) )\n"
- " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
+ " (declare (in) vec2 u)\n"
+ " (declare (in) vec4 v))\n"
+ " ((declare () mat4x2 m)\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref u) (swiz x (var_ref v))))\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref u) (swiz y (var_ref v))))\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec2 * (var_ref u) (swiz z (var_ref v))))\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (3))) (expression vec2 * (var_ref u) (swiz w (var_ref v))))\n"
+ " (return (var_ref m))))\n"
"\n"
- " (signature vec4\n"
+ " (signature mat4x3\n"
" (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) vec4 P) )\n"
- " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+ " (declare (in) vec3 u)\n"
+ " (declare (in) vec4 v))\n"
+ " ((declare () mat4x3 m)\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref u) (swiz x (var_ref v))))\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref u) (swiz y (var_ref v))))\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec3 * (var_ref u) (swiz z (var_ref v))))\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (3))) (expression vec3 * (var_ref u) (swiz w (var_ref v))))\n"
+ " (return (var_ref m))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature mat4\n"
" (parameters\n"
- " (declare (in) isampler2D sampler)\n"
- " (declare (in) vec4 P) )\n"
- " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
- "\n"
- " (signature uvec4\n"
+ " (declare (in) vec4 u)\n"
+ " (declare (in) vec4 v))\n"
+ " ((declare () mat4 m)\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref u) (swiz x (var_ref v))))\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref u) (swiz y (var_ref v))))\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec4 * (var_ref u) (swiz z (var_ref v))))\n"
+ " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (3))) (expression vec4 * (var_ref u) (swiz w (var_ref v))))\n"
+ " (return (var_ref m))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_shadow1D =
+ "((function shadow1D\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) usampler2D sampler)\n"
- " (declare (in) vec4 P) )\n"
- " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+ " (declare (in) sampler1DShadow sampler)\n"
+ " (declare (in) vec3 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler3D sampler)\n"
- " (declare (in) vec4 P) )\n"
- " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+ " (declare (in) sampler1DShadow sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))\n"
"\n"
- " (signature ivec4\n"
+ "))\n"
+ ""
+;
+static const char *builtin_noise1 =
+ "((function noise1\n"
+ " (signature float\n"
" (parameters\n"
- " (declare (in) isampler3D sampler)\n"
- " (declare (in) vec4 P) )\n"
- " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
- "\n"
- " (signature uvec4\n"
+ " (declare (in) float x))\n"
+ " ((return (constant float (0)))))\n"
+ " (signature float\n"
" (parameters\n"
- " (declare (in) usampler3D sampler)\n"
- " (declare (in) vec4 P) )\n"
- " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
- "\n"
+ " (declare (in) vec2 x))\n"
+ " ((return (constant float (0)))))\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in) vec3 x))\n"
+ " ((return (constant float (0)))))\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in) vec4 x))\n"
+ " ((return (constant float (0)))))\n"
"))\n"
-};
-
-static const char *builtins_130_textureProjGrad = {
- "((function textureProjGrad\n"
- " (signature vec4\n"
+ ""
+;
+static const char *builtin_refract =
+ "((function refract\n"
+ " (signature float\n"
" (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float dPdx) \n"
- " (declare (in) float dPdy) )\n"
- " ((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"
+ " (declare (in) float i)\n"
+ " (declare (in) float n)\n"
+ " (declare (in) float eta))\n"
+ " ((declare () float k)\n"
+ " (assign (constant bool (1)) (var_ref k)\n"
+ " (expression float - (constant float (1.0))\n"
+ " (expression float * (var_ref eta)\n"
+ " (expression float * (var_ref eta)\n"
+ " (expression float - (constant float (1.0))\n"
+ " (expression float * \n"
+ " (expression float dot (var_ref n) (var_ref i))\n"
+ " (expression float dot (var_ref n) (var_ref i))))))))\n"
+ " (if (expression bool < (var_ref k) (constant float (0.0)))\n"
+ " ((return (constant float (0.0))))\n"
+ " ((return (expression float -\n"
+ " (expression float * (var_ref eta) (var_ref i))\n"
+ " (expression float *\n"
+ " (expression float +\n"
+ " (expression float * (var_ref eta)\n"
+ " (expression float dot (var_ref n) (var_ref i)))\n"
+ " (expression float sqrt (var_ref k)))\n"
+ " (var_ref n))))))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) isampler1D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float dPdx) \n"
- " (declare (in) float dPdy) )\n"
- " ((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"
+ " (declare (in) vec2 i)\n"
+ " (declare (in) vec2 n)\n"
+ " (declare (in) float eta))\n"
+ " ((declare () float k)\n"
+ " (assign (constant bool (1)) (var_ref k)\n"
+ " (expression float - (constant float (1.0))\n"
+ " (expression float * (var_ref eta)\n"
+ " (expression float * (var_ref eta)\n"
+ " (expression float - (constant float (1.0))\n"
+ " (expression float * \n"
+ " (expression float dot (var_ref n) (var_ref i))\n"
+ " (expression float dot (var_ref n) (var_ref i))))))))\n"
+ " (if (expression bool < (var_ref k) (constant float (0.0)))\n"
+ " ((return (constant vec2 (0.0 0.0))))\n"
+ " ((return (expression vec2 -\n"
+ " (expression vec2 * (var_ref eta) (var_ref i))\n"
+ " (expression vec2 *\n"
+ " (expression float +\n"
+ " (expression float * (var_ref eta)\n"
+ " (expression float dot (var_ref n) (var_ref i)))\n"
+ " (expression float sqrt (var_ref k)))\n"
+ " (var_ref n))))))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) usampler1D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float dPdx) \n"
- " (declare (in) float dPdy) )\n"
- " ((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"
+ " (declare (in) vec3 i)\n"
+ " (declare (in) vec3 n)\n"
+ " (declare (in) float eta))\n"
+ " ((declare () float k)\n"
+ " (assign (constant bool (1)) (var_ref k)\n"
+ " (expression float - (constant float (1.0))\n"
+ " (expression float * (var_ref eta)\n"
+ " (expression float * (var_ref eta)\n"
+ " (expression float - (constant float (1.0))\n"
+ " (expression float * \n"
+ " (expression float dot (var_ref n) (var_ref i))\n"
+ " (expression float dot (var_ref n) (var_ref i))))))))\n"
+ " (if (expression bool < (var_ref k) (constant float (0.0)))\n"
+ " ((return (constant vec3 (0.0 0.0 0.0))))\n"
+ " ((return (expression vec3 -\n"
+ " (expression vec3 * (var_ref eta) (var_ref i))\n"
+ " (expression vec3 *\n"
+ " (expression float +\n"
+ " (expression float * (var_ref eta)\n"
+ " (expression float dot (var_ref n) (var_ref i)))\n"
+ " (expression float sqrt (var_ref k)))\n"
+ " (var_ref n))))))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float dPdx) \n"
- " (declare (in) float dPdy) )\n"
- " ((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"
+ " (declare (in) vec4 i)\n"
+ " (declare (in) vec4 n)\n"
+ " (declare (in) float eta))\n"
+ " ((declare () float k)\n"
+ " (assign (constant bool (1)) (var_ref k)\n"
+ " (expression float - (constant float (1.0))\n"
+ " (expression float * (var_ref eta)\n"
+ " (expression float * (var_ref eta)\n"
+ " (expression float - (constant float (1.0))\n"
+ " (expression float * \n"
+ " (expression float dot (var_ref n) (var_ref i))\n"
+ " (expression float dot (var_ref n) (var_ref i))))))))\n"
+ " (if (expression bool < (var_ref k) (constant float (0.0)))\n"
+ " ((return (constant vec4 (0.0 0.0 0.0 0.0))))\n"
+ " ((return (expression vec4 -\n"
+ " (expression vec4 * (var_ref eta) (var_ref i))\n"
+ " (expression vec4 *\n"
+ " (expression float +\n"
+ " (expression float * (var_ref eta)\n"
+ " (expression float dot (var_ref n) (var_ref i)))\n"
+ " (expression float sqrt (var_ref k)))\n"
+ " (var_ref n))))))))\n"
"\n"
- " (signature ivec4\n"
+ "))\n"
+ ""
+;
+static const char *builtin_noise3 =
+ "((function noise3\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) isampler1D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float dPdx) \n"
- " (declare (in) float dPdy) )\n"
- " ((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"
+ " (declare (in) float x))\n"
+ " ((return (constant vec3 (0 0 0)))))\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in) vec2 x))\n"
+ " ((return (constant vec3 (0 0 0)))))\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in) vec3 x))\n"
+ " ((return (constant vec3 (0 0 0)))))\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in) vec4 x))\n"
+ " ((return (constant vec3 (0 0 0)))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_min =
+ "((function min\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in) float arg0)\n"
+ " (declare (in) float arg1))\n"
+ " ((return (expression float min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) usampler1D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float dPdx) \n"
- " (declare (in) float dPdy) )\n"
- " ((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"
+ " (declare (in) vec2 arg0)\n"
+ " (declare (in) vec2 arg1))\n"
+ " ((return (expression vec2 min (var_ref arg0) (var_ref arg1)))))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in) vec3 arg0)\n"
+ " (declare (in) vec3 arg1))\n"
+ " ((return (expression vec3 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) vec2 dPdx) \n"
- " (declare (in) vec2 dPdy) )\n"
- " ((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"
+ " (declare (in) vec4 arg0)\n"
+ " (declare (in) vec4 arg1))\n"
+ " ((return (expression vec4 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) isampler2D sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) vec2 dPdx) \n"
- " (declare (in) vec2 dPdy) )\n"
- " ((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"
+ " (declare (in) vec2 arg0)\n"
+ " (declare (in) float arg1))\n"
+ " ((return (expression vec2 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) usampler2D sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) vec2 dPdx) \n"
- " (declare (in) vec2 dPdy) )\n"
- " ((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"
+ " (declare (in) vec3 arg0)\n"
+ " (declare (in) float arg1))\n"
+ " ((return (expression vec3 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) vec2 dPdx) \n"
- " (declare (in) vec2 dPdy) )\n"
- " ((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"
+ " (declare (in) vec4 arg0)\n"
+ " (declare (in) float arg1))\n"
+ " ((return (expression vec4 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature int\n"
" (parameters\n"
- " (declare (in) isampler2D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) vec2 dPdx) \n"
- " (declare (in) vec2 dPdy) )\n"
- " ((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"
+ " (declare (in) int arg0)\n"
+ " (declare (in) int arg1))\n"
+ " ((return (expression int min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature ivec2\n"
" (parameters\n"
- " (declare (in) usampler2D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) vec2 dPdx) \n"
- " (declare (in) vec2 dPdy) )\n"
- " ((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"
+ " (declare (in) ivec2 arg0)\n"
+ " (declare (in) ivec2 arg1))\n"
+ " ((return (expression ivec2 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature vec4\n"
+ " (signature ivec3\n"
" (parameters\n"
- " (declare (in) sampler3D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) vec3 dPdx) \n"
- " (declare (in) vec3 dPdy) )\n"
- " ((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"
+ " (declare (in) ivec3 arg0)\n"
+ " (declare (in) ivec3 arg1))\n"
+ " ((return (expression ivec3 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature ivec4\n"
" (parameters\n"
- " (declare (in) isampler3D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) vec3 dPdx) \n"
- " (declare (in) vec3 dPdy) )\n"
- " ((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"
+ " (declare (in) ivec4 arg0)\n"
+ " (declare (in) ivec4 arg1))\n"
+ " ((return (expression ivec4 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature ivec2\n"
" (parameters\n"
- " (declare (in) usampler3D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) vec3 dPdx) \n"
- " (declare (in) vec3 dPdy) )\n"
- " ((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"
+ " (declare (in) ivec2 arg0)\n"
+ " (declare (in) int arg1))\n"
+ " ((return (expression ivec2 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- "))\n"
-};
-
-static const char *builtins_130_textureProjLod = {
- "((function textureProjLod\n"
- " (signature vec4\n"
+ " (signature ivec3\n"
" (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
+ " (declare (in) ivec3 arg0)\n"
+ " (declare (in) int arg1))\n"
+ " ((return (expression ivec3 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature ivec4\n"
" (parameters\n"
- " (declare (in) isampler1D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
+ " (declare (in) ivec4 arg0)\n"
+ " (declare (in) int arg1))\n"
+ " ((return (expression ivec4 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature uint\n"
" (parameters\n"
- " (declare (in) usampler1D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
+ " (declare (in) uint arg0)\n"
+ " (declare (in) uint arg1))\n"
+ " ((return (expression uint min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature vec4\n"
+ " (signature uvec2\n"
" (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+ " (declare (in) uvec2 arg0)\n"
+ " (declare (in) uvec2 arg1))\n"
+ " ((return (expression uvec2 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature uvec3\n"
" (parameters\n"
- " (declare (in) isampler1D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+ " (declare (in) uvec3 arg0)\n"
+ " (declare (in) uvec3 arg1))\n"
+ " ((return (expression uvec3 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature uvec4\n"
" (parameters\n"
- " (declare (in) usampler1D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+ " (declare (in) uvec4 arg0)\n"
+ " (declare (in) uvec4 arg1))\n"
+ " ((return (expression uvec4 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature vec4\n"
+ " (signature uvec2\n"
" (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
+ " (declare (in) uvec2 arg0)\n"
+ " (declare (in) uint arg1))\n"
+ " ((return (expression uvec2 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature uvec3\n"
" (parameters\n"
- " (declare (in) isampler2D sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
+ " (declare (in) uvec3 arg0)\n"
+ " (declare (in) uint arg1))\n"
+ " ((return (expression uvec3 min (var_ref arg0) (var_ref arg1)))))\n"
"\n"
" (signature uvec4\n"
" (parameters\n"
- " (declare (in) usampler2D sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
- "\n"
+ " (declare (in) uvec4 arg0)\n"
+ " (declare (in) uint arg1))\n"
+ " ((return (expression uvec4 min (var_ref arg0) (var_ref arg1)))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_textureCube =
+ "((function textureCube\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
- "\n"
- " (signature ivec4\n"
- " (parameters\n"
- " (declare (in) isampler2D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
- "\n"
- " (signature uvec4\n"
- " (parameters\n"
- " (declare (in) usampler2D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+ " (declare (in) samplerCube sampler)\n"
+ " (declare (in) vec3 P) )\n"
+ " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler3D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+ " (declare (in) samplerCube sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
"\n"
- " (signature ivec4\n"
+ "))\n"
+ ""
+;
+static const char *builtin_shadow1DArray =
+ "((function shadow1DArray\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) isampler3D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+ " (declare (in) sampler1DArrayShadow sampler)\n"
+ " (declare (in) vec3 P) )\n"
+ " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature vec4\n"
" (parameters\n"
- " (declare (in) usampler3D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+ " (declare (in) sampler1DArrayShadow sampler)\n"
+ " (declare (in) vec3 P) \n"
+ " (declare (in) float bias) )\n"
+ " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))\n"
"\n"
"))\n"
-};
-
-static const char *functions_for_130 [] = {
- builtins_130_clamp,
- builtins_130_cosh,
- builtins_130_equal,
- builtins_130_greaterThan,
- builtins_130_greaterThanEqual,
- builtins_130_lessThan,
- builtins_130_lessThanEqual,
- builtins_130_max,
- builtins_130_min,
- builtins_130_mix,
- builtins_130_notEqual,
- builtins_130_sign,
- builtins_130_sinh,
- builtins_130_tanh,
- builtins_130_texelFetch,
- builtins_130_texture,
- builtins_130_textureGrad,
- builtins_130_textureLod,
- builtins_130_textureProj,
- builtins_130_textureProjGrad,
- builtins_130_textureProjLod,
-};
-
-/* 130_fs builtins */
-
-static const char *builtins_130_fs_texture = {
- "((function texture\n"
- " (signature vec4\n"
+ ""
+;
+static const char *builtin_exp =
+ "((function exp\n"
+ " (signature float\n"
" (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) float P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (declare (in) float arg0))\n"
+ " ((return (expression float exp (var_ref arg0)))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature vec2\n"
" (parameters\n"
- " (declare (in) isampler1D sampler)\n"
- " (declare (in) float P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (declare (in) vec2 arg0))\n"
+ " ((return (expression vec2 exp (var_ref arg0)))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature vec3\n"
" (parameters\n"
- " (declare (in) usampler1D sampler)\n"
- " (declare (in) float P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (declare (in) vec3 arg0))\n"
+ " ((return (expression vec3 exp (var_ref arg0)))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
- "\n"
- " (signature ivec4\n"
+ " (declare (in) vec4 arg0))\n"
+ " ((return (expression vec4 exp (var_ref arg0)))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_greaterThan =
+ "((function greaterThan\n"
+ " (signature bvec2\n"
" (parameters\n"
- " (declare (in) isampler2D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (declare (in) vec2 arg0)\n"
+ " (declare (in) vec2 arg1))\n"
+ " ((declare () bvec2 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature bvec3\n"
" (parameters\n"
- " (declare (in) usampler2D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (declare (in) vec3 arg0)\n"
+ " (declare (in) vec3 arg1))\n"
+ " ((declare () bvec3 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- " (signature vec4\n"
+ " (signature bvec4\n"
" (parameters\n"
- " (declare (in) sampler3D sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (declare (in) vec4 arg0)\n"
+ " (declare (in) vec4 arg1))\n"
+ " ((declare () bvec4 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool > (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature bvec2\n"
" (parameters\n"
- " (declare (in) isampler3D sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (declare (in) ivec2 arg0)\n"
+ " (declare (in) ivec2 arg1))\n"
+ " ((declare () bvec2 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature bvec3\n"
" (parameters\n"
- " (declare (in) usampler3D sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (declare (in) ivec3 arg0)\n"
+ " (declare (in) ivec3 arg1))\n"
+ " ((declare () bvec3 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- " (signature vec4\n"
+ " (signature bvec4\n"
" (parameters\n"
- " (declare (in) samplerCube sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (declare (in) ivec4 arg0)\n"
+ " (declare (in) ivec4 arg1))\n"
+ " ((declare () bvec4 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool > (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature bvec2\n"
" (parameters\n"
- " (declare (in) isamplerCube sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (declare (in) uvec2 arg0)\n"
+ " (declare (in) uvec2 arg1))\n"
+ " ((declare () bvec2 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature bvec3\n"
" (parameters\n"
- " (declare (in) usamplerCube sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (declare (in) uvec3 arg0)\n"
+ " (declare (in) uvec3 arg1))\n"
+ " ((declare () bvec3 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
"\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in) uvec4 arg0)\n"
+ " (declare (in) uvec4 arg1))\n"
+ " ((declare () bvec4 temp)\n"
+ " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
+ " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool > (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
+ " (return (var_ref temp))))\n"
+ "))\n"
+ ""
+;
+static const char *builtin_texture2DLod =
+ "((function texture2DLod\n"
" (signature vec4\n"
" (parameters\n"
- " (declare (in) sampler1DArray sampler)\n"
+ " (declare (in) sampler2D sampler)\n"
" (declare (in) vec2 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (declare (in) float lod) )\n"
+ " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
"\n"
- " (signature ivec4\n"
+ "))\n"
+ ""
+;
+static const char *builtin_dot =
+ "((function dot\n"
+ " (signature float\n"
" (parameters\n"
- " (declare (in) isampler1DArray sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (declare (in) float arg0)\n"
+ " (declare (in) float arg1))\n"
+ " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature uvec4\n"
+ " (signature float\n"
" (parameters\n"
- " (declare (in) usampler1DArray sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (declare (in) vec2 arg0)\n"
+ " (declare (in) vec2 arg1))\n"
+ " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature vec4\n"
+ " (signature float\n"
" (parameters\n"
- " (declare (in) sampler2DArray sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (declare (in) vec3 arg0)\n"
+ " (declare (in) vec3 arg1))\n"
+ " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
"\n"
- " (signature ivec4\n"
+ " (signature float\n"
" (parameters\n"
- " (declare (in) isampler2DArray sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (declare (in) vec4 arg0)\n"
+ " (declare (in) vec4 arg1))\n"
+ " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
+ "))\n"
+ ""
+;
+static const char *prototypes_for_120_vert =
+ "(\n"
+ "(function radians\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float degrees@0x22143e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
- " (signature uvec4\n"
- " (parameters\n"
- " (declare (in) usampler2DArray sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 degrees@0x22147b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
- "))\n"
-};
-
-static const char *builtins_130_fs_textureProj = {
- "((function textureProj\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 degrees@0x22149a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
- " (signature ivec4\n"
- " (parameters\n"
- " (declare (in) isampler1D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 degrees@0x2214b90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
- " (signature uvec4\n"
- " (parameters\n"
- " (declare (in) usampler1D sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
+ ")\n"
"\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) sampler1D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+ "(function degrees\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float radians@0x2214d80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
- " (signature ivec4\n"
- " (parameters\n"
- " (declare (in) isampler1D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 radians@0x2215150)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 radians@0x2215340)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 radians@0x2215530)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function sin\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float angle@0x2215720)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 angle@0x2215ad0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 angle@0x2215cb0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 angle@0x2215e90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function cos\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float angle@0x2216070)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 angle@0x2216420)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 angle@0x2216600)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 angle@0x22167e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function tan\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float angle@0x22169c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 angle@0x2216d70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 angle@0x2216f50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 angle@0x2217130)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function asin\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float angle@0x2217310)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 angle@0x22176c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 angle@0x22178a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 angle@0x2217a80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function acos\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float angle@0x2217c60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 angle@0x2218010)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 angle@0x22181f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 angle@0x22183d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function atan\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float y@0x22185b0)\n"
+ " (declare (in ) float x@0x22186c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 y@0x2218a70)\n"
+ " (declare (in ) vec2 x@0x2218b80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 y@0x2218d60)\n"
+ " (declare (in ) vec3 x@0x2218e70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 y@0x2219050)\n"
+ " (declare (in ) vec4 x@0x2219160)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float y_over_x@0x2219340)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 y_over_x@0x2219530)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 y_over_x@0x2219720)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 y_over_x@0x2219910)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function pow\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x2219b00)\n"
+ " (declare (in ) float y@0x2219c10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x2219fc0)\n"
+ " (declare (in ) vec2 y@0x221a0d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x221a2b0)\n"
+ " (declare (in ) vec3 y@0x221a3c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x221a5a0)\n"
+ " (declare (in ) vec4 y@0x221a6b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function exp\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x221a890)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x221ac40)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x221ae20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x221b000)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function log\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x221b1e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x221b590)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x221b770)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x221b950)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function exp2\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x221bb30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x221bee0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x221c0c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x221c2a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function log2\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x221c480)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x221c830)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x221ca10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x221cbf0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function sqrt\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x221cdd0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x221d180)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x221d360)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x221d540)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function inversesqrt\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x221d720)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x221dae0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x221dcc0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x221dea0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function abs\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x221e080)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x221e430)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x221e610)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x221e7f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function sign\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x221e9d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x221ed80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x221ef60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x221f140)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function floor\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x221f320)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x221f6d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x221f8b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x221fa90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function ceil\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x221fc70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x2220020)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x2220200)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x22203e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function fract\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x22205c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x2220970)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x2220b50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x2220d30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function mod\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x2220f10)\n"
+ " (declare (in ) float y@0x2221020)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x22213d0)\n"
+ " (declare (in ) float y@0x22214e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x22216c0)\n"
+ " (declare (in ) float y@0x22217d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x22219b0)\n"
+ " (declare (in ) float y@0x2221ac0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x2221ca0)\n"
+ " (declare (in ) vec2 y@0x2221db0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x2221f90)\n"
+ " (declare (in ) vec3 y@0x22220a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x2222280)\n"
+ " (declare (in ) vec4 y@0x2222390)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function min\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x2222570)\n"
+ " (declare (in ) float y@0x2222680)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x2222a30)\n"
+ " (declare (in ) vec2 y@0x2222b40)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x2222d20)\n"
+ " (declare (in ) vec3 y@0x2222e30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x2223010)\n"
+ " (declare (in ) vec4 y@0x2223120)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x2223300)\n"
+ " (declare (in ) float y@0x2223410)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x22235f0)\n"
+ " (declare (in ) float y@0x2223700)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x22238e0)\n"
+ " (declare (in ) float y@0x22239f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function max\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x2223bd0)\n"
+ " (declare (in ) float y@0x2223ce0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x2224090)\n"
+ " (declare (in ) vec2 y@0x22241a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x2224380)\n"
+ " (declare (in ) vec3 y@0x2224490)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x2224670)\n"
+ " (declare (in ) vec4 y@0x2224780)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x2224960)\n"
+ " (declare (in ) float y@0x2224a70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x2224c50)\n"
+ " (declare (in ) float y@0x2224d60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x2224f40)\n"
+ " (declare (in ) float y@0x2225050)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function clamp\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x2225230)\n"
+ " (declare (in ) float minVal@0x2225340)\n"
+ " (declare (in ) float maxVal@0x2225450)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x2225800)\n"
+ " (declare (in ) vec2 minVal@0x2225910)\n"
+ " (declare (in ) vec2 maxVal@0x2225a20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x2225c00)\n"
+ " (declare (in ) vec3 minVal@0x2225d10)\n"
+ " (declare (in ) vec3 maxVal@0x2225e20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x2226000)\n"
+ " (declare (in ) vec4 minVal@0x2226110)\n"
+ " (declare (in ) vec4 maxVal@0x2226220)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x2226400)\n"
+ " (declare (in ) float minVal@0x2226510)\n"
+ " (declare (in ) float maxVal@0x2226620)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x2226800)\n"
+ " (declare (in ) float minVal@0x2226910)\n"
+ " (declare (in ) float maxVal@0x2226a20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x2226c00)\n"
+ " (declare (in ) float minVal@0x2226d10)\n"
+ " (declare (in ) float maxVal@0x2226e20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function mix\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x2227000)\n"
+ " (declare (in ) float y@0x2227110)\n"
+ " (declare (in ) float a@0x2227220)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x22275d0)\n"
+ " (declare (in ) vec2 y@0x22276e0)\n"
+ " (declare (in ) vec2 a@0x22277f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x22279d0)\n"
+ " (declare (in ) vec3 y@0x2227ae0)\n"
+ " (declare (in ) vec3 a@0x2227bf0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x2227dd0)\n"
+ " (declare (in ) vec4 y@0x2227ee0)\n"
+ " (declare (in ) vec4 a@0x2227ff0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x22281d0)\n"
+ " (declare (in ) vec2 y@0x22282e0)\n"
+ " (declare (in ) float a@0x22283f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x22285d0)\n"
+ " (declare (in ) vec3 y@0x22286e0)\n"
+ " (declare (in ) float a@0x22287f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x22289d0)\n"
+ " (declare (in ) vec4 y@0x2228ae0)\n"
+ " (declare (in ) float a@0x2228bf0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function step\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float edge@0x2228dd0)\n"
+ " (declare (in ) float x@0x2228ee0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 edge@0x2229290)\n"
+ " (declare (in ) vec2 x@0x22293a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 edge@0x2229580)\n"
+ " (declare (in ) vec3 x@0x2229690)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 edge@0x2229870)\n"
+ " (declare (in ) vec4 x@0x2229980)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) float edge@0x2229b60)\n"
+ " (declare (in ) vec2 x@0x2229c70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) float edge@0x2229e50)\n"
+ " (declare (in ) vec3 x@0x2229f60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) float edge@0x222a140)\n"
+ " (declare (in ) vec4 x@0x222a250)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function smoothstep\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float edge0@0x222a430)\n"
+ " (declare (in ) float edge1@0x222a540)\n"
+ " (declare (in ) float x@0x222a650)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 edge0@0x222aa10)\n"
+ " (declare (in ) vec2 edge1@0x222ab20)\n"
+ " (declare (in ) vec2 x@0x222ac30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 edge0@0x222ae10)\n"
+ " (declare (in ) vec3 edge1@0x222af20)\n"
+ " (declare (in ) vec3 x@0x222b030)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 edge0@0x222b210)\n"
+ " (declare (in ) vec4 edge1@0x222b320)\n"
+ " (declare (in ) vec4 x@0x222b430)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) float edge0@0x222b610)\n"
+ " (declare (in ) float edge1@0x222b720)\n"
+ " (declare (in ) vec2 x@0x222b830)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) float edge0@0x222ba10)\n"
+ " (declare (in ) float edge1@0x222bb20)\n"
+ " (declare (in ) vec3 x@0x222bc30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) float edge0@0x222be10)\n"
+ " (declare (in ) float edge1@0x222bf20)\n"
+ " (declare (in ) vec4 x@0x222c030)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function length\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x222c210)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x222c5c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x222c7a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x222c980)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function distance\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float p0@0x222cb60)\n"
+ " (declare (in ) float p1@0x222cc70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec2 p0@0x222d030)\n"
+ " (declare (in ) vec2 p1@0x222d140)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec3 p0@0x222d320)\n"
+ " (declare (in ) vec3 p1@0x222d430)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec4 p0@0x222d610)\n"
+ " (declare (in ) vec4 p1@0x222d720)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function dot\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x222d900)\n"
+ " (declare (in ) float y@0x222da10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x222ddc0)\n"
+ " (declare (in ) vec2 y@0x222ded0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x222e0b0)\n"
+ " (declare (in ) vec3 y@0x222e1c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x222e3a0)\n"
+ " (declare (in ) vec4 y@0x222e4b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function cross\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x222e690)\n"
+ " (declare (in ) vec3 y@0x222e7a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function normalize\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x222eb50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x222ef10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x222f0f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x222f2d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function ftransform\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function faceforward\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float N@0x222f760)\n"
+ " (declare (in ) float I@0x222f870)\n"
+ " (declare (in ) float Nref@0x222f980)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 N@0x222fd40)\n"
+ " (declare (in ) vec2 I@0x222fe50)\n"
+ " (declare (in ) vec2 Nref@0x222ff60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 N@0x2230140)\n"
+ " (declare (in ) vec3 I@0x2230250)\n"
+ " (declare (in ) vec3 Nref@0x2230360)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 N@0x2230540)\n"
+ " (declare (in ) vec4 I@0x2230650)\n"
+ " (declare (in ) vec4 Nref@0x2230760)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function reflect\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float I@0x2230940)\n"
+ " (declare (in ) float N@0x2230a50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 I@0x2230e10)\n"
+ " (declare (in ) vec2 N@0x2230f20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 I@0x2231100)\n"
+ " (declare (in ) vec3 N@0x2231210)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 I@0x22313f0)\n"
+ " (declare (in ) vec4 N@0x2231500)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function refract\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float I@0x22316e0)\n"
+ " (declare (in ) float N@0x22317f0)\n"
+ " (declare (in ) float eta@0x2231900)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 I@0x2231cc0)\n"
+ " (declare (in ) vec2 N@0x2231dd0)\n"
+ " (declare (in ) float eta@0x2231ee0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 I@0x22320c0)\n"
+ " (declare (in ) vec3 N@0x22321d0)\n"
+ " (declare (in ) float eta@0x22322e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 I@0x22324c0)\n"
+ " (declare (in ) vec4 N@0x22325d0)\n"
+ " (declare (in ) float eta@0x22326e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function matrixCompMult\n"
+ " (signature mat2\n"
+ " (parameters\n"
+ " (declare (in ) mat2 x@0x22328c0)\n"
+ " (declare (in ) mat2 y@0x22329d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat3\n"
+ " (parameters\n"
+ " (declare (in ) mat3 x@0x2232d90)\n"
+ " (declare (in ) mat3 y@0x2232ea0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat4\n"
+ " (parameters\n"
+ " (declare (in ) mat4 x@0x2233080)\n"
+ " (declare (in ) mat4 y@0x2233190)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat2x3\n"
+ " (parameters\n"
+ " (declare (in ) mat2x3 x@0x2233370)\n"
+ " (declare (in ) mat2x3 y@0x2233480)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat2x4\n"
+ " (parameters\n"
+ " (declare (in ) mat2x4 x@0x2233660)\n"
+ " (declare (in ) mat2x4 y@0x2233770)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat3x2\n"
+ " (parameters\n"
+ " (declare (in ) mat3x2 x@0x2233950)\n"
+ " (declare (in ) mat3x2 y@0x2233a60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat3x4\n"
+ " (parameters\n"
+ " (declare (in ) mat3x4 x@0x2233c40)\n"
+ " (declare (in ) mat3x4 y@0x2233d50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat4x2\n"
+ " (parameters\n"
+ " (declare (in ) mat4x2 x@0x2233f30)\n"
+ " (declare (in ) mat4x2 y@0x2234040)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat4x3\n"
+ " (parameters\n"
+ " (declare (in ) mat4x3 x@0x2234220)\n"
+ " (declare (in ) mat4x3 y@0x2234330)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function outerProduct\n"
+ " (signature mat2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 c@0x2234510)\n"
+ " (declare (in ) vec2 r@0x2234620)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 c@0x22349e0)\n"
+ " (declare (in ) vec3 r@0x2234af0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 c@0x2234cd0)\n"
+ " (declare (in ) vec4 r@0x2234de0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat2x3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 c@0x2234fc0)\n"
+ " (declare (in ) vec2 r@0x22350d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat3x2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 c@0x22352b0)\n"
+ " (declare (in ) vec3 r@0x22353c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat2x4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 c@0x22355a0)\n"
+ " (declare (in ) vec2 r@0x22356b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat4x2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 c@0x2235890)\n"
+ " (declare (in ) vec4 r@0x22359a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat3x4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 c@0x2235b80)\n"
+ " (declare (in ) vec3 r@0x2235c90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat4x3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 c@0x2235e70)\n"
+ " (declare (in ) vec4 r@0x2235f80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function transpose\n"
+ " (signature mat2\n"
+ " (parameters\n"
+ " (declare (in ) mat2 m@0x2236160)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat3\n"
+ " (parameters\n"
+ " (declare (in ) mat3 m@0x2236520)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat4\n"
+ " (parameters\n"
+ " (declare (in ) mat4 m@0x2236700)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat2x3\n"
+ " (parameters\n"
+ " (declare (in ) mat3x2 m@0x22368e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat3x2\n"
+ " (parameters\n"
+ " (declare (in ) mat2x3 m@0x2236ac0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat2x4\n"
+ " (parameters\n"
+ " (declare (in ) mat4x2 m@0x2236ca0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat4x2\n"
+ " (parameters\n"
+ " (declare (in ) mat2x4 m@0x2236e80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat3x4\n"
+ " (parameters\n"
+ " (declare (in ) mat4x3 m@0x2237060)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat4x3\n"
+ " (parameters\n"
+ " (declare (in ) mat3x4 m@0x2237240)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function lessThan\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x2237420)\n"
+ " (declare (in ) vec2 y@0x2237530)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x22378f0)\n"
+ " (declare (in ) vec3 y@0x2237a00)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x2237be0)\n"
+ " (declare (in ) vec4 y@0x2237cf0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0x2237ed0)\n"
+ " (declare (in ) ivec2 y@0x2237fe0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0x22381c0)\n"
+ " (declare (in ) ivec3 y@0x22382d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0x22384b0)\n"
+ " (declare (in ) ivec4 y@0x22385c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function lessThanEqual\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x22387a0)\n"
+ " (declare (in ) vec2 y@0x22388b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x2238c70)\n"
+ " (declare (in ) vec3 y@0x2238d80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x2238f60)\n"
+ " (declare (in ) vec4 y@0x2239070)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0x2239250)\n"
+ " (declare (in ) ivec2 y@0x2239360)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0x2239540)\n"
+ " (declare (in ) ivec3 y@0x2239650)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0x2239830)\n"
+ " (declare (in ) ivec4 y@0x2239940)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function greaterThan\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x2239b20)\n"
+ " (declare (in ) vec2 y@0x2239c30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x2239ff0)\n"
+ " (declare (in ) vec3 y@0x223a100)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x223a2e0)\n"
+ " (declare (in ) vec4 y@0x223a3f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0x223a5d0)\n"
+ " (declare (in ) ivec2 y@0x223a6e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0x223a8c0)\n"
+ " (declare (in ) ivec3 y@0x223a9d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0x223abb0)\n"
+ " (declare (in ) ivec4 y@0x223acc0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function greaterThanEqual\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x223aea0)\n"
+ " (declare (in ) vec2 y@0x223afb0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x223b370)\n"
+ " (declare (in ) vec3 y@0x223b480)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x223b660)\n"
+ " (declare (in ) vec4 y@0x223b770)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0x223b950)\n"
+ " (declare (in ) ivec2 y@0x223ba60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0x223bc40)\n"
+ " (declare (in ) ivec3 y@0x223bd50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0x223bf30)\n"
+ " (declare (in ) ivec4 y@0x223c040)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function equal\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x223c220)\n"
+ " (declare (in ) vec2 y@0x223c330)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x223c6e0)\n"
+ " (declare (in ) vec3 y@0x223c7f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x223c9d0)\n"
+ " (declare (in ) vec4 y@0x223cae0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0x223ccc0)\n"
+ " (declare (in ) ivec2 y@0x223cdd0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0x223cfb0)\n"
+ " (declare (in ) ivec3 y@0x223d0c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0x223d2a0)\n"
+ " (declare (in ) ivec4 y@0x223d3b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) bvec2 x@0x223d590)\n"
+ " (declare (in ) bvec2 y@0x223d6a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) bvec3 x@0x223d880)\n"
+ " (declare (in ) bvec3 y@0x223d990)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) bvec4 x@0x223db70)\n"
+ " (declare (in ) bvec4 y@0x223dc80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function notEqual\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x223de60)\n"
+ " (declare (in ) vec2 y@0x223df70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x223e330)\n"
+ " (declare (in ) vec3 y@0x223e440)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x223e620)\n"
+ " (declare (in ) vec4 y@0x223e730)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0x223e910)\n"
+ " (declare (in ) ivec2 y@0x223ea20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0x223ec00)\n"
+ " (declare (in ) ivec3 y@0x223ed10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0x223eef0)\n"
+ " (declare (in ) ivec4 y@0x223f000)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) bvec2 x@0x223f1e0)\n"
+ " (declare (in ) bvec2 y@0x223f2f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) bvec3 x@0x223f4d0)\n"
+ " (declare (in ) bvec3 y@0x223f5e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) bvec4 x@0x223f7c0)\n"
+ " (declare (in ) bvec4 y@0x223f8d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function any\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec2 x@0x223fab0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec3 x@0x223fe60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec4 x@0x2240040)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function all\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec2 x@0x2240220)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec3 x@0x22405d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec4 x@0x22407b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function not\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) bvec2 x@0x2240990)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) bvec3 x@0x2240d40)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) bvec4 x@0x2240f20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture1D\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0x2241100)\n"
+ " (declare (in ) float coord@0x2241220)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture1DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0x22415e0)\n"
+ " (declare (in ) vec2 coord@0x2241700)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0x2241ac0)\n"
+ " (declare (in ) vec4 coord@0x2241be0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture1DLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0x2241dc0)\n"
+ " (declare (in ) float coord@0x2241ee0)\n"
+ " (declare (in ) float lod@0x2241ff0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture1DProjLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0x22423b0)\n"
+ " (declare (in ) vec2 coord@0x22424d0)\n"
+ " (declare (in ) float lod@0x22425e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0x22429a0)\n"
+ " (declare (in ) vec4 coord@0x2242ac0)\n"
+ " (declare (in ) float lod@0x2242bd0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture2D\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0x2242db0)\n"
+ " (declare (in ) vec2 coord@0x2242ed0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture2DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0x2243290)\n"
+ " (declare (in ) vec3 coord@0x22433b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0x2243770)\n"
+ " (declare (in ) vec4 coord@0x2243890)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture2DLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0x2243a70)\n"
+ " (declare (in ) vec2 coord@0x2243b90)\n"
+ " (declare (in ) float lod@0x2243ca0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture2DProjLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0x2244060)\n"
+ " (declare (in ) vec3 coord@0x2244180)\n"
+ " (declare (in ) float lod@0x2244290)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0x2244650)\n"
+ " (declare (in ) vec4 coord@0x2244770)\n"
+ " (declare (in ) float lod@0x2244880)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture3D\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler3D sampler@0x2244a60)\n"
+ " (declare (in ) vec3 coord@0x2244b80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture3DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler3D sampler@0x2244f40)\n"
+ " (declare (in ) vec4 coord@0x2245060)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture3DLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler3D sampler@0x2245420)\n"
+ " (declare (in ) vec3 coord@0x2245540)\n"
+ " (declare (in ) float lod@0x2245650)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture3DProjLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler3D sampler@0x2245a10)\n"
+ " (declare (in ) vec4 coord@0x2245b30)\n"
+ " (declare (in ) float lod@0x2245c40)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function textureCube\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) samplerCube sampler@0x2246000)\n"
+ " (declare (in ) vec3 coord@0x2246120)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function textureCubeLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) samplerCube sampler@0x22464e0)\n"
+ " (declare (in ) vec3 coord@0x2246600)\n"
+ " (declare (in ) float lod@0x2246710)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow1D\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DShadow sampler@0x2246ad0)\n"
+ " (declare (in ) vec3 coord@0x2246bf0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow2D\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DShadow sampler@0x2246fb0)\n"
+ " (declare (in ) vec3 coord@0x22470d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow1DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DShadow sampler@0x2247490)\n"
+ " (declare (in ) vec4 coord@0x22475b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow2DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DShadow sampler@0x2247970)\n"
+ " (declare (in ) vec4 coord@0x2247a90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow1DLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DShadow sampler@0x2247e50)\n"
+ " (declare (in ) vec3 coord@0x2247f70)\n"
+ " (declare (in ) float lod@0x2248080)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow2DLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DShadow sampler@0x2248440)\n"
+ " (declare (in ) vec3 coord@0x2248560)\n"
+ " (declare (in ) float lod@0x2248670)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow1DProjLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DShadow sampler@0x2248a30)\n"
+ " (declare (in ) vec4 coord@0x2248b50)\n"
+ " (declare (in ) float lod@0x2248c60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow2DProjLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DShadow sampler@0x2249020)\n"
+ " (declare (in ) vec4 coord@0x2249140)\n"
+ " (declare (in ) float lod@0x2249250)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function noise1\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x2249610)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x22499c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x2249ba0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x2249d80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function noise2\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x2249f60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x224a310)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x224a4f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x224a6d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function noise3\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x224a8b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x224ac60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x224ae40)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x224b020)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function noise4\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x224b200)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x224b5b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x224b790)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x224b970)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "\n"
+ ")"
+;
+static const char *functions_for_120_vert [] = {
+ builtin_clamp,
+ builtin_matrixCompMult,
+ builtin_shadow2DProjLod,
+ builtin_noise2,
+ builtin_texture3DProjLod,
+ builtin_pow,
+ builtin_texture2DProj,
+ builtin_greaterThanEqual,
+ builtin_sign,
+ builtin_texture3DProj,
+ builtin_texture2D,
+ builtin_equal,
+ builtin_faceforward,
+ builtin_tan,
+ builtin_shadow2DProj,
+ builtin_shadow1DProjLod,
+ builtin_any,
+ builtin_shadow1DProj,
+ builtin_normalize,
+ builtin_asin,
+ builtin_texture1DProj,
+ builtin_log,
+ builtin_floor,
+ builtin_exp2,
+ builtin_lessThan,
+ builtin_cross,
+ builtin_sqrt,
+ builtin_texture3DLod,
+ builtin_fract,
+ builtin_abs,
+ builtin_degrees,
+ builtin_shadow1DLod,
+ builtin_ftransform,
+ builtin_sin,
+ builtin_shadow2D,
+ builtin_shadow2DLod,
+ builtin_all,
+ builtin_log2,
+ builtin_atan,
+ builtin_notEqual,
+ builtin_max,
+ builtin_lessThanEqual,
+ builtin_transpose,
+ builtin_outerProduct,
+ builtin_ceil,
+ builtin_reflect,
+ builtin_textureCubeLod,
+ builtin_step,
+ builtin_texture1D,
+ builtin_greaterThan,
+ builtin_texture3D,
+ builtin_not,
+ builtin_texture2DProjLod,
+ builtin_inversesqrt,
+ builtin_mod,
+ builtin_noise4,
+ builtin_distance,
+ builtin_cos,
+ builtin_shadow1D,
+ builtin_noise1,
+ builtin_refract,
+ builtin_noise3,
+ builtin_texture2DLod,
+ builtin_min,
+ builtin_radians,
+ builtin_smoothstep,
+ builtin_texture1DProjLod,
+ builtin_textureCube,
+ builtin_length,
+ builtin_texture1DLod,
+ builtin_exp,
+ builtin_acos,
+ builtin_mix,
+ builtin_dot,
+};
+static const char *prototypes_for_EXT_texture_array_frag =
+ "(\n"
+ "(function texture1DArray\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DArray sampler@0xb9bd60)\n"
+ " (declare (in ) vec2 coord@0xb9be80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DArray sampler@0xb9c240)\n"
+ " (declare (in ) vec2 coord@0xb9c360)\n"
+ " (declare (in ) float bias@0xb9c470)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture2DArray\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DArray sampler@0xb9c650)\n"
+ " (declare (in ) vec2 coord@0xb9c770)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DArray sampler@0xb9cb30)\n"
+ " (declare (in ) vec2 coord@0xb9cc50)\n"
+ " (declare (in ) float bias@0xb9cd60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow1DArray\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DArrayShadow sampler@0xb9cf40)\n"
+ " (declare (in ) vec3 coord@0xb9d060)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DArrayShadow sampler@0xb9d420)\n"
+ " (declare (in ) vec3 coord@0xb9d540)\n"
+ " (declare (in ) float bias@0xb9d650)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow2DArray\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DArrayShadow sampler@0xb9d830)\n"
+ " (declare (in ) vec4 coord@0xb9d950)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "\n"
+ ")"
+;
+static const char *functions_for_EXT_texture_array_frag [] = {
+ builtin_shadow2DArray,
+ builtin_shadow1DArray,
+ builtin_texture1DArray,
+ builtin_texture2DArray,
+};
+static const char *prototypes_for_110_vert =
+ "(\n"
+ "(function radians\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float degrees@0x9e3c50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 degrees@0x9e4020)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 degrees@0x9e4210)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 degrees@0x9e4400)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function degrees\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float radians@0x9e45f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 radians@0x9e49c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 radians@0x9e4bb0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 radians@0x9e4da0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function sin\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float angle@0x9e4f90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 angle@0x9e5340)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 angle@0x9e5520)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 angle@0x9e5700)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function cos\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float angle@0x9e58e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 angle@0x9e5c90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 angle@0x9e5e70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 angle@0x9e6050)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function tan\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float angle@0x9e6230)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 angle@0x9e65e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 angle@0x9e67c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 angle@0x9e69a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function asin\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float angle@0x9e6b80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 angle@0x9e6f30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 angle@0x9e7110)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 angle@0x9e72f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function acos\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float angle@0x9e74d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 angle@0x9e7880)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 angle@0x9e7a60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 angle@0x9e7c40)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function atan\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float y@0x9e7e20)\n"
+ " (declare (in ) float x@0x9e7f30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 y@0x9e82e0)\n"
+ " (declare (in ) vec2 x@0x9e83f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 y@0x9e85d0)\n"
+ " (declare (in ) vec3 x@0x9e86e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 y@0x9e88c0)\n"
+ " (declare (in ) vec4 x@0x9e89d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float y_over_x@0x9e8bb0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 y_over_x@0x9e8da0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 y_over_x@0x9e8f90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 y_over_x@0x9e9180)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function pow\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x9e9370)\n"
+ " (declare (in ) float y@0x9e9480)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9e9830)\n"
+ " (declare (in ) vec2 y@0x9e9940)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9e9b20)\n"
+ " (declare (in ) vec3 y@0x9e9c30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9e9e10)\n"
+ " (declare (in ) vec4 y@0x9e9f20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function exp\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x9ea100)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9ea4b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9ea690)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9ea870)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function log\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x9eaa50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9eae00)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9eafe0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9eb1c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function exp2\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x9eb3a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9eb750)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9eb930)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9ebb10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function log2\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x9ebcf0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9ec0a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9ec280)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9ec460)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function sqrt\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x9ec640)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9ec9f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9ecbd0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9ecdb0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function inversesqrt\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x9ecf90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9ed350)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9ed530)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9ed710)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function abs\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x9ed8f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9edca0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9ede80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9ee060)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function sign\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x9ee240)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9ee5f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9ee7d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9ee9b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function floor\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x9eeb90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9eef40)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9ef120)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9ef300)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function ceil\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x9ef4e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9ef890)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9efa70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9efc50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function fract\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x9efe30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9f01e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9f03c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9f05a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function mod\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x9f0780)\n"
+ " (declare (in ) float y@0x9f0890)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9f0c40)\n"
+ " (declare (in ) float y@0x9f0d50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9f0f30)\n"
+ " (declare (in ) float y@0x9f1040)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9f1220)\n"
+ " (declare (in ) float y@0x9f1330)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9f1510)\n"
+ " (declare (in ) vec2 y@0x9f1620)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9f1800)\n"
+ " (declare (in ) vec3 y@0x9f1910)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9f1af0)\n"
+ " (declare (in ) vec4 y@0x9f1c00)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function min\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x9f1de0)\n"
+ " (declare (in ) float y@0x9f1ef0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9f22a0)\n"
+ " (declare (in ) vec2 y@0x9f23b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9f2590)\n"
+ " (declare (in ) vec3 y@0x9f26a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9f2880)\n"
+ " (declare (in ) vec4 y@0x9f2990)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9f2b70)\n"
+ " (declare (in ) float y@0x9f2c80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9f2e60)\n"
+ " (declare (in ) float y@0x9f2f70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9f3150)\n"
+ " (declare (in ) float y@0x9f3260)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function max\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x9f3440)\n"
+ " (declare (in ) float y@0x9f3550)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9f3900)\n"
+ " (declare (in ) vec2 y@0x9f3a10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9f3bf0)\n"
+ " (declare (in ) vec3 y@0x9f3d00)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9f3ee0)\n"
+ " (declare (in ) vec4 y@0x9f3ff0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9f41d0)\n"
+ " (declare (in ) float y@0x9f42e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9f44c0)\n"
+ " (declare (in ) float y@0x9f45d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9f47b0)\n"
+ " (declare (in ) float y@0x9f48c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function clamp\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x9f4aa0)\n"
+ " (declare (in ) float minVal@0x9f4bb0)\n"
+ " (declare (in ) float maxVal@0x9f4cc0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9f5070)\n"
+ " (declare (in ) vec2 minVal@0x9f5180)\n"
+ " (declare (in ) vec2 maxVal@0x9f5290)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9f5470)\n"
+ " (declare (in ) vec3 minVal@0x9f5580)\n"
+ " (declare (in ) vec3 maxVal@0x9f5690)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9f5870)\n"
+ " (declare (in ) vec4 minVal@0x9f5980)\n"
+ " (declare (in ) vec4 maxVal@0x9f5a90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9f5c70)\n"
+ " (declare (in ) float minVal@0x9f5d80)\n"
+ " (declare (in ) float maxVal@0x9f5e90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9f6070)\n"
+ " (declare (in ) float minVal@0x9f6180)\n"
+ " (declare (in ) float maxVal@0x9f6290)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9f6470)\n"
+ " (declare (in ) float minVal@0x9f6580)\n"
+ " (declare (in ) float maxVal@0x9f6690)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function mix\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x9f6870)\n"
+ " (declare (in ) float y@0x9f6980)\n"
+ " (declare (in ) float a@0x9f6a90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9f6e40)\n"
+ " (declare (in ) vec2 y@0x9f6f50)\n"
+ " (declare (in ) vec2 a@0x9f7060)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9f7240)\n"
+ " (declare (in ) vec3 y@0x9f7350)\n"
+ " (declare (in ) vec3 a@0x9f7460)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9f7640)\n"
+ " (declare (in ) vec4 y@0x9f7750)\n"
+ " (declare (in ) vec4 a@0x9f7860)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9f7a40)\n"
+ " (declare (in ) vec2 y@0x9f7b50)\n"
+ " (declare (in ) float a@0x9f7c60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9f7e40)\n"
+ " (declare (in ) vec3 y@0x9f7f50)\n"
+ " (declare (in ) float a@0x9f8060)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9f8240)\n"
+ " (declare (in ) vec4 y@0x9f8350)\n"
+ " (declare (in ) float a@0x9f8460)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function step\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float edge@0x9f8640)\n"
+ " (declare (in ) float x@0x9f8750)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 edge@0x9f8b00)\n"
+ " (declare (in ) vec2 x@0x9f8c10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 edge@0x9f8df0)\n"
+ " (declare (in ) vec3 x@0x9f8f00)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 edge@0x9f90e0)\n"
+ " (declare (in ) vec4 x@0x9f91f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) float edge@0x9f93d0)\n"
+ " (declare (in ) vec2 x@0x9f94e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) float edge@0x9f96c0)\n"
+ " (declare (in ) vec3 x@0x9f97d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) float edge@0x9f99b0)\n"
+ " (declare (in ) vec4 x@0x9f9ac0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function smoothstep\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float edge0@0x9f9ca0)\n"
+ " (declare (in ) float edge1@0x9f9db0)\n"
+ " (declare (in ) float x@0x9f9ec0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 edge0@0x9fa280)\n"
+ " (declare (in ) vec2 edge1@0x9fa390)\n"
+ " (declare (in ) vec2 x@0x9fa4a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 edge0@0x9fa680)\n"
+ " (declare (in ) vec3 edge1@0x9fa790)\n"
+ " (declare (in ) vec3 x@0x9fa8a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 edge0@0x9faa80)\n"
+ " (declare (in ) vec4 edge1@0x9fab90)\n"
+ " (declare (in ) vec4 x@0x9faca0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) float edge0@0x9fae80)\n"
+ " (declare (in ) float edge1@0x9faf90)\n"
+ " (declare (in ) vec2 x@0x9fb0a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) float edge0@0x9fb280)\n"
+ " (declare (in ) float edge1@0x9fb390)\n"
+ " (declare (in ) vec3 x@0x9fb4a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) float edge0@0x9fb680)\n"
+ " (declare (in ) float edge1@0x9fb790)\n"
+ " (declare (in ) vec4 x@0x9fb8a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function length\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x9fba80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9fbe30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9fc010)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9fc1f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function distance\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float p0@0x9fc3d0)\n"
+ " (declare (in ) float p1@0x9fc4e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec2 p0@0x9fc8a0)\n"
+ " (declare (in ) vec2 p1@0x9fc9b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec3 p0@0x9fcb90)\n"
+ " (declare (in ) vec3 p1@0x9fcca0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec4 p0@0x9fce80)\n"
+ " (declare (in ) vec4 p1@0x9fcf90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function dot\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x9fd170)\n"
+ " (declare (in ) float y@0x9fd280)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9fd630)\n"
+ " (declare (in ) vec2 y@0x9fd740)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9fd920)\n"
+ " (declare (in ) vec3 y@0x9fda30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9fdc10)\n"
+ " (declare (in ) vec4 y@0x9fdd20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function cross\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9fdf00)\n"
+ " (declare (in ) vec3 y@0x9fe010)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function normalize\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x9fe3c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x9fe780)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x9fe960)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x9feb40)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function ftransform\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function faceforward\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float N@0x9fefd0)\n"
+ " (declare (in ) float I@0x9ff0e0)\n"
+ " (declare (in ) float Nref@0x9ff1f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 N@0x9ff5b0)\n"
+ " (declare (in ) vec2 I@0x9ff6c0)\n"
+ " (declare (in ) vec2 Nref@0x9ff7d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 N@0x9ff9b0)\n"
+ " (declare (in ) vec3 I@0x9ffac0)\n"
+ " (declare (in ) vec3 Nref@0x9ffbd0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 N@0x9ffdb0)\n"
+ " (declare (in ) vec4 I@0x9ffec0)\n"
+ " (declare (in ) vec4 Nref@0x9fffd0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function reflect\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float I@0xa001b0)\n"
+ " (declare (in ) float N@0xa002c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 I@0xa00680)\n"
+ " (declare (in ) vec2 N@0xa00790)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 I@0xa00970)\n"
+ " (declare (in ) vec3 N@0xa00a80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 I@0xa00c60)\n"
+ " (declare (in ) vec4 N@0xa00d70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function refract\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float I@0xa00f50)\n"
+ " (declare (in ) float N@0xa01060)\n"
+ " (declare (in ) float eta@0xa01170)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 I@0xa01530)\n"
+ " (declare (in ) vec2 N@0xa01640)\n"
+ " (declare (in ) float eta@0xa01750)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 I@0xa01930)\n"
+ " (declare (in ) vec3 N@0xa01a40)\n"
+ " (declare (in ) float eta@0xa01b50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 I@0xa01d30)\n"
+ " (declare (in ) vec4 N@0xa01e40)\n"
+ " (declare (in ) float eta@0xa01f50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function matrixCompMult\n"
+ " (signature mat2\n"
+ " (parameters\n"
+ " (declare (in ) mat2 x@0xa02130)\n"
+ " (declare (in ) mat2 y@0xa02240)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat3\n"
+ " (parameters\n"
+ " (declare (in ) mat3 x@0xa02600)\n"
+ " (declare (in ) mat3 y@0xa02710)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat4\n"
+ " (parameters\n"
+ " (declare (in ) mat4 x@0xa028f0)\n"
+ " (declare (in ) mat4 y@0xa02a00)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function lessThan\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0xa02be0)\n"
+ " (declare (in ) vec2 y@0xa02cf0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0xa030b0)\n"
+ " (declare (in ) vec3 y@0xa031c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0xa033a0)\n"
+ " (declare (in ) vec4 y@0xa034b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0xa03690)\n"
+ " (declare (in ) ivec2 y@0xa037a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0xa03980)\n"
+ " (declare (in ) ivec3 y@0xa03a90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0xa03c70)\n"
+ " (declare (in ) ivec4 y@0xa03d80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function lessThanEqual\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0xa03f60)\n"
+ " (declare (in ) vec2 y@0xa04070)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0xa04430)\n"
+ " (declare (in ) vec3 y@0xa04540)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0xa04720)\n"
+ " (declare (in ) vec4 y@0xa04830)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0xa04a10)\n"
+ " (declare (in ) ivec2 y@0xa04b20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0xa04d00)\n"
+ " (declare (in ) ivec3 y@0xa04e10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0xa04ff0)\n"
+ " (declare (in ) ivec4 y@0xa05100)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function greaterThan\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0xa052e0)\n"
+ " (declare (in ) vec2 y@0xa053f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0xa057b0)\n"
+ " (declare (in ) vec3 y@0xa058c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0xa05aa0)\n"
+ " (declare (in ) vec4 y@0xa05bb0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0xa05d90)\n"
+ " (declare (in ) ivec2 y@0xa05ea0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0xa06080)\n"
+ " (declare (in ) ivec3 y@0xa06190)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0xa06370)\n"
+ " (declare (in ) ivec4 y@0xa06480)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function greaterThanEqual\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0xa06660)\n"
+ " (declare (in ) vec2 y@0xa06770)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0xa06b30)\n"
+ " (declare (in ) vec3 y@0xa06c40)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0xa06e20)\n"
+ " (declare (in ) vec4 y@0xa06f30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0xa07110)\n"
+ " (declare (in ) ivec2 y@0xa07220)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0xa07400)\n"
+ " (declare (in ) ivec3 y@0xa07510)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0xa076f0)\n"
+ " (declare (in ) ivec4 y@0xa07800)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function equal\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0xa079e0)\n"
+ " (declare (in ) vec2 y@0xa07af0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0xa07ea0)\n"
+ " (declare (in ) vec3 y@0xa07fb0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0xa08190)\n"
+ " (declare (in ) vec4 y@0xa082a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0xa08480)\n"
+ " (declare (in ) ivec2 y@0xa08590)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0xa08770)\n"
+ " (declare (in ) ivec3 y@0xa08880)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0xa08a60)\n"
+ " (declare (in ) ivec4 y@0xa08b70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) bvec2 x@0xa08d50)\n"
+ " (declare (in ) bvec2 y@0xa08e60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) bvec3 x@0xa09040)\n"
+ " (declare (in ) bvec3 y@0xa09150)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) bvec4 x@0xa09330)\n"
+ " (declare (in ) bvec4 y@0xa09440)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function notEqual\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0xa09620)\n"
+ " (declare (in ) vec2 y@0xa09730)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0xa09af0)\n"
+ " (declare (in ) vec3 y@0xa09c00)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0xa09de0)\n"
+ " (declare (in ) vec4 y@0xa09ef0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0xa0a0d0)\n"
+ " (declare (in ) ivec2 y@0xa0a1e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0xa0a3c0)\n"
+ " (declare (in ) ivec3 y@0xa0a4d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0xa0a6b0)\n"
+ " (declare (in ) ivec4 y@0xa0a7c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) bvec2 x@0xa0a9a0)\n"
+ " (declare (in ) bvec2 y@0xa0aab0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) bvec3 x@0xa0ac90)\n"
+ " (declare (in ) bvec3 y@0xa0ada0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) bvec4 x@0xa0af80)\n"
+ " (declare (in ) bvec4 y@0xa0b090)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function any\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec2 x@0xa0b270)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec3 x@0xa0b620)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec4 x@0xa0b800)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function all\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec2 x@0xa0b9e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec3 x@0xa0bd90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec4 x@0xa0bf70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function not\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) bvec2 x@0xa0c150)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) bvec3 x@0xa0c500)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) bvec4 x@0xa0c6e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture1D\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0xa0c8c0)\n"
+ " (declare (in ) float coord@0xa0c9e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture1DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0xa0cda0)\n"
+ " (declare (in ) vec2 coord@0xa0cec0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0xa0d280)\n"
+ " (declare (in ) vec4 coord@0xa0d3a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture1DLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0xa0d580)\n"
+ " (declare (in ) float coord@0xa0d6a0)\n"
+ " (declare (in ) float lod@0xa0d7b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture1DProjLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0xa0db70)\n"
+ " (declare (in ) vec2 coord@0xa0dc90)\n"
+ " (declare (in ) float lod@0xa0dda0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0xa0e160)\n"
+ " (declare (in ) vec4 coord@0xa0e280)\n"
+ " (declare (in ) float lod@0xa0e390)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture2D\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0xa0e570)\n"
+ " (declare (in ) vec2 coord@0xa0e690)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture2DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0xa0ea50)\n"
+ " (declare (in ) vec3 coord@0xa0eb70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0xa0ef30)\n"
+ " (declare (in ) vec4 coord@0xa0f050)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture2DLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0xa0f230)\n"
+ " (declare (in ) vec2 coord@0xa0f350)\n"
+ " (declare (in ) float lod@0xa0f460)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture2DProjLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0xa0f820)\n"
+ " (declare (in ) vec3 coord@0xa0f940)\n"
+ " (declare (in ) float lod@0xa0fa50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0xa0fe10)\n"
+ " (declare (in ) vec4 coord@0xa0ff30)\n"
+ " (declare (in ) float lod@0xa10040)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture3D\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler3D sampler@0xa10220)\n"
+ " (declare (in ) vec3 coord@0xa10340)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture3DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler3D sampler@0xa10700)\n"
+ " (declare (in ) vec4 coord@0xa10820)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture3DLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler3D sampler@0xa10be0)\n"
+ " (declare (in ) vec3 coord@0xa10d00)\n"
+ " (declare (in ) float lod@0xa10e10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture3DProjLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler3D sampler@0xa111d0)\n"
+ " (declare (in ) vec4 coord@0xa112f0)\n"
+ " (declare (in ) float lod@0xa11400)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function textureCube\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) samplerCube sampler@0xa117c0)\n"
+ " (declare (in ) vec3 coord@0xa118e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function textureCubeLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) samplerCube sampler@0xa11ca0)\n"
+ " (declare (in ) vec3 coord@0xa11dc0)\n"
+ " (declare (in ) float lod@0xa11ed0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow1D\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DShadow sampler@0xa12290)\n"
+ " (declare (in ) vec3 coord@0xa123b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow2D\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DShadow sampler@0xa12770)\n"
+ " (declare (in ) vec3 coord@0xa12890)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow1DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DShadow sampler@0xa12c50)\n"
+ " (declare (in ) vec4 coord@0xa12d70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow2DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DShadow sampler@0xa13130)\n"
+ " (declare (in ) vec4 coord@0xa13250)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow1DLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DShadow sampler@0xa13610)\n"
+ " (declare (in ) vec3 coord@0xa13730)\n"
+ " (declare (in ) float lod@0xa13840)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow2DLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DShadow sampler@0xa13c00)\n"
+ " (declare (in ) vec3 coord@0xa13d20)\n"
+ " (declare (in ) float lod@0xa13e30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow1DProjLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DShadow sampler@0xa141f0)\n"
+ " (declare (in ) vec4 coord@0xa14310)\n"
+ " (declare (in ) float lod@0xa14420)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow2DProjLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DShadow sampler@0xa147e0)\n"
+ " (declare (in ) vec4 coord@0xa14900)\n"
+ " (declare (in ) float lod@0xa14a10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function noise1\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0xa14dd0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0xa15180)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0xa15360)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0xa15540)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function noise2\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) float x@0xa15720)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0xa15ad0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0xa15cb0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0xa15e90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function noise3\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) float x@0xa16070)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0xa16420)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0xa16600)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0xa167e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function noise4\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) float x@0xa169c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0xa16d70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0xa16f50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0xa17130)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "\n"
+ ")"
+;
+static const char *functions_for_110_vert [] = {
+ builtin_clamp,
+ builtin_matrixCompMult,
+ builtin_shadow2DProjLod,
+ builtin_noise2,
+ builtin_texture3DProjLod,
+ builtin_pow,
+ builtin_texture2DProj,
+ builtin_greaterThanEqual,
+ builtin_sign,
+ builtin_texture3DProj,
+ builtin_texture2D,
+ builtin_equal,
+ builtin_faceforward,
+ builtin_tan,
+ builtin_shadow2DProj,
+ builtin_shadow1DProjLod,
+ builtin_any,
+ builtin_normalize,
+ builtin_asin,
+ builtin_texture1DProj,
+ builtin_log,
+ builtin_floor,
+ builtin_exp2,
+ builtin_lessThan,
+ builtin_cross,
+ builtin_sqrt,
+ builtin_texture3DLod,
+ builtin_fract,
+ builtin_abs,
+ builtin_degrees,
+ builtin_shadow1DLod,
+ builtin_ftransform,
+ builtin_sin,
+ builtin_shadow2D,
+ builtin_shadow2DLod,
+ builtin_all,
+ builtin_log2,
+ builtin_atan,
+ builtin_notEqual,
+ builtin_max,
+ builtin_lessThanEqual,
+ builtin_shadow1DProj,
+ builtin_ceil,
+ builtin_reflect,
+ builtin_textureCubeLod,
+ builtin_step,
+ builtin_texture1D,
+ builtin_greaterThan,
+ builtin_texture3D,
+ builtin_not,
+ builtin_texture2DProjLod,
+ builtin_inversesqrt,
+ builtin_mod,
+ builtin_noise4,
+ builtin_distance,
+ builtin_cos,
+ builtin_shadow1D,
+ builtin_noise1,
+ builtin_refract,
+ builtin_noise3,
+ builtin_texture2DLod,
+ builtin_min,
+ builtin_radians,
+ builtin_smoothstep,
+ builtin_texture1DProjLod,
+ builtin_textureCube,
+ builtin_length,
+ builtin_texture1DLod,
+ builtin_exp,
+ builtin_acos,
+ builtin_mix,
+ builtin_dot,
+};
+static const char *prototypes_for_110_frag =
+ "(\n"
+ "(function radians\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float degrees@0x151ee40)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 degrees@0x151f210)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 degrees@0x151f400)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 degrees@0x151f5f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function degrees\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float radians@0x151f7e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 radians@0x151fbb0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 radians@0x151fda0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 radians@0x151ff90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function sin\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float angle@0x1520180)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 angle@0x1520530)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 angle@0x1520710)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 angle@0x15208f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function cos\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float angle@0x1520ad0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 angle@0x1520e80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 angle@0x1521060)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 angle@0x1521240)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function tan\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float angle@0x1521420)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 angle@0x15217d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 angle@0x15219b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 angle@0x1521b90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function asin\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float angle@0x1521d70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 angle@0x1522120)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 angle@0x1522300)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 angle@0x15224e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function acos\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float angle@0x15226c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 angle@0x1522a70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 angle@0x1522c50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 angle@0x1522e30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function atan\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float y@0x1523010)\n"
+ " (declare (in ) float x@0x1523120)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 y@0x15234d0)\n"
+ " (declare (in ) vec2 x@0x15235e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 y@0x15237c0)\n"
+ " (declare (in ) vec3 x@0x15238d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 y@0x1523ab0)\n"
+ " (declare (in ) vec4 x@0x1523bc0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float y_over_x@0x1523da0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 y_over_x@0x1523f90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 y_over_x@0x1524180)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 y_over_x@0x1524370)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function pow\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x1524560)\n"
+ " (declare (in ) float y@0x1524670)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x1524a20)\n"
+ " (declare (in ) vec2 y@0x1524b30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x1524d10)\n"
+ " (declare (in ) vec3 y@0x1524e20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x1525000)\n"
+ " (declare (in ) vec4 y@0x1525110)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function exp\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x15252f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x15256a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x1525880)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x1525a60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function log\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x1525c40)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x1525ff0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x15261d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x15263b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function exp2\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x1526590)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x1526940)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x1526b20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x1526d00)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function log2\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x1526ee0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x1527290)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x1527470)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x1527650)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function sqrt\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x1527830)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x1527be0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x1527dc0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x1527fa0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function inversesqrt\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x1528180)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x1528540)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x1528720)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x1528900)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function abs\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x1528ae0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x1528e90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x1529070)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x1529250)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function sign\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x1529430)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x15297e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x15299c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x1529ba0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function floor\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x1529d80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x152a130)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x152a310)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x152a4f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function ceil\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x152a6d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x152aa80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x152ac60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x152ae40)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function fract\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x152b020)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x152b3d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x152b5b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x152b790)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function mod\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x152b970)\n"
+ " (declare (in ) float y@0x152ba80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x152be30)\n"
+ " (declare (in ) float y@0x152bf40)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x152c120)\n"
+ " (declare (in ) float y@0x152c230)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x152c410)\n"
+ " (declare (in ) float y@0x152c520)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x152c700)\n"
+ " (declare (in ) vec2 y@0x152c810)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x152c9f0)\n"
+ " (declare (in ) vec3 y@0x152cb00)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x152cce0)\n"
+ " (declare (in ) vec4 y@0x152cdf0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function min\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x152cfd0)\n"
+ " (declare (in ) float y@0x152d0e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x152d490)\n"
+ " (declare (in ) vec2 y@0x152d5a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x152d780)\n"
+ " (declare (in ) vec3 y@0x152d890)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x152da70)\n"
+ " (declare (in ) vec4 y@0x152db80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x152dd60)\n"
+ " (declare (in ) float y@0x152de70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x152e050)\n"
+ " (declare (in ) float y@0x152e160)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x152e340)\n"
+ " (declare (in ) float y@0x152e450)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function max\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x152e630)\n"
+ " (declare (in ) float y@0x152e740)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x152eaf0)\n"
+ " (declare (in ) vec2 y@0x152ec00)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x152ede0)\n"
+ " (declare (in ) vec3 y@0x152eef0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x152f0d0)\n"
+ " (declare (in ) vec4 y@0x152f1e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x152f3c0)\n"
+ " (declare (in ) float y@0x152f4d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x152f6b0)\n"
+ " (declare (in ) float y@0x152f7c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x152f9a0)\n"
+ " (declare (in ) float y@0x152fab0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function clamp\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x152fc90)\n"
+ " (declare (in ) float minVal@0x152fda0)\n"
+ " (declare (in ) float maxVal@0x152feb0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x1530260)\n"
+ " (declare (in ) vec2 minVal@0x1530370)\n"
+ " (declare (in ) vec2 maxVal@0x1530480)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x1530660)\n"
+ " (declare (in ) vec3 minVal@0x1530770)\n"
+ " (declare (in ) vec3 maxVal@0x1530880)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x1530a60)\n"
+ " (declare (in ) vec4 minVal@0x1530b70)\n"
+ " (declare (in ) vec4 maxVal@0x1530c80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x1530e60)\n"
+ " (declare (in ) float minVal@0x1530f70)\n"
+ " (declare (in ) float maxVal@0x1531080)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x1531260)\n"
+ " (declare (in ) float minVal@0x1531370)\n"
+ " (declare (in ) float maxVal@0x1531480)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x1531660)\n"
+ " (declare (in ) float minVal@0x1531770)\n"
+ " (declare (in ) float maxVal@0x1531880)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function mix\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x1531a60)\n"
+ " (declare (in ) float y@0x1531b70)\n"
+ " (declare (in ) float a@0x1531c80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x1532030)\n"
+ " (declare (in ) vec2 y@0x1532140)\n"
+ " (declare (in ) vec2 a@0x1532250)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x1532430)\n"
+ " (declare (in ) vec3 y@0x1532540)\n"
+ " (declare (in ) vec3 a@0x1532650)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x1532830)\n"
+ " (declare (in ) vec4 y@0x1532940)\n"
+ " (declare (in ) vec4 a@0x1532a50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x1532c30)\n"
+ " (declare (in ) vec2 y@0x1532d40)\n"
+ " (declare (in ) float a@0x1532e50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x1533030)\n"
+ " (declare (in ) vec3 y@0x1533140)\n"
+ " (declare (in ) float a@0x1533250)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x1533430)\n"
+ " (declare (in ) vec4 y@0x1533540)\n"
+ " (declare (in ) float a@0x1533650)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function step\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float edge@0x1533830)\n"
+ " (declare (in ) float x@0x1533940)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 edge@0x1533cf0)\n"
+ " (declare (in ) vec2 x@0x1533e00)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 edge@0x1533fe0)\n"
+ " (declare (in ) vec3 x@0x15340f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 edge@0x15342d0)\n"
+ " (declare (in ) vec4 x@0x15343e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) float edge@0x15345c0)\n"
+ " (declare (in ) vec2 x@0x15346d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) float edge@0x15348b0)\n"
+ " (declare (in ) vec3 x@0x15349c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) float edge@0x1534ba0)\n"
+ " (declare (in ) vec4 x@0x1534cb0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function smoothstep\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float edge0@0x1534e90)\n"
+ " (declare (in ) float edge1@0x1534fa0)\n"
+ " (declare (in ) float x@0x15350b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 edge0@0x1535470)\n"
+ " (declare (in ) vec2 edge1@0x1535580)\n"
+ " (declare (in ) vec2 x@0x1535690)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 edge0@0x1535870)\n"
+ " (declare (in ) vec3 edge1@0x1535980)\n"
+ " (declare (in ) vec3 x@0x1535a90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 edge0@0x1535c70)\n"
+ " (declare (in ) vec4 edge1@0x1535d80)\n"
+ " (declare (in ) vec4 x@0x1535e90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) float edge0@0x1536070)\n"
+ " (declare (in ) float edge1@0x1536180)\n"
+ " (declare (in ) vec2 x@0x1536290)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) float edge0@0x1536470)\n"
+ " (declare (in ) float edge1@0x1536580)\n"
+ " (declare (in ) vec3 x@0x1536690)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) float edge0@0x1536870)\n"
+ " (declare (in ) float edge1@0x1536980)\n"
+ " (declare (in ) vec4 x@0x1536a90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function length\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x1536c70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x1537020)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x1537200)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x15373e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function distance\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float p0@0x15375c0)\n"
+ " (declare (in ) float p1@0x15376d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec2 p0@0x1537a90)\n"
+ " (declare (in ) vec2 p1@0x1537ba0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec3 p0@0x1537d80)\n"
+ " (declare (in ) vec3 p1@0x1537e90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec4 p0@0x1538070)\n"
+ " (declare (in ) vec4 p1@0x1538180)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function dot\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x1538360)\n"
+ " (declare (in ) float y@0x1538470)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x1538820)\n"
+ " (declare (in ) vec2 y@0x1538930)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x1538b10)\n"
+ " (declare (in ) vec3 y@0x1538c20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x1538e00)\n"
+ " (declare (in ) vec4 y@0x1538f10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function cross\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x15390f0)\n"
+ " (declare (in ) vec3 y@0x1539200)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function normalize\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x15395b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x1539970)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x1539b50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x1539d30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function faceforward\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float N@0x1539f10)\n"
+ " (declare (in ) float I@0x153a020)\n"
+ " (declare (in ) float Nref@0x153a130)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 N@0x153a4f0)\n"
+ " (declare (in ) vec2 I@0x153a600)\n"
+ " (declare (in ) vec2 Nref@0x153a710)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 N@0x153a8f0)\n"
+ " (declare (in ) vec3 I@0x153aa00)\n"
+ " (declare (in ) vec3 Nref@0x153ab10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 N@0x153acf0)\n"
+ " (declare (in ) vec4 I@0x153ae00)\n"
+ " (declare (in ) vec4 Nref@0x153af10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function reflect\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float I@0x153b0f0)\n"
+ " (declare (in ) float N@0x153b200)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 I@0x153b5c0)\n"
+ " (declare (in ) vec2 N@0x153b6d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 I@0x153b8b0)\n"
+ " (declare (in ) vec3 N@0x153b9c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 I@0x153bba0)\n"
+ " (declare (in ) vec4 N@0x153bcb0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function refract\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float I@0x153be90)\n"
+ " (declare (in ) float N@0x153bfa0)\n"
+ " (declare (in ) float eta@0x153c0b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 I@0x153c470)\n"
+ " (declare (in ) vec2 N@0x153c580)\n"
+ " (declare (in ) float eta@0x153c690)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 I@0x153c870)\n"
+ " (declare (in ) vec3 N@0x153c980)\n"
+ " (declare (in ) float eta@0x153ca90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 I@0x153cc70)\n"
+ " (declare (in ) vec4 N@0x153cd80)\n"
+ " (declare (in ) float eta@0x153ce90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function matrixCompMult\n"
+ " (signature mat2\n"
+ " (parameters\n"
+ " (declare (in ) mat2 x@0x153d070)\n"
+ " (declare (in ) mat2 y@0x153d180)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat3\n"
+ " (parameters\n"
+ " (declare (in ) mat3 x@0x153d540)\n"
+ " (declare (in ) mat3 y@0x153d650)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat4\n"
+ " (parameters\n"
+ " (declare (in ) mat4 x@0x153d830)\n"
+ " (declare (in ) mat4 y@0x153d940)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function lessThan\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x153db20)\n"
+ " (declare (in ) vec2 y@0x153dc30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x153dff0)\n"
+ " (declare (in ) vec3 y@0x153e100)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x153e2e0)\n"
+ " (declare (in ) vec4 y@0x153e3f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0x153e5d0)\n"
+ " (declare (in ) ivec2 y@0x153e6e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0x153e8c0)\n"
+ " (declare (in ) ivec3 y@0x153e9d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0x153ebb0)\n"
+ " (declare (in ) ivec4 y@0x153ecc0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function lessThanEqual\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x153eea0)\n"
+ " (declare (in ) vec2 y@0x153efb0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x153f370)\n"
+ " (declare (in ) vec3 y@0x153f480)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x153f660)\n"
+ " (declare (in ) vec4 y@0x153f770)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0x153f950)\n"
+ " (declare (in ) ivec2 y@0x153fa60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0x153fc40)\n"
+ " (declare (in ) ivec3 y@0x153fd50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0x153ff30)\n"
+ " (declare (in ) ivec4 y@0x1540040)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function greaterThan\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x1540220)\n"
+ " (declare (in ) vec2 y@0x1540330)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x15406f0)\n"
+ " (declare (in ) vec3 y@0x1540800)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x15409e0)\n"
+ " (declare (in ) vec4 y@0x1540af0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0x1540cd0)\n"
+ " (declare (in ) ivec2 y@0x1540de0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0x1540fc0)\n"
+ " (declare (in ) ivec3 y@0x15410d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0x15412b0)\n"
+ " (declare (in ) ivec4 y@0x15413c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function greaterThanEqual\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x15415a0)\n"
+ " (declare (in ) vec2 y@0x15416b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x1541a70)\n"
+ " (declare (in ) vec3 y@0x1541b80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x1541d60)\n"
+ " (declare (in ) vec4 y@0x1541e70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0x1542050)\n"
+ " (declare (in ) ivec2 y@0x1542160)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0x1542340)\n"
+ " (declare (in ) ivec3 y@0x1542450)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0x1542630)\n"
+ " (declare (in ) ivec4 y@0x1542740)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function equal\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x1542920)\n"
+ " (declare (in ) vec2 y@0x1542a30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x1542de0)\n"
+ " (declare (in ) vec3 y@0x1542ef0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x15430d0)\n"
+ " (declare (in ) vec4 y@0x15431e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0x15433c0)\n"
+ " (declare (in ) ivec2 y@0x15434d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0x15436b0)\n"
+ " (declare (in ) ivec3 y@0x15437c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0x15439a0)\n"
+ " (declare (in ) ivec4 y@0x1543ab0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) bvec2 x@0x1543c90)\n"
+ " (declare (in ) bvec2 y@0x1543da0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) bvec3 x@0x1543f80)\n"
+ " (declare (in ) bvec3 y@0x1544090)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) bvec4 x@0x1544270)\n"
+ " (declare (in ) bvec4 y@0x1544380)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function notEqual\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x1544560)\n"
+ " (declare (in ) vec2 y@0x1544670)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x1544a30)\n"
+ " (declare (in ) vec3 y@0x1544b40)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x1544d20)\n"
+ " (declare (in ) vec4 y@0x1544e30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0x1545010)\n"
+ " (declare (in ) ivec2 y@0x1545120)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0x1545300)\n"
+ " (declare (in ) ivec3 y@0x1545410)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0x15455f0)\n"
+ " (declare (in ) ivec4 y@0x1545700)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) bvec2 x@0x15458e0)\n"
+ " (declare (in ) bvec2 y@0x15459f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) bvec3 x@0x1545bd0)\n"
+ " (declare (in ) bvec3 y@0x1545ce0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) bvec4 x@0x1545ec0)\n"
+ " (declare (in ) bvec4 y@0x1545fd0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function any\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec2 x@0x15461b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec3 x@0x1546560)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec4 x@0x1546740)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function all\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec2 x@0x1546920)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec3 x@0x1546cd0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec4 x@0x1546eb0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function not\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) bvec2 x@0x1547090)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) bvec3 x@0x1547440)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) bvec4 x@0x1547620)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture1D\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0x1547800)\n"
+ " (declare (in ) float coord@0x1547920)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0x15484c0)\n"
+ " (declare (in ) float coord@0x15485e0)\n"
+ " (declare (in ) float bias@0x15486f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture1DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0x1547ce0)\n"
+ " (declare (in ) vec2 coord@0x1547e00)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0x15481c0)\n"
+ " (declare (in ) vec4 coord@0x15482e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0x15488d0)\n"
+ " (declare (in ) vec2 coord@0x15489f0)\n"
+ " (declare (in ) float bias@0x1548b00)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0x1548ce0)\n"
+ " (declare (in ) vec4 coord@0x1548e00)\n"
+ " (declare (in ) float bias@0x1548f10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture2D\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0x15490f0)\n"
+ " (declare (in ) vec2 coord@0x1549210)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0x1549db0)\n"
+ " (declare (in ) vec2 coord@0x1549ed0)\n"
+ " (declare (in ) float bias@0x1549fe0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture2DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0x15495d0)\n"
+ " (declare (in ) vec3 coord@0x15496f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0x1549ab0)\n"
+ " (declare (in ) vec4 coord@0x1549bd0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0x154a1c0)\n"
+ " (declare (in ) vec3 coord@0x154a2e0)\n"
+ " (declare (in ) float bias@0x154a3f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0x154a5d0)\n"
+ " (declare (in ) vec4 coord@0x154a6f0)\n"
+ " (declare (in ) float bias@0x154a800)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture3D\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler3D sampler@0x154a9e0)\n"
+ " (declare (in ) vec3 coord@0x154ab00)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler3D sampler@0x154b3a0)\n"
+ " (declare (in ) vec3 coord@0x154b4c0)\n"
+ " (declare (in ) float bias@0x154b5d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture3DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler3D sampler@0x154aec0)\n"
+ " (declare (in ) vec4 coord@0x154afe0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler3D sampler@0x154b7b0)\n"
+ " (declare (in ) vec4 coord@0x154b8d0)\n"
+ " (declare (in ) float bias@0x154b9e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function textureCube\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) samplerCube sampler@0x154bbc0)\n"
+ " (declare (in ) vec3 coord@0x154bce0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) samplerCube sampler@0x154c0a0)\n"
+ " (declare (in ) vec3 coord@0x154c1c0)\n"
+ " (declare (in ) float bias@0x154c2d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow1D\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DShadow sampler@0x154c4b0)\n"
+ " (declare (in ) vec3 coord@0x154c5d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DShadow sampler@0x154d830)\n"
+ " (declare (in ) vec3 coord@0x154d950)\n"
+ " (declare (in ) float bias@0x154da60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow2D\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DShadow sampler@0x154c990)\n"
+ " (declare (in ) vec3 coord@0x154cab0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DShadow sampler@0x154dc40)\n"
+ " (declare (in ) vec3 coord@0x154dd60)\n"
+ " (declare (in ) float bias@0x154de70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow1DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DShadow sampler@0x154ce70)\n"
+ " (declare (in ) vec4 coord@0x154cf90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DShadow sampler@0x154e050)\n"
+ " (declare (in ) vec4 coord@0x154e170)\n"
+ " (declare (in ) float bias@0x154e280)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow2DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DShadow sampler@0x154d350)\n"
+ " (declare (in ) vec4 coord@0x154d470)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DShadow sampler@0x154e460)\n"
+ " (declare (in ) vec4 coord@0x154e580)\n"
+ " (declare (in ) float bias@0x154e690)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function dFdx\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float p@0x154e870)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 p@0x154ec20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 p@0x154ee00)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 p@0x154efe0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function dFdy\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float p@0x154f1c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 p@0x154f570)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 p@0x154f750)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 p@0x154f930)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function fwidth\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float p@0x154fb10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 p@0x154fec0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 p@0x15500a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 p@0x1550280)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function noise1\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x1550460)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x1550810)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x15509f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x1550bd0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function noise2\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x1550db0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x1551160)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x1551340)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x1551520)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function noise3\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x1551700)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x1551ab0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x1551c90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x1551e70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function noise4\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x1552050)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x1552400)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x15525e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x15527c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "\n"
+ ")"
+;
+static const char *functions_for_110_frag [] = {
+ builtin_clamp,
+ builtin_matrixCompMult,
+ builtin_noise2,
+ builtin_pow,
+ builtin_texture2DProj,
+ builtin_fwidth,
+ builtin_greaterThanEqual,
+ builtin_sign,
+ builtin_texture3DProj,
+ builtin_texture2D,
+ builtin_equal,
+ builtin_faceforward,
+ builtin_tan,
+ builtin_any,
+ builtin_normalize,
+ builtin_asin,
+ builtin_texture1DProj,
+ builtin_log,
+ builtin_floor,
+ builtin_exp2,
+ builtin_lessThan,
+ builtin_cross,
+ builtin_sqrt,
+ builtin_shadow2DProj,
+ builtin_fract,
+ builtin_abs,
+ builtin_degrees,
+ builtin_dFdx,
+ builtin_sin,
+ builtin_shadow2D,
+ builtin_all,
+ builtin_log2,
+ builtin_atan,
+ builtin_notEqual,
+ builtin_max,
+ builtin_lessThanEqual,
+ builtin_shadow1DProj,
+ builtin_ceil,
+ builtin_reflect,
+ builtin_step,
+ builtin_texture1D,
+ builtin_greaterThan,
+ builtin_texture3D,
+ builtin_not,
+ builtin_inversesqrt,
+ builtin_mod,
+ builtin_noise4,
+ builtin_distance,
+ builtin_cos,
+ builtin_shadow1D,
+ builtin_noise1,
+ builtin_refract,
+ builtin_noise3,
+ builtin_min,
+ builtin_radians,
+ builtin_smoothstep,
+ builtin_textureCube,
+ builtin_length,
+ builtin_dFdy,
+ builtin_exp,
+ builtin_acos,
+ builtin_mix,
+ builtin_dot,
+};
+static const char *prototypes_for_EXT_texture_array_vert =
+ "(\n"
+ "(function texture1DArray\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DArray sampler@0x25ee5c0)\n"
+ " (declare (in ) vec2 coord@0x25ee6e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture1DArrayLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DArray sampler@0x25eeaa0)\n"
+ " (declare (in ) vec2 coord@0x25eebc0)\n"
+ " (declare (in ) float lod@0x25eecd0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture2DArray\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DArray sampler@0x25ef090)\n"
+ " (declare (in ) vec2 coord@0x25ef1b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture2DArrayLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DArray sampler@0x25ef570)\n"
+ " (declare (in ) vec2 coord@0x25ef690)\n"
+ " (declare (in ) float lod@0x25ef7a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow1DArray\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DArrayShadow sampler@0x25efb60)\n"
+ " (declare (in ) vec3 coord@0x25efc80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow1DArrayLod\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DArrayShadow sampler@0x25f0040)\n"
+ " (declare (in ) vec3 coord@0x25f0160)\n"
+ " (declare (in ) float lod@0x25f0270)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow2DArray\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DArrayShadow sampler@0x25f0630)\n"
+ " (declare (in ) vec4 coord@0x25f0750)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "\n"
+ ")"
+;
+static const char *functions_for_EXT_texture_array_vert [] = {
+ builtin_texture1DArrayLod,
+ builtin_shadow2DArray,
+ builtin_texture2DArrayLod,
+ builtin_shadow1DArrayLod,
+ builtin_shadow1DArray,
+ builtin_texture2DArray,
+ builtin_texture1DArray,
+};
+static const char *prototypes_for_ARB_texture_rectangle_vert =
+ "(\n"
+ "(function texture2DRect\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DRect sampler@0x1cc28a0)\n"
+ " (declare (in ) vec2 coord@0x1cc29c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture2DRectProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DRect sampler@0x1cc2d80)\n"
+ " (declare (in ) vec3 coord@0x1cc2ea0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DRect sampler@0x1cc3260)\n"
+ " (declare (in ) vec4 coord@0x1cc3380)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow2DRect\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DRectShadow sampler@0x1cc3560)\n"
+ " (declare (in ) vec3 coord@0x1cc3680)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow2DRectProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DRectShadow sampler@0x1cc3a40)\n"
+ " (declare (in ) vec4 coord@0x1cc3b60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "\n"
+ ")"
+;
+static const char *functions_for_ARB_texture_rectangle_vert [] = {
+ builtin_texture2DRect,
+ builtin_shadow2DRectProj,
+ builtin_shadow2DRect,
+ builtin_texture2DRectProj,
+};
+static const char *prototypes_for_ARB_texture_rectangle_frag =
+ "(\n"
+ "(function texture2DRect\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DRect sampler@0x13d0040)\n"
+ " (declare (in ) vec2 coord@0x13d0160)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture2DRectProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DRect sampler@0x13d0520)\n"
+ " (declare (in ) vec3 coord@0x13d0640)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DRect sampler@0x13d0a00)\n"
+ " (declare (in ) vec4 coord@0x13d0b20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow2DRect\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DRectShadow sampler@0x13d0d00)\n"
+ " (declare (in ) vec3 coord@0x13d0e20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow2DRectProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DRectShadow sampler@0x13d11e0)\n"
+ " (declare (in ) vec4 coord@0x13d1300)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "\n"
+ ")"
+;
+static const char *functions_for_ARB_texture_rectangle_frag [] = {
+ builtin_texture2DRect,
+ builtin_shadow2DRectProj,
+ builtin_shadow2DRect,
+ builtin_texture2DRectProj,
+};
+static const char *prototypes_for_120_frag =
+ "(\n"
+ "(function radians\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float degrees@0x8b57e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 degrees@0x8b5bb0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 degrees@0x8b5da0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 degrees@0x8b5f90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function degrees\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float radians@0x8b6180)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 radians@0x8b6550)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 radians@0x8b6740)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 radians@0x8b6930)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function sin\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float angle@0x8b6b20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 angle@0x8b6ed0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 angle@0x8b70b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 angle@0x8b7290)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function cos\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float angle@0x8b7470)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 angle@0x8b7820)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 angle@0x8b7a00)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 angle@0x8b7be0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function tan\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float angle@0x8b7dc0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 angle@0x8b8170)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 angle@0x8b8350)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 angle@0x8b8530)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function asin\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float angle@0x8b8710)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 angle@0x8b8ac0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 angle@0x8b8ca0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 angle@0x8b8e80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function acos\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float angle@0x8b9060)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 angle@0x8b9410)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 angle@0x8b95f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 angle@0x8b97d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function atan\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float y@0x8b99b0)\n"
+ " (declare (in ) float x@0x8b9ac0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 y@0x8b9e70)\n"
+ " (declare (in ) vec2 x@0x8b9f80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 y@0x8ba160)\n"
+ " (declare (in ) vec3 x@0x8ba270)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 y@0x8ba450)\n"
+ " (declare (in ) vec4 x@0x8ba560)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float y_over_x@0x8ba740)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 y_over_x@0x8ba930)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 y_over_x@0x8bab20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 y_over_x@0x8bad10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function pow\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8baf00)\n"
+ " (declare (in ) float y@0x8bb010)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8bb3c0)\n"
+ " (declare (in ) vec2 y@0x8bb4d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8bb6b0)\n"
+ " (declare (in ) vec3 y@0x8bb7c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8bb9a0)\n"
+ " (declare (in ) vec4 y@0x8bbab0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function exp\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8bbc90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8bc040)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8bc220)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8bc400)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function log\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8bc5e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8bc990)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8bcb70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8bcd50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function exp2\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8bcf30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8bd2e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8bd4c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8bd6a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function log2\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8bd880)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8bdc30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8bde10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8bdff0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function sqrt\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8be1d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8be580)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8be760)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8be940)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function inversesqrt\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8beb20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8beee0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8bf0c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8bf2a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function abs\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8bf480)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8bf830)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8bfa10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8bfbf0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function sign\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8bfdd0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8c0180)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8c0360)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8c0540)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function floor\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8c0720)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8c0ad0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8c0cb0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8c0e90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function ceil\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8c1070)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8c1420)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8c1600)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8c17e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function fract\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8c19c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8c1d70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8c1f50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8c2130)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function mod\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8c2310)\n"
+ " (declare (in ) float y@0x8c2420)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8c27d0)\n"
+ " (declare (in ) float y@0x8c28e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8c2ac0)\n"
+ " (declare (in ) float y@0x8c2bd0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8c2db0)\n"
+ " (declare (in ) float y@0x8c2ec0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8c30a0)\n"
+ " (declare (in ) vec2 y@0x8c31b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8c3390)\n"
+ " (declare (in ) vec3 y@0x8c34a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8c3680)\n"
+ " (declare (in ) vec4 y@0x8c3790)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function min\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8c3970)\n"
+ " (declare (in ) float y@0x8c3a80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8c3e30)\n"
+ " (declare (in ) vec2 y@0x8c3f40)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8c4120)\n"
+ " (declare (in ) vec3 y@0x8c4230)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8c4410)\n"
+ " (declare (in ) vec4 y@0x8c4520)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8c4700)\n"
+ " (declare (in ) float y@0x8c4810)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8c49f0)\n"
+ " (declare (in ) float y@0x8c4b00)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8c4ce0)\n"
+ " (declare (in ) float y@0x8c4df0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function max\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8c4fd0)\n"
+ " (declare (in ) float y@0x8c50e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8c5490)\n"
+ " (declare (in ) vec2 y@0x8c55a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8c5780)\n"
+ " (declare (in ) vec3 y@0x8c5890)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8c5a70)\n"
+ " (declare (in ) vec4 y@0x8c5b80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8c5d60)\n"
+ " (declare (in ) float y@0x8c5e70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8c6050)\n"
+ " (declare (in ) float y@0x8c6160)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8c6340)\n"
+ " (declare (in ) float y@0x8c6450)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function clamp\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8c6630)\n"
+ " (declare (in ) float minVal@0x8c6740)\n"
+ " (declare (in ) float maxVal@0x8c6850)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8c6c00)\n"
+ " (declare (in ) vec2 minVal@0x8c6d10)\n"
+ " (declare (in ) vec2 maxVal@0x8c6e20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8c7000)\n"
+ " (declare (in ) vec3 minVal@0x8c7110)\n"
+ " (declare (in ) vec3 maxVal@0x8c7220)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8c7400)\n"
+ " (declare (in ) vec4 minVal@0x8c7510)\n"
+ " (declare (in ) vec4 maxVal@0x8c7620)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8c7800)\n"
+ " (declare (in ) float minVal@0x8c7910)\n"
+ " (declare (in ) float maxVal@0x8c7a20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8c7c00)\n"
+ " (declare (in ) float minVal@0x8c7d10)\n"
+ " (declare (in ) float maxVal@0x8c7e20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8c8000)\n"
+ " (declare (in ) float minVal@0x8c8110)\n"
+ " (declare (in ) float maxVal@0x8c8220)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function mix\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8c8400)\n"
+ " (declare (in ) float y@0x8c8510)\n"
+ " (declare (in ) float a@0x8c8620)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8c89d0)\n"
+ " (declare (in ) vec2 y@0x8c8ae0)\n"
+ " (declare (in ) vec2 a@0x8c8bf0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8c8dd0)\n"
+ " (declare (in ) vec3 y@0x8c8ee0)\n"
+ " (declare (in ) vec3 a@0x8c8ff0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8c91d0)\n"
+ " (declare (in ) vec4 y@0x8c92e0)\n"
+ " (declare (in ) vec4 a@0x8c93f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8c95d0)\n"
+ " (declare (in ) vec2 y@0x8c96e0)\n"
+ " (declare (in ) float a@0x8c97f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8c99d0)\n"
+ " (declare (in ) vec3 y@0x8c9ae0)\n"
+ " (declare (in ) float a@0x8c9bf0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8c9dd0)\n"
+ " (declare (in ) vec4 y@0x8c9ee0)\n"
+ " (declare (in ) float a@0x8c9ff0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function step\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float edge@0x8ca1d0)\n"
+ " (declare (in ) float x@0x8ca2e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 edge@0x8ca690)\n"
+ " (declare (in ) vec2 x@0x8ca7a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 edge@0x8ca980)\n"
+ " (declare (in ) vec3 x@0x8caa90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 edge@0x8cac70)\n"
+ " (declare (in ) vec4 x@0x8cad80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) float edge@0x8caf60)\n"
+ " (declare (in ) vec2 x@0x8cb070)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) float edge@0x8cb250)\n"
+ " (declare (in ) vec3 x@0x8cb360)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) float edge@0x8cb540)\n"
+ " (declare (in ) vec4 x@0x8cb650)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function smoothstep\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float edge0@0x8cb830)\n"
+ " (declare (in ) float edge1@0x8cb940)\n"
+ " (declare (in ) float x@0x8cba50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 edge0@0x8cbe10)\n"
+ " (declare (in ) vec2 edge1@0x8cbf20)\n"
+ " (declare (in ) vec2 x@0x8cc030)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 edge0@0x8cc210)\n"
+ " (declare (in ) vec3 edge1@0x8cc320)\n"
+ " (declare (in ) vec3 x@0x8cc430)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 edge0@0x8cc610)\n"
+ " (declare (in ) vec4 edge1@0x8cc720)\n"
+ " (declare (in ) vec4 x@0x8cc830)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) float edge0@0x8cca10)\n"
+ " (declare (in ) float edge1@0x8ccb20)\n"
+ " (declare (in ) vec2 x@0x8ccc30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) float edge0@0x8cce10)\n"
+ " (declare (in ) float edge1@0x8ccf20)\n"
+ " (declare (in ) vec3 x@0x8cd030)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) float edge0@0x8cd210)\n"
+ " (declare (in ) float edge1@0x8cd320)\n"
+ " (declare (in ) vec4 x@0x8cd430)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function length\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8cd610)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8cd9c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8cdba0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8cdd80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function distance\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float p0@0x8cdf60)\n"
+ " (declare (in ) float p1@0x8ce070)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec2 p0@0x8ce430)\n"
+ " (declare (in ) vec2 p1@0x8ce540)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec3 p0@0x8ce720)\n"
+ " (declare (in ) vec3 p1@0x8ce830)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec4 p0@0x8cea10)\n"
+ " (declare (in ) vec4 p1@0x8ceb20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function dot\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8ced00)\n"
+ " (declare (in ) float y@0x8cee10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8cf1c0)\n"
+ " (declare (in ) vec2 y@0x8cf2d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8cf4b0)\n"
+ " (declare (in ) vec3 y@0x8cf5c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8cf7a0)\n"
+ " (declare (in ) vec4 y@0x8cf8b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function cross\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8cfa90)\n"
+ " (declare (in ) vec3 y@0x8cfba0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function normalize\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8cff50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8d0310)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8d04f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8d06d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function faceforward\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float N@0x8d08b0)\n"
+ " (declare (in ) float I@0x8d09c0)\n"
+ " (declare (in ) float Nref@0x8d0ad0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 N@0x8d0e90)\n"
+ " (declare (in ) vec2 I@0x8d0fa0)\n"
+ " (declare (in ) vec2 Nref@0x8d10b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 N@0x8d1290)\n"
+ " (declare (in ) vec3 I@0x8d13a0)\n"
+ " (declare (in ) vec3 Nref@0x8d14b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 N@0x8d1690)\n"
+ " (declare (in ) vec4 I@0x8d17a0)\n"
+ " (declare (in ) vec4 Nref@0x8d18b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function reflect\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float I@0x8d1a90)\n"
+ " (declare (in ) float N@0x8d1ba0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 I@0x8d1f60)\n"
+ " (declare (in ) vec2 N@0x8d2070)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 I@0x8d2250)\n"
+ " (declare (in ) vec3 N@0x8d2360)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 I@0x8d2540)\n"
+ " (declare (in ) vec4 N@0x8d2650)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function refract\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float I@0x8d2830)\n"
+ " (declare (in ) float N@0x8d2940)\n"
+ " (declare (in ) float eta@0x8d2a50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 I@0x8d2e10)\n"
+ " (declare (in ) vec2 N@0x8d2f20)\n"
+ " (declare (in ) float eta@0x8d3030)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 I@0x8d3210)\n"
+ " (declare (in ) vec3 N@0x8d3320)\n"
+ " (declare (in ) float eta@0x8d3430)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 I@0x8d3610)\n"
+ " (declare (in ) vec4 N@0x8d3720)\n"
+ " (declare (in ) float eta@0x8d3830)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function matrixCompMult\n"
+ " (signature mat2\n"
+ " (parameters\n"
+ " (declare (in ) mat2 x@0x8d3a10)\n"
+ " (declare (in ) mat2 y@0x8d3b20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat3\n"
+ " (parameters\n"
+ " (declare (in ) mat3 x@0x8d3ee0)\n"
+ " (declare (in ) mat3 y@0x8d3ff0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat4\n"
+ " (parameters\n"
+ " (declare (in ) mat4 x@0x8d41d0)\n"
+ " (declare (in ) mat4 y@0x8d42e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat2x3\n"
+ " (parameters\n"
+ " (declare (in ) mat2x3 x@0x8d44c0)\n"
+ " (declare (in ) mat2x3 y@0x8d45d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat2x4\n"
+ " (parameters\n"
+ " (declare (in ) mat2x4 x@0x8d47b0)\n"
+ " (declare (in ) mat2x4 y@0x8d48c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat3x2\n"
+ " (parameters\n"
+ " (declare (in ) mat3x2 x@0x8d4aa0)\n"
+ " (declare (in ) mat3x2 y@0x8d4bb0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat3x4\n"
+ " (parameters\n"
+ " (declare (in ) mat3x4 x@0x8d4d90)\n"
+ " (declare (in ) mat3x4 y@0x8d4ea0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat4x2\n"
+ " (parameters\n"
+ " (declare (in ) mat4x2 x@0x8d5080)\n"
+ " (declare (in ) mat4x2 y@0x8d5190)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat4x3\n"
+ " (parameters\n"
+ " (declare (in ) mat4x3 x@0x8d5370)\n"
+ " (declare (in ) mat4x3 y@0x8d5480)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function outerProduct\n"
+ " (signature mat2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 c@0x8d5660)\n"
+ " (declare (in ) vec2 r@0x8d5770)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 c@0x8d5b30)\n"
+ " (declare (in ) vec3 r@0x8d5c40)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 c@0x8d5e20)\n"
+ " (declare (in ) vec4 r@0x8d5f30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat2x3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 c@0x8d6110)\n"
+ " (declare (in ) vec2 r@0x8d6220)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat3x2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 c@0x8d6400)\n"
+ " (declare (in ) vec3 r@0x8d6510)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat2x4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 c@0x8d66f0)\n"
+ " (declare (in ) vec2 r@0x8d6800)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat4x2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 c@0x8d69e0)\n"
+ " (declare (in ) vec4 r@0x8d6af0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat3x4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 c@0x8d6cd0)\n"
+ " (declare (in ) vec3 r@0x8d6de0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat4x3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 c@0x8d6fc0)\n"
+ " (declare (in ) vec4 r@0x8d70d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function transpose\n"
+ " (signature mat2\n"
+ " (parameters\n"
+ " (declare (in ) mat2 m@0x8d72b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat3\n"
+ " (parameters\n"
+ " (declare (in ) mat3 m@0x8d7670)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat4\n"
+ " (parameters\n"
+ " (declare (in ) mat4 m@0x8d7850)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat2x3\n"
+ " (parameters\n"
+ " (declare (in ) mat3x2 m@0x8d7a30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat3x2\n"
+ " (parameters\n"
+ " (declare (in ) mat2x3 m@0x8d7c10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat2x4\n"
+ " (parameters\n"
+ " (declare (in ) mat4x2 m@0x8d7df0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat4x2\n"
+ " (parameters\n"
+ " (declare (in ) mat2x4 m@0x8d7fd0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat3x4\n"
+ " (parameters\n"
+ " (declare (in ) mat4x3 m@0x8d81b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature mat4x3\n"
+ " (parameters\n"
+ " (declare (in ) mat3x4 m@0x8d8390)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function lessThan\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8d8570)\n"
+ " (declare (in ) vec2 y@0x8d8680)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8d8a40)\n"
+ " (declare (in ) vec3 y@0x8d8b50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8d8d30)\n"
+ " (declare (in ) vec4 y@0x8d8e40)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0x8d9020)\n"
+ " (declare (in ) ivec2 y@0x8d9130)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0x8d9310)\n"
+ " (declare (in ) ivec3 y@0x8d9420)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0x8d9600)\n"
+ " (declare (in ) ivec4 y@0x8d9710)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function lessThanEqual\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8d98f0)\n"
+ " (declare (in ) vec2 y@0x8d9a00)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8d9dc0)\n"
+ " (declare (in ) vec3 y@0x8d9ed0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8da0b0)\n"
+ " (declare (in ) vec4 y@0x8da1c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0x8da3a0)\n"
+ " (declare (in ) ivec2 y@0x8da4b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0x8da690)\n"
+ " (declare (in ) ivec3 y@0x8da7a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0x8da980)\n"
+ " (declare (in ) ivec4 y@0x8daa90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function greaterThan\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8dac70)\n"
+ " (declare (in ) vec2 y@0x8dad80)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8db140)\n"
+ " (declare (in ) vec3 y@0x8db250)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8db430)\n"
+ " (declare (in ) vec4 y@0x8db540)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0x8db720)\n"
+ " (declare (in ) ivec2 y@0x8db830)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0x8dba10)\n"
+ " (declare (in ) ivec3 y@0x8dbb20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0x8dbd00)\n"
+ " (declare (in ) ivec4 y@0x8dbe10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function greaterThanEqual\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8dbff0)\n"
+ " (declare (in ) vec2 y@0x8dc100)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8dc4c0)\n"
+ " (declare (in ) vec3 y@0x8dc5d0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8dc7b0)\n"
+ " (declare (in ) vec4 y@0x8dc8c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0x8dcaa0)\n"
+ " (declare (in ) ivec2 y@0x8dcbb0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0x8dcd90)\n"
+ " (declare (in ) ivec3 y@0x8dcea0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0x8dd080)\n"
+ " (declare (in ) ivec4 y@0x8dd190)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function equal\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8dd370)\n"
+ " (declare (in ) vec2 y@0x8dd480)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8dd830)\n"
+ " (declare (in ) vec3 y@0x8dd940)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8ddb20)\n"
+ " (declare (in ) vec4 y@0x8ddc30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0x8dde10)\n"
+ " (declare (in ) ivec2 y@0x8ddf20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0x8de100)\n"
+ " (declare (in ) ivec3 y@0x8de210)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0x8de3f0)\n"
+ " (declare (in ) ivec4 y@0x8de500)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) bvec2 x@0x8de6e0)\n"
+ " (declare (in ) bvec2 y@0x8de7f0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) bvec3 x@0x8de9d0)\n"
+ " (declare (in ) bvec3 y@0x8deae0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) bvec4 x@0x8decc0)\n"
+ " (declare (in ) bvec4 y@0x8dedd0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function notEqual\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8defb0)\n"
+ " (declare (in ) vec2 y@0x8df0c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8df480)\n"
+ " (declare (in ) vec3 y@0x8df590)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8df770)\n"
+ " (declare (in ) vec4 y@0x8df880)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) ivec2 x@0x8dfa60)\n"
+ " (declare (in ) ivec2 y@0x8dfb70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) ivec3 x@0x8dfd50)\n"
+ " (declare (in ) ivec3 y@0x8dfe60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) ivec4 x@0x8e0040)\n"
+ " (declare (in ) ivec4 y@0x8e0150)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) bvec2 x@0x8e0330)\n"
+ " (declare (in ) bvec2 y@0x8e0440)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) bvec3 x@0x8e0620)\n"
+ " (declare (in ) bvec3 y@0x8e0730)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) bvec4 x@0x8e0910)\n"
+ " (declare (in ) bvec4 y@0x8e0a20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function any\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec2 x@0x8e0c00)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec3 x@0x8e0fb0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec4 x@0x8e1190)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function all\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec2 x@0x8e1370)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec3 x@0x8e1720)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bool\n"
+ " (parameters\n"
+ " (declare (in ) bvec4 x@0x8e1900)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function not\n"
+ " (signature bvec2\n"
+ " (parameters\n"
+ " (declare (in ) bvec2 x@0x8e1ae0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec3\n"
+ " (parameters\n"
+ " (declare (in ) bvec3 x@0x8e1e90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature bvec4\n"
+ " (parameters\n"
+ " (declare (in ) bvec4 x@0x8e2070)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture1D\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0x8e2250)\n"
+ " (declare (in ) float coord@0x8e2370)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0x8e2f10)\n"
+ " (declare (in ) float coord@0x8e3030)\n"
+ " (declare (in ) float bias@0x8e3140)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture1DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0x8e2730)\n"
+ " (declare (in ) vec2 coord@0x8e2850)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0x8e2c10)\n"
+ " (declare (in ) vec4 coord@0x8e2d30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0x8e3320)\n"
+ " (declare (in ) vec2 coord@0x8e3440)\n"
+ " (declare (in ) float bias@0x8e3550)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1D sampler@0x8e3730)\n"
+ " (declare (in ) vec4 coord@0x8e3850)\n"
+ " (declare (in ) float bias@0x8e3960)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture2D\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0x8e3b40)\n"
+ " (declare (in ) vec2 coord@0x8e3c60)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0x8e4800)\n"
+ " (declare (in ) vec2 coord@0x8e4920)\n"
+ " (declare (in ) float bias@0x8e4a30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture2DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0x8e4020)\n"
+ " (declare (in ) vec3 coord@0x8e4140)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0x8e4500)\n"
+ " (declare (in ) vec4 coord@0x8e4620)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0x8e4c10)\n"
+ " (declare (in ) vec3 coord@0x8e4d30)\n"
+ " (declare (in ) float bias@0x8e4e40)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2D sampler@0x8e5020)\n"
+ " (declare (in ) vec4 coord@0x8e5140)\n"
+ " (declare (in ) float bias@0x8e5250)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture3D\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler3D sampler@0x8e5430)\n"
+ " (declare (in ) vec3 coord@0x8e5550)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler3D sampler@0x8e5df0)\n"
+ " (declare (in ) vec3 coord@0x8e5f10)\n"
+ " (declare (in ) float bias@0x8e6020)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function texture3DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler3D sampler@0x8e5910)\n"
+ " (declare (in ) vec4 coord@0x8e5a30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler3D sampler@0x8e6200)\n"
+ " (declare (in ) vec4 coord@0x8e6320)\n"
+ " (declare (in ) float bias@0x8e6430)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function textureCube\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) samplerCube sampler@0x8e6610)\n"
+ " (declare (in ) vec3 coord@0x8e6730)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) samplerCube sampler@0x8e6af0)\n"
+ " (declare (in ) vec3 coord@0x8e6c10)\n"
+ " (declare (in ) float bias@0x8e6d20)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow1D\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DShadow sampler@0x8e6f00)\n"
+ " (declare (in ) vec3 coord@0x8e7020)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DShadow sampler@0x8e8280)\n"
+ " (declare (in ) vec3 coord@0x8e83a0)\n"
+ " (declare (in ) float bias@0x8e84b0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow2D\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DShadow sampler@0x8e73e0)\n"
+ " (declare (in ) vec3 coord@0x8e7500)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DShadow sampler@0x8e8690)\n"
+ " (declare (in ) vec3 coord@0x8e87b0)\n"
+ " (declare (in ) float bias@0x8e88c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow1DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DShadow sampler@0x8e78c0)\n"
+ " (declare (in ) vec4 coord@0x8e79e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler1DShadow sampler@0x8e8aa0)\n"
+ " (declare (in ) vec4 coord@0x8e8bc0)\n"
+ " (declare (in ) float bias@0x8e8cd0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function shadow2DProj\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DShadow sampler@0x8e7da0)\n"
+ " (declare (in ) vec4 coord@0x8e7ec0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) sampler2DShadow sampler@0x8e8eb0)\n"
+ " (declare (in ) vec4 coord@0x8e8fd0)\n"
+ " (declare (in ) float bias@0x8e90e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function dFdx\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float p@0x8e92c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 p@0x8e9670)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 p@0x8e9850)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 p@0x8e9a30)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function dFdy\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float p@0x8e9c10)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 p@0x8e9fc0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 p@0x8ea1a0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 p@0x8ea380)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ ")\n"
+ "\n"
+ "(function fwidth\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float p@0x8ea560)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 p@0x8ea910)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
- " (signature uvec4\n"
- " (parameters\n"
- " (declare (in) usampler1D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 p@0x8eaaf0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 p@0x8eacd0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
- " (signature ivec4\n"
- " (parameters\n"
- " (declare (in) isampler2D sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
+ ")\n"
"\n"
- " (signature uvec4\n"
- " (parameters\n"
- " (declare (in) usampler2D sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
+ "(function noise1\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8eaeb0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) sampler2D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8eb260)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
- " (signature ivec4\n"
- " (parameters\n"
- " (declare (in) isampler2D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8eb440)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
- " (signature uvec4\n"
- " (parameters\n"
- " (declare (in) usampler2D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+ " (signature float\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8eb620)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) sampler3D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+ ")\n"
"\n"
- " (signature ivec4\n"
- " (parameters\n"
- " (declare (in) isampler3D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+ "(function noise2\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8eb800)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
- " (signature uvec4\n"
- " (parameters\n"
- " (declare (in) usampler3D sampler)\n"
- " (declare (in) vec4 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8ebbb0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
- "))\n"
-};
-
-static const char *functions_for_130_fs [] = {
- builtins_130_fs_texture,
- builtins_130_fs_textureProj,
-};
-
-/* ARB_texture_rectangle builtins */
-
-static const char *builtins_ARB_texture_rectangle_textures = {
- "((function texture2DRect\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) sampler2DRect sampler)\n"
- " (declare (in) vec2 P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8ebd90)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
+ "\n"
+ " (signature vec2\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8ebf70)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
")\n"
- " (function shadow2DRect\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) sampler2DRectShadow sampler)\n"
- " (declare (in) vec3 P) )\n"
- " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
"\n"
- "))\n"
-};
-
-static const char *functions_for_ARB_texture_rectangle [] = {
- builtins_ARB_texture_rectangle_textures,
-};
-
-/* EXT_texture_array builtins */
-
-static const char *builtins_EXT_texture_array_textures = {
- "((function texture1DArray\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) sampler1DArray sampler)\n"
- " (declare (in) vec2 P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ "(function noise3\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8ec150)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
- ")\n"
- " (function texture1DArrayLod\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) sampler1DArray sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8ec500)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
- ")\n"
- " (function texture2DArray\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) sampler2DArray sampler)\n"
- " (declare (in) vec3 P) )\n"
- " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8ec6e0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
- ")\n"
- " (function texture2DArrayLod\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) sampler2DArray sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+ " (signature vec3\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8ec8c0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
")\n"
- " (function shadow1DArray\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) sampler1DArrayShadow sampler)\n"
- " (declare (in) vec3 P) )\n"
- " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
"\n"
- ")\n"
- " (function shadow1DArrayLod\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) sampler1DArrayShadow sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float lod) )\n"
- " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))\n"
+ "(function noise4\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) float x@0x8ecaa0)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
- ")\n"
- " (function shadow2DArray\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) sampler2DArrayShadow sampler)\n"
- " (declare (in) vec4 P) )\n"
- " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) 1 (swiz w (var_ref P)) ))))\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec2 x@0x8ece50)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
- "))\n"
-};
-
-static const char *functions_for_EXT_texture_array [] = {
- builtins_EXT_texture_array_textures,
-};
-
-/* EXT_texture_array_fs builtins */
-
-static const char *builtins_EXT_texture_array_fs_textures = {
- "((function texture1DArray\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) sampler1DArray sampler)\n"
- " (declare (in) vec2 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec3 x@0x8ed030)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
- ")\n"
- " (function texture2DArray\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) sampler2DArray sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+ " (signature vec4\n"
+ " (parameters\n"
+ " (declare (in ) vec4 x@0x8ed210)\n"
+ " )\n"
+ " (\n"
+ " ))\n"
"\n"
")\n"
- " (function shadow1DArray\n"
- " (signature vec4\n"
- " (parameters\n"
- " (declare (in) sampler1DArrayShadow sampler)\n"
- " (declare (in) vec3 P) \n"
- " (declare (in) float bias) )\n"
- " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))\n"
"\n"
- "))\n"
-};
-
-static const char *functions_for_EXT_texture_array_fs [] = {
- builtins_EXT_texture_array_fs_textures,
+ "\n"
+ ")"
+;
+static const char *functions_for_120_frag [] = {
+ builtin_clamp,
+ builtin_matrixCompMult,
+ builtin_noise2,
+ builtin_pow,
+ builtin_texture2DProj,
+ builtin_fwidth,
+ builtin_greaterThanEqual,
+ builtin_sign,
+ builtin_texture3DProj,
+ builtin_texture2D,
+ builtin_equal,
+ builtin_faceforward,
+ builtin_tan,
+ builtin_any,
+ builtin_shadow1DProj,
+ builtin_normalize,
+ builtin_asin,
+ builtin_texture1DProj,
+ builtin_log,
+ builtin_floor,
+ builtin_exp2,
+ builtin_lessThan,
+ builtin_cross,
+ builtin_sqrt,
+ builtin_shadow2DProj,
+ builtin_fract,
+ builtin_abs,
+ builtin_degrees,
+ builtin_dFdx,
+ builtin_sin,
+ builtin_shadow2D,
+ builtin_all,
+ builtin_log2,
+ builtin_atan,
+ builtin_notEqual,
+ builtin_max,
+ builtin_lessThanEqual,
+ builtin_transpose,
+ builtin_outerProduct,
+ builtin_ceil,
+ builtin_reflect,
+ builtin_step,
+ builtin_texture1D,
+ builtin_greaterThan,
+ builtin_texture3D,
+ builtin_not,
+ builtin_inversesqrt,
+ builtin_mod,
+ builtin_noise4,
+ builtin_distance,
+ builtin_cos,
+ builtin_shadow1D,
+ builtin_noise1,
+ builtin_refract,
+ builtin_noise3,
+ builtin_min,
+ builtin_radians,
+ builtin_smoothstep,
+ builtin_textureCube,
+ builtin_length,
+ builtin_dFdy,
+ builtin_exp,
+ builtin_acos,
+ builtin_mix,
+ builtin_dot,
};
void *builtin_mem_ctx = NULL;
void
_mesa_glsl_initialize_functions(exec_list *instructions,
- struct _mesa_glsl_parse_state *state)
+ struct _mesa_glsl_parse_state *state)
{
if (builtin_mem_ctx == NULL)
builtin_mem_ctx = talloc_init("GLSL built-in functions");
state->num_builtins_to_link = 0;
- if (state->language_version >= 110) {
- static gl_shader *sh = NULL;
-
- if (sh == NULL) {
- sh = read_builtins(GL_VERTEX_SHADER, functions_for_110,
- Elements(functions_for_110));
- talloc_steal(builtin_mem_ctx, sh);
- }
-
- import_prototypes(sh->ir, instructions, state->symbols, state);
- state->builtins_to_link[state->num_builtins_to_link] = sh;
- state->num_builtins_to_link++;
- }
- if (state->target == fragment_shader && state->language_version >= 110) {
+ if (state->target == vertex_shader && state->language_version == 120) {
static gl_shader *sh = NULL;
-
if (sh == NULL) {
- sh = read_builtins(GL_VERTEX_SHADER, functions_for_110_fs,
- Elements(functions_for_110_fs));
- talloc_steal(builtin_mem_ctx, sh);
+ sh = read_builtins(GL_VERTEX_SHADER,
+ prototypes_for_120_vert,
+ functions_for_120_vert,
+ Elements(functions_for_120_vert ));
+ talloc_steal(builtin_mem_ctx, sh);
}
- import_prototypes(sh->ir, instructions, state->symbols, state);
+ import_prototypes(sh->ir, instructions, state->symbols,
+ state);
state->builtins_to_link[state->num_builtins_to_link] = sh;
state->num_builtins_to_link++;
}
- if (state->target == vertex_shader && state->language_version >= 110) {
+ if (state->target == fragment_shader && state->EXT_texture_array_enable) {
static gl_shader *sh = NULL;
-
if (sh == NULL) {
- sh = read_builtins(GL_VERTEX_SHADER, functions_for_110_vs,
- Elements(functions_for_110_vs));
- talloc_steal(builtin_mem_ctx, sh);
+ sh = read_builtins(GL_VERTEX_SHADER,
+ prototypes_for_EXT_texture_array_frag,
+ functions_for_EXT_texture_array_frag,
+ Elements(functions_for_EXT_texture_array_frag ));
+ talloc_steal(builtin_mem_ctx, sh);
}
- import_prototypes(sh->ir, instructions, state->symbols, state);
+ import_prototypes(sh->ir, instructions, state->symbols,
+ state);
state->builtins_to_link[state->num_builtins_to_link] = sh;
state->num_builtins_to_link++;
}
- if (state->language_version >= 120) {
+ if (state->target == vertex_shader && state->language_version == 110) {
static gl_shader *sh = NULL;
-
if (sh == NULL) {
- sh = read_builtins(GL_VERTEX_SHADER, functions_for_120,
- Elements(functions_for_120));
- talloc_steal(builtin_mem_ctx, sh);
+ sh = read_builtins(GL_VERTEX_SHADER,
+ prototypes_for_110_vert,
+ functions_for_110_vert,
+ Elements(functions_for_110_vert ));
+ talloc_steal(builtin_mem_ctx, sh);
}
- import_prototypes(sh->ir, instructions, state->symbols, state);
+ import_prototypes(sh->ir, instructions, state->symbols,
+ state);
state->builtins_to_link[state->num_builtins_to_link] = sh;
state->num_builtins_to_link++;
}
- if (state->language_version >= 130) {
+ if (state->target == fragment_shader && state->language_version == 110) {
static gl_shader *sh = NULL;
-
if (sh == NULL) {
- sh = read_builtins(GL_VERTEX_SHADER, functions_for_130,
- Elements(functions_for_130));
- talloc_steal(builtin_mem_ctx, sh);
+ sh = read_builtins(GL_VERTEX_SHADER,
+ prototypes_for_110_frag,
+ functions_for_110_frag,
+ Elements(functions_for_110_frag ));
+ talloc_steal(builtin_mem_ctx, sh);
}
- import_prototypes(sh->ir, instructions, state->symbols, state);
+ import_prototypes(sh->ir, instructions, state->symbols,
+ state);
state->builtins_to_link[state->num_builtins_to_link] = sh;
state->num_builtins_to_link++;
}
- if (state->target == fragment_shader && state->language_version >= 130) {
+ if (state->target == vertex_shader && state->EXT_texture_array_enable) {
static gl_shader *sh = NULL;
-
if (sh == NULL) {
- sh = read_builtins(GL_VERTEX_SHADER, functions_for_130_fs,
- Elements(functions_for_130_fs));
- talloc_steal(builtin_mem_ctx, sh);
+ sh = read_builtins(GL_VERTEX_SHADER,
+ prototypes_for_EXT_texture_array_vert,
+ functions_for_EXT_texture_array_vert,
+ Elements(functions_for_EXT_texture_array_vert ));
+ talloc_steal(builtin_mem_ctx, sh);
}
- import_prototypes(sh->ir, instructions, state->symbols, state);
+ import_prototypes(sh->ir, instructions, state->symbols,
+ state);
state->builtins_to_link[state->num_builtins_to_link] = sh;
state->num_builtins_to_link++;
}
- if (state->ARB_texture_rectangle_enable) {
+ if (state->target == vertex_shader && state->ARB_texture_rectangle_enable) {
static gl_shader *sh = NULL;
-
if (sh == NULL) {
- sh = read_builtins(GL_VERTEX_SHADER, functions_for_ARB_texture_rectangle,
- Elements(functions_for_ARB_texture_rectangle));
- talloc_steal(builtin_mem_ctx, sh);
+ sh = read_builtins(GL_VERTEX_SHADER,
+ prototypes_for_ARB_texture_rectangle_vert,
+ functions_for_ARB_texture_rectangle_vert,
+ Elements(functions_for_ARB_texture_rectangle_vert ));
+ talloc_steal(builtin_mem_ctx, sh);
}
- import_prototypes(sh->ir, instructions, state->symbols, state);
+ import_prototypes(sh->ir, instructions, state->symbols,
+ state);
state->builtins_to_link[state->num_builtins_to_link] = sh;
state->num_builtins_to_link++;
}
- if (state->EXT_texture_array_enable) {
+ if (state->target == fragment_shader && state->ARB_texture_rectangle_enable) {
static gl_shader *sh = NULL;
-
if (sh == NULL) {
- sh = read_builtins(GL_VERTEX_SHADER, functions_for_EXT_texture_array,
- Elements(functions_for_EXT_texture_array));
- talloc_steal(builtin_mem_ctx, sh);
+ sh = read_builtins(GL_VERTEX_SHADER,
+ prototypes_for_ARB_texture_rectangle_frag,
+ functions_for_ARB_texture_rectangle_frag,
+ Elements(functions_for_ARB_texture_rectangle_frag ));
+ talloc_steal(builtin_mem_ctx, sh);
}
- import_prototypes(sh->ir, instructions, state->symbols, state);
+ import_prototypes(sh->ir, instructions, state->symbols,
+ state);
state->builtins_to_link[state->num_builtins_to_link] = sh;
state->num_builtins_to_link++;
}
- if (state->target == fragment_shader && state->EXT_texture_array_enable) {
+ if (state->target == fragment_shader && state->language_version == 120) {
static gl_shader *sh = NULL;
-
if (sh == NULL) {
- sh = read_builtins(GL_VERTEX_SHADER, functions_for_EXT_texture_array_fs,
- Elements(functions_for_EXT_texture_array_fs));
- talloc_steal(builtin_mem_ctx, sh);
+ sh = read_builtins(GL_VERTEX_SHADER,
+ prototypes_for_120_frag,
+ functions_for_120_frag,
+ Elements(functions_for_120_frag ));
+ talloc_steal(builtin_mem_ctx, sh);
}
- import_prototypes(sh->ir, instructions, state->symbols, state);
+ import_prototypes(sh->ir, instructions, state->symbols,
+ state);
state->builtins_to_link[state->num_builtins_to_link] = sh;
state->num_builtins_to_link++;
}