glsl2: Implement noise[1234] built-in functions using ir_unop_noise
authorIan Romanick <ian.d.romanick@intel.com>
Thu, 2 Sep 2010 04:23:52 +0000 (21:23 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Thu, 9 Sep 2010 22:39:52 +0000 (15:39 -0700)
src/glsl/builtin_function.cpp
src/glsl/builtins/ir/noise1
src/glsl/builtins/ir/noise2
src/glsl/builtins/ir/noise3
src/glsl/builtins/ir/noise4

index 7e40cd7cc9c11a30f466a451e9a6d48216b8d5ae..05b2bc439118f1d6d23625a9a1cf2364a03da7da 100644 (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"
    ""
 ;
index eb7be3585750a5ec94b45ca7f8c50b6e6e3d5ae2..115505610a64d35809853a8e33265592778e29fb 100644 (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)))))
 ))
index ae4443a704a1a1cdc67cae865e707b1cdf71d246..008f8b00f1f5488ea45e86ed9b31b8360a8625d0 100644 (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))
+    ))
 ))
index 30d9681890e07d1e88baffd0806a789a384b9938..f191e145f9921c577a525dfe100cff6c8098d9b3 100644 (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))
+    ))
 ))
index 913bef2aa1bfae7c33b103d6d881ec4a1dbac554..fb300fd1486e86065d3291e67825f7d0ed362a47 100644 (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))
+    ))
 ))