glsl2: Implement noise[1234] built-in functions using ir_unop_noise

This commit is contained in:
Ian Romanick 2010-09-01 21:23:52 -07:00
parent 2b70dbfe09
commit 1f3c7d968c
5 changed files with 458 additions and 104 deletions

View File

@ -2054,82 +2054,259 @@ static const char *builtin_noise1 =
" (signature float\n"
" (parameters\n"
" (declare (in) float x))\n"
" ((return (constant float (0)))))\n"
" ((return (expression float noise (var_ref x)))))\n"
" (signature float\n"
" (parameters\n"
" (declare (in) vec2 x))\n"
" ((return (constant float (0)))))\n"
" ((return (expression float noise (var_ref x)))))\n"
" (signature float\n"
" (parameters\n"
" (declare (in) vec3 x))\n"
" ((return (constant float (0)))))\n"
" ((return (expression float noise (var_ref x)))))\n"
" (signature float\n"
" (parameters\n"
" (declare (in) vec4 x))\n"
" ((return (constant float (0)))))\n"
" ((return (expression float noise (var_ref x)))))\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"
" (signature vec2\n"
" (parameters (declare (in) vec4 p))\n"
" (\n"
" (declare () float a)\n"
" (declare () float b)\n"
" (declare () vec2 t)\n"
"\n"
" (assign (constant bool (1)) (x) (var_ref a) (expression float noise (var_ref p)))\n"
" (assign (constant bool (1)) (x) (var_ref b) (expression float noise (expression vec4 + (var_ref p) (constant vec4 (601.0 313.0 29.0 277.0)))))\n"
" (assign (constant bool (1)) (x) (var_ref t) (swiz xx (var_ref a)))\n"
" (assign (constant bool (1)) (y) (var_ref t) (swiz xx (var_ref b)))\n"
" (return (var_ref t))\n"
" ))\n"
"\n"
" (signature vec2\n"
" (parameters (declare (in) vec3 p))\n"
" (\n"
" (declare () float a)\n"
" (declare () float b)\n"
" (declare () vec2 t)\n"
"\n"
" (assign (constant bool (1)) (x) (var_ref a) (expression float noise (var_ref p)))\n"
" (assign (constant bool (1)) (x) (var_ref b) (expression float noise (expression vec3 + (var_ref p) (constant vec3 (601.0 313.0 29.0)))))\n"
" (assign (constant bool (1)) (x) (var_ref t) (swiz xx (var_ref a)))\n"
" (assign (constant bool (1)) (y) (var_ref t) (swiz xx (var_ref b)))\n"
" (return (var_ref t))\n"
" ))\n"
"\n"
" (signature vec2\n"
" (parameters\n"
" (declare (in ) vec2 p)\n"
" )\n"
" (\n"
" (declare () float a)\n"
" (declare () float b)\n"
" (declare () vec2 t)\n"
"\n"
" (assign (constant bool (1)) (x) (var_ref a) (expression float noise (var_ref p)))\n"
" (assign (constant bool (1)) (x) (var_ref b) (expression float noise (expression vec2 + (var_ref p) (constant vec2 (601.0 313.0)))))\n"
" (assign (constant bool (1)) (x) (var_ref t) (swiz xx (var_ref a)))\n"
" (assign (constant bool (1)) (y) (var_ref t) (swiz xx (var_ref b)))\n"
" (return (var_ref t))\n"
" ))\n"
"\n"
" (signature vec2\n"
" (parameters\n"
" (declare (in ) float p)\n"
" )\n"
" (\n"
" (declare () float a)\n"
" (declare () float b)\n"
" (declare () vec2 t)\n"
"\n"
" (assign (constant bool (1)) (x) (var_ref a) (expression float noise (var_ref p)))\n"
" (assign (constant bool (1)) (x) (var_ref b) (expression float noise (expression float + (var_ref p) (constant float (601.0)))))\n"
" (assign (constant bool (1)) (x) (var_ref t) (swiz xx (var_ref a)))\n"
" (assign (constant bool (1)) (y) (var_ref t) (swiz xx (var_ref b)))\n"
" (return (var_ref t))\n"
" ))\n"
"))\n"
""
;
static const char *builtin_noise3 =
"((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"
" (parameters\n"
" (declare (in) vec4 x))\n"
" ((return (constant vec3 (0 0 0)))))\n"
" (signature vec3\n"
" (parameters (declare (in) vec4 p))\n"
" (\n"
" (declare () float a)\n"
" (declare () float b)\n"
" (declare () float c)\n"
" (declare () vec3 t)\n"
"\n"
" (assign (constant bool (1)) (x) (var_ref a) (expression float noise (var_ref p)))\n"
" (assign (constant bool (1)) (x) (var_ref b) (expression float noise (expression vec4 + (var_ref p) (constant vec4 (601.0 313.0 29.0 277.0)))))\n"
" (assign (constant bool (1)) (x) (var_ref c) (expression float noise (expression vec4 + (var_ref p) (constant vec4 (1559.0 113.0 1861.0 797.0)))))\n"
"\n"
" (assign (constant bool (1)) (x) (var_ref t) (swiz xxx (var_ref a)))\n"
" (assign (constant bool (1)) (y) (var_ref t) (swiz xxx (var_ref b)))\n"
" (assign (constant bool (1)) (z) (var_ref t) (swiz xxx (var_ref c)))\n"
" (return (var_ref t))\n"
" ))\n"
"\n"
" (signature vec3\n"
" (parameters (declare (in) vec3 p))\n"
" (\n"
" (declare () float a)\n"
" (declare () float b)\n"
" (declare () float c)\n"
" (declare () vec3 t)\n"
"\n"
" (assign (constant bool (1)) (x) (var_ref a) (expression float noise (var_ref p)))\n"
" (assign (constant bool (1)) (x) (var_ref b) (expression float noise (expression vec3 + (var_ref p) (constant vec3 (601.0 313.0 29.0)))))\n"
" (assign (constant bool (1)) (x) (var_ref c) (expression float noise (expression vec3 + (var_ref p) (constant vec3 (1559.0 113.0 1861.0)))))\n"
"\n"
" (assign (constant bool (1)) (x) (var_ref t) (swiz xxx (var_ref a)))\n"
" (assign (constant bool (1)) (y) (var_ref t) (swiz xxx (var_ref b)))\n"
" (assign (constant bool (1)) (z) (var_ref t) (swiz xxx (var_ref c)))\n"
" (return (var_ref t))\n"
" ))\n"
"\n"
" (signature vec3\n"
" (parameters (declare (in) vec2 p))\n"
" (\n"
" (declare () float a)\n"
" (declare () float b)\n"
" (declare () float c)\n"
" (declare () vec3 t)\n"
"\n"
" (assign (constant bool (1)) (x) (var_ref a) (expression float noise (var_ref p)))\n"
" (assign (constant bool (1)) (x) (var_ref b) (expression float noise (expression vec2 + (var_ref p) (constant vec2 (601.0 313.0)))))\n"
" (assign (constant bool (1)) (x) (var_ref c) (expression float noise (expression vec2 + (var_ref p) (constant vec2 (1559.0 113.0)))))\n"
"\n"
" (assign (constant bool (1)) (x) (var_ref t) (swiz xxx (var_ref a)))\n"
" (assign (constant bool (1)) (y) (var_ref t) (swiz xxx (var_ref b)))\n"
" (assign (constant bool (1)) (z) (var_ref t) (swiz xxx (var_ref c)))\n"
" (return (var_ref t))\n"
" ))\n"
"\n"
" (signature vec3\n"
" (parameters (declare (in) float p))\n"
" (\n"
" (declare () float a)\n"
" (declare () float b)\n"
" (declare () float c)\n"
" (declare () vec3 t)\n"
"\n"
" (assign (constant bool (1)) (x) (var_ref a) (expression float noise (var_ref p)))\n"
" (assign (constant bool (1)) (x) (var_ref b) (expression float noise (expression float + (var_ref p) (constant float (601.0)))))\n"
" (assign (constant bool (1)) (x) (var_ref c) (expression float noise (expression float + (var_ref p) (constant float (1559.0)))))\n"
"\n"
" (assign (constant bool (1)) (x) (var_ref t) (swiz xxx (var_ref a)))\n"
" (assign (constant bool (1)) (y) (var_ref t) (swiz xxx (var_ref b)))\n"
" (assign (constant bool (1)) (z) (var_ref t) (swiz xxx (var_ref c)))\n"
" (return (var_ref t))\n"
" ))\n"
"))\n"
""
;
static const char *builtin_noise4 =
"((function noise4\n"
" (signature vec4\n"
" (parameters\n"
" (declare (in) float x))\n"
" ((return (constant vec4 (0 0 0 0)))))\n"
" (signature vec4\n"
" (parameters\n"
" (declare (in) vec2 x))\n"
" ((return (constant vec4 (0 0 0 0)))))\n"
" (signature vec4\n"
" (parameters\n"
" (declare (in) vec3 x))\n"
" ((return (constant vec4 (0 0 0 0)))))\n"
" (signature vec4\n"
" (parameters\n"
" (declare (in) vec4 x))\n"
" ((return (constant vec4 (0 0 0 0)))))\n"
" (signature vec4\n"
" (parameters (declare (in) vec4 p))\n"
" (\n"
" (declare () float _x)\n"
" (declare () float _y)\n"
" (declare () float _z)\n"
" (declare () float _w)\n"
" (declare () vec4 _r)\n"
"\n"
" (declare () vec4 _p)\n"
" (assign (constant bool (1)) (xyzw) (var_ref _p) (expression vec4 + (var_ref p) (constant vec4 (1559.0 113.0 1861.0 797.0))) )\n"
"\n"
" (assign (constant bool (1)) (x) (var_ref _x) (expression float noise(var_ref p)))\n"
" (assign (constant bool (1)) (x) (var_ref _y) (expression float noise(expression vec4 + (var_ref p) (constant vec4 (601.0 313.0 29.0 277.0)))))\n"
" (assign (constant bool (1)) (x) (var_ref _z) (expression float noise(var_ref _p)))\n"
" (assign (constant bool (1)) (x) (var_ref _w) (expression float noise(expression vec4 + (var_ref _p) (constant vec4 (601.0 313.0 29.0 277.0)))))\n"
"\n"
" (assign (constant bool (1)) (x) (var_ref _r) (swiz xxxx (var_ref _x)))\n"
" (assign (constant bool (1)) (y) (var_ref _r) (swiz xxxx (var_ref _y)))\n"
" (assign (constant bool (1)) (z) (var_ref _r) (swiz xxxx (var_ref _z)))\n"
" (assign (constant bool (1)) (w) (var_ref _r) (swiz xxxx (var_ref _w)))\n"
" (return (var_ref _r))\n"
" ))\n"
"\n"
" (signature vec4\n"
" (parameters (declare (in) vec3 p))\n"
" (\n"
" (declare () float _x)\n"
" (declare () float _y)\n"
" (declare () float _z)\n"
" (declare () float _w)\n"
" (declare () vec4 _r)\n"
"\n"
" (declare () vec3 _p)\n"
" (assign (constant bool (1)) (xyz) (var_ref _p) (expression vec3 + (var_ref p) (constant vec3 (1559.0 113.0 1861.0))) )\n"
"\n"
" (assign (constant bool (1)) (x) (var_ref _x) (expression float noise(var_ref p)))\n"
" (assign (constant bool (1)) (x) (var_ref _y) (expression float noise(expression vec3 + (var_ref p) (constant vec3 (601.0 313.0 29.0)))))\n"
" (assign (constant bool (1)) (x) (var_ref _z) (expression float noise(var_ref _p)))\n"
" (assign (constant bool (1)) (x) (var_ref _w) (expression float noise(expression vec3 + (var_ref _p) (constant vec3 (601.0 313.0 29.0)))))\n"
"\n"
" (assign (constant bool (1)) (x) (var_ref _r) (swiz xxxx (var_ref _x)))\n"
" (assign (constant bool (1)) (y) (var_ref _r) (swiz xxxx (var_ref _y)))\n"
" (assign (constant bool (1)) (z) (var_ref _r) (swiz xxxx (var_ref _z)))\n"
" (assign (constant bool (1)) (w) (var_ref _r) (swiz xxxx (var_ref _w)))\n"
" (return (var_ref _r))\n"
" ))\n"
"\n"
" (signature vec4\n"
" (parameters (declare (in) vec2 p))\n"
" (\n"
" (declare () float _x)\n"
" (declare () float _y)\n"
" (declare () float _z)\n"
" (declare () float _w)\n"
" (declare () vec4 _r)\n"
"\n"
" (declare () vec2 _p)\n"
" (assign (constant bool (1)) (xy) (var_ref _p) (expression vec2 + (var_ref p) (constant vec2 (1559.0 113.0))) )\n"
"\n"
" (assign (constant bool (1)) (x) (var_ref _x) (expression float noise(var_ref p)))\n"
" (assign (constant bool (1)) (x) (var_ref _y) (expression float noise(expression vec2 + (var_ref p) (constant vec2 (601.0 313.0)))))\n"
" (assign (constant bool (1)) (x) (var_ref _z) (expression float noise(var_ref _p)))\n"
" (assign (constant bool (1)) (x) (var_ref _w) (expression float noise(expression vec2 + (var_ref _p) (constant vec2 (601.0 313.0)))))\n"
"\n"
" (assign (constant bool (1)) (x) (var_ref _r) (swiz xxxx (var_ref _x)))\n"
" (assign (constant bool (1)) (y) (var_ref _r) (swiz xxxx (var_ref _y)))\n"
" (assign (constant bool (1)) (z) (var_ref _r) (swiz xxxx (var_ref _z)))\n"
" (assign (constant bool (1)) (w) (var_ref _r) (swiz xxxx (var_ref _w)))\n"
" (return (var_ref _r))\n"
" ))\n"
"\n"
" (signature vec4\n"
" (parameters (declare (in) float p))\n"
" (\n"
" (declare () float _x)\n"
" (declare () float _y)\n"
" (declare () float _z)\n"
" (declare () float _w)\n"
" (declare () vec4 _r)\n"
"\n"
" (declare () float _p)\n"
" (assign (constant bool (1)) (xy) (var_ref _p) (expression float + (var_ref p) (constant float (1559.0))) )\n"
"\n"
" (assign (constant bool (1)) (x) (var_ref _x) (expression float noise(var_ref p)))\n"
" (assign (constant bool (1)) (x) (var_ref _y) (expression float noise(expression float + (var_ref p) (constant float (601.0 313.0 29.0 277.0)))))\n"
" (assign (constant bool (1)) (x) (var_ref _z) (expression float noise(var_ref _p)))\n"
" (assign (constant bool (1)) (x) (var_ref _w) (expression float noise(expression float + (var_ref _p) (constant float (601.0 313.0 29.0 277.0)))))\n"
"\n"
" (assign (constant bool (1)) (x) (var_ref _r) (swiz xxxx (var_ref _x)))\n"
" (assign (constant bool (1)) (y) (var_ref _r) (swiz xxxx (var_ref _y)))\n"
" (assign (constant bool (1)) (z) (var_ref _r) (swiz xxxx (var_ref _z)))\n"
" (assign (constant bool (1)) (w) (var_ref _r) (swiz xxxx (var_ref _w)))\n"
" (return (var_ref _r))\n"
" ))\n"
"))\n"
""
;

View File

@ -2,17 +2,17 @@
(signature float
(parameters
(declare (in) float x))
((return (constant float (0)))))
((return (expression float noise (var_ref x)))))
(signature float
(parameters
(declare (in) vec2 x))
((return (constant float (0)))))
((return (expression float noise (var_ref x)))))
(signature float
(parameters
(declare (in) vec3 x))
((return (constant float (0)))))
((return (expression float noise (var_ref x)))))
(signature float
(parameters
(declare (in) vec4 x))
((return (constant float (0)))))
((return (expression float noise (var_ref x)))))
))

View File

@ -1,18 +1,61 @@
((function noise2
(signature vec2
(parameters
(declare (in) float x))
((return (constant vec2 (0 0)))))
(signature vec2
(parameters
(declare (in) vec2 x))
((return (constant vec2 (0 0)))))
(signature vec2
(parameters
(declare (in) vec3 x))
((return (constant vec2 (0 0)))))
(signature vec2
(parameters
(declare (in) vec4 x))
((return (constant vec2 (0 0)))))
(signature vec2
(parameters (declare (in) vec4 p))
(
(declare () float a)
(declare () float b)
(declare () vec2 t)
(assign (constant bool (1)) (x) (var_ref a) (expression float noise (var_ref p)))
(assign (constant bool (1)) (x) (var_ref b) (expression float noise (expression vec4 + (var_ref p) (constant vec4 (601.0 313.0 29.0 277.0)))))
(assign (constant bool (1)) (x) (var_ref t) (swiz xx (var_ref a)))
(assign (constant bool (1)) (y) (var_ref t) (swiz xx (var_ref b)))
(return (var_ref t))
))
(signature vec2
(parameters (declare (in) vec3 p))
(
(declare () float a)
(declare () float b)
(declare () vec2 t)
(assign (constant bool (1)) (x) (var_ref a) (expression float noise (var_ref p)))
(assign (constant bool (1)) (x) (var_ref b) (expression float noise (expression vec3 + (var_ref p) (constant vec3 (601.0 313.0 29.0)))))
(assign (constant bool (1)) (x) (var_ref t) (swiz xx (var_ref a)))
(assign (constant bool (1)) (y) (var_ref t) (swiz xx (var_ref b)))
(return (var_ref t))
))
(signature vec2
(parameters
(declare (in ) vec2 p)
)
(
(declare () float a)
(declare () float b)
(declare () vec2 t)
(assign (constant bool (1)) (x) (var_ref a) (expression float noise (var_ref p)))
(assign (constant bool (1)) (x) (var_ref b) (expression float noise (expression vec2 + (var_ref p) (constant vec2 (601.0 313.0)))))
(assign (constant bool (1)) (x) (var_ref t) (swiz xx (var_ref a)))
(assign (constant bool (1)) (y) (var_ref t) (swiz xx (var_ref b)))
(return (var_ref t))
))
(signature vec2
(parameters
(declare (in ) float p)
)
(
(declare () float a)
(declare () float b)
(declare () vec2 t)
(assign (constant bool (1)) (x) (var_ref a) (expression float noise (var_ref p)))
(assign (constant bool (1)) (x) (var_ref b) (expression float noise (expression float + (var_ref p) (constant float (601.0)))))
(assign (constant bool (1)) (x) (var_ref t) (swiz xx (var_ref a)))
(assign (constant bool (1)) (y) (var_ref t) (swiz xx (var_ref b)))
(return (var_ref t))
))
))

View File

@ -1,18 +1,73 @@
((function noise3
(signature vec3
(parameters
(declare (in) float x))
((return (constant vec3 (0 0 0)))))
(signature vec3
(parameters
(declare (in) vec2 x))
((return (constant vec3 (0 0 0)))))
(signature vec3
(parameters
(declare (in) vec3 x))
((return (constant vec3 (0 0 0)))))
(signature vec3
(parameters
(declare (in) vec4 x))
((return (constant vec3 (0 0 0)))))
(signature vec3
(parameters (declare (in) vec4 p))
(
(declare () float a)
(declare () float b)
(declare () float c)
(declare () vec3 t)
(assign (constant bool (1)) (x) (var_ref a) (expression float noise (var_ref p)))
(assign (constant bool (1)) (x) (var_ref b) (expression float noise (expression vec4 + (var_ref p) (constant vec4 (601.0 313.0 29.0 277.0)))))
(assign (constant bool (1)) (x) (var_ref c) (expression float noise (expression vec4 + (var_ref p) (constant vec4 (1559.0 113.0 1861.0 797.0)))))
(assign (constant bool (1)) (x) (var_ref t) (swiz xxx (var_ref a)))
(assign (constant bool (1)) (y) (var_ref t) (swiz xxx (var_ref b)))
(assign (constant bool (1)) (z) (var_ref t) (swiz xxx (var_ref c)))
(return (var_ref t))
))
(signature vec3
(parameters (declare (in) vec3 p))
(
(declare () float a)
(declare () float b)
(declare () float c)
(declare () vec3 t)
(assign (constant bool (1)) (x) (var_ref a) (expression float noise (var_ref p)))
(assign (constant bool (1)) (x) (var_ref b) (expression float noise (expression vec3 + (var_ref p) (constant vec3 (601.0 313.0 29.0)))))
(assign (constant bool (1)) (x) (var_ref c) (expression float noise (expression vec3 + (var_ref p) (constant vec3 (1559.0 113.0 1861.0)))))
(assign (constant bool (1)) (x) (var_ref t) (swiz xxx (var_ref a)))
(assign (constant bool (1)) (y) (var_ref t) (swiz xxx (var_ref b)))
(assign (constant bool (1)) (z) (var_ref t) (swiz xxx (var_ref c)))
(return (var_ref t))
))
(signature vec3
(parameters (declare (in) vec2 p))
(
(declare () float a)
(declare () float b)
(declare () float c)
(declare () vec3 t)
(assign (constant bool (1)) (x) (var_ref a) (expression float noise (var_ref p)))
(assign (constant bool (1)) (x) (var_ref b) (expression float noise (expression vec2 + (var_ref p) (constant vec2 (601.0 313.0)))))
(assign (constant bool (1)) (x) (var_ref c) (expression float noise (expression vec2 + (var_ref p) (constant vec2 (1559.0 113.0)))))
(assign (constant bool (1)) (x) (var_ref t) (swiz xxx (var_ref a)))
(assign (constant bool (1)) (y) (var_ref t) (swiz xxx (var_ref b)))
(assign (constant bool (1)) (z) (var_ref t) (swiz xxx (var_ref c)))
(return (var_ref t))
))
(signature vec3
(parameters (declare (in) float p))
(
(declare () float a)
(declare () float b)
(declare () float c)
(declare () vec3 t)
(assign (constant bool (1)) (x) (var_ref a) (expression float noise (var_ref p)))
(assign (constant bool (1)) (x) (var_ref b) (expression float noise (expression float + (var_ref p) (constant float (601.0)))))
(assign (constant bool (1)) (x) (var_ref c) (expression float noise (expression float + (var_ref p) (constant float (1559.0)))))
(assign (constant bool (1)) (x) (var_ref t) (swiz xxx (var_ref a)))
(assign (constant bool (1)) (y) (var_ref t) (swiz xxx (var_ref b)))
(assign (constant bool (1)) (z) (var_ref t) (swiz xxx (var_ref c)))
(return (var_ref t))
))
))

View File

@ -1,18 +1,97 @@
((function noise4
(signature vec4
(parameters
(declare (in) float x))
((return (constant vec4 (0 0 0 0)))))
(signature vec4
(parameters
(declare (in) vec2 x))
((return (constant vec4 (0 0 0 0)))))
(signature vec4
(parameters
(declare (in) vec3 x))
((return (constant vec4 (0 0 0 0)))))
(signature vec4
(parameters
(declare (in) vec4 x))
((return (constant vec4 (0 0 0 0)))))
(signature vec4
(parameters (declare (in) vec4 p))
(
(declare () float _x)
(declare () float _y)
(declare () float _z)
(declare () float _w)
(declare () vec4 _r)
(declare () vec4 _p)
(assign (constant bool (1)) (xyzw) (var_ref _p) (expression vec4 + (var_ref p) (constant vec4 (1559.0 113.0 1861.0 797.0))) )
(assign (constant bool (1)) (x) (var_ref _x) (expression float noise(var_ref p)))
(assign (constant bool (1)) (x) (var_ref _y) (expression float noise(expression vec4 + (var_ref p) (constant vec4 (601.0 313.0 29.0 277.0)))))
(assign (constant bool (1)) (x) (var_ref _z) (expression float noise(var_ref _p)))
(assign (constant bool (1)) (x) (var_ref _w) (expression float noise(expression vec4 + (var_ref _p) (constant vec4 (601.0 313.0 29.0 277.0)))))
(assign (constant bool (1)) (x) (var_ref _r) (swiz xxxx (var_ref _x)))
(assign (constant bool (1)) (y) (var_ref _r) (swiz xxxx (var_ref _y)))
(assign (constant bool (1)) (z) (var_ref _r) (swiz xxxx (var_ref _z)))
(assign (constant bool (1)) (w) (var_ref _r) (swiz xxxx (var_ref _w)))
(return (var_ref _r))
))
(signature vec4
(parameters (declare (in) vec3 p))
(
(declare () float _x)
(declare () float _y)
(declare () float _z)
(declare () float _w)
(declare () vec4 _r)
(declare () vec3 _p)
(assign (constant bool (1)) (xyz) (var_ref _p) (expression vec3 + (var_ref p) (constant vec3 (1559.0 113.0 1861.0))) )
(assign (constant bool (1)) (x) (var_ref _x) (expression float noise(var_ref p)))
(assign (constant bool (1)) (x) (var_ref _y) (expression float noise(expression vec3 + (var_ref p) (constant vec3 (601.0 313.0 29.0)))))
(assign (constant bool (1)) (x) (var_ref _z) (expression float noise(var_ref _p)))
(assign (constant bool (1)) (x) (var_ref _w) (expression float noise(expression vec3 + (var_ref _p) (constant vec3 (601.0 313.0 29.0)))))
(assign (constant bool (1)) (x) (var_ref _r) (swiz xxxx (var_ref _x)))
(assign (constant bool (1)) (y) (var_ref _r) (swiz xxxx (var_ref _y)))
(assign (constant bool (1)) (z) (var_ref _r) (swiz xxxx (var_ref _z)))
(assign (constant bool (1)) (w) (var_ref _r) (swiz xxxx (var_ref _w)))
(return (var_ref _r))
))
(signature vec4
(parameters (declare (in) vec2 p))
(
(declare () float _x)
(declare () float _y)
(declare () float _z)
(declare () float _w)
(declare () vec4 _r)
(declare () vec2 _p)
(assign (constant bool (1)) (xy) (var_ref _p) (expression vec2 + (var_ref p) (constant vec2 (1559.0 113.0))) )
(assign (constant bool (1)) (x) (var_ref _x) (expression float noise(var_ref p)))
(assign (constant bool (1)) (x) (var_ref _y) (expression float noise(expression vec2 + (var_ref p) (constant vec2 (601.0 313.0)))))
(assign (constant bool (1)) (x) (var_ref _z) (expression float noise(var_ref _p)))
(assign (constant bool (1)) (x) (var_ref _w) (expression float noise(expression vec2 + (var_ref _p) (constant vec2 (601.0 313.0)))))
(assign (constant bool (1)) (x) (var_ref _r) (swiz xxxx (var_ref _x)))
(assign (constant bool (1)) (y) (var_ref _r) (swiz xxxx (var_ref _y)))
(assign (constant bool (1)) (z) (var_ref _r) (swiz xxxx (var_ref _z)))
(assign (constant bool (1)) (w) (var_ref _r) (swiz xxxx (var_ref _w)))
(return (var_ref _r))
))
(signature vec4
(parameters (declare (in) float p))
(
(declare () float _x)
(declare () float _y)
(declare () float _z)
(declare () float _w)
(declare () vec4 _r)
(declare () float _p)
(assign (constant bool (1)) (xy) (var_ref _p) (expression float + (var_ref p) (constant float (1559.0))) )
(assign (constant bool (1)) (x) (var_ref _x) (expression float noise(var_ref p)))
(assign (constant bool (1)) (x) (var_ref _y) (expression float noise(expression float + (var_ref p) (constant float (601.0 313.0 29.0 277.0)))))
(assign (constant bool (1)) (x) (var_ref _z) (expression float noise(var_ref _p)))
(assign (constant bool (1)) (x) (var_ref _w) (expression float noise(expression float + (var_ref _p) (constant float (601.0 313.0 29.0 277.0)))))
(assign (constant bool (1)) (x) (var_ref _r) (swiz xxxx (var_ref _x)))
(assign (constant bool (1)) (y) (var_ref _r) (swiz xxxx (var_ref _y)))
(assign (constant bool (1)) (z) (var_ref _r) (swiz xxxx (var_ref _z)))
(assign (constant bool (1)) (w) (var_ref _r) (swiz xxxx (var_ref _w)))
(return (var_ref _r))
))
))