summaryrefslogtreecommitdiff
path: root/src/glsl/builtins
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2010-09-01 21:23:52 -0700
committerIan Romanick <ian.d.romanick@intel.com>2010-09-09 15:39:52 -0700
commit1f3c7d968c4313dbb71bc93306556cc9292d06ef (patch)
treeb596827a1cb1f9c797457603f521fd185a9dc044 /src/glsl/builtins
parent2b70dbfe091af5ae7c788e16275e1af2cb1c284c (diff)
glsl2: Implement noise[1234] built-in functions using ir_unop_noise
Diffstat (limited to 'src/glsl/builtins')
-rw-r--r--src/glsl/builtins/ir/noise18
-rw-r--r--src/glsl/builtins/ir/noise275
-rw-r--r--src/glsl/builtins/ir/noise387
-rw-r--r--src/glsl/builtins/ir/noise4111
4 files changed, 229 insertions, 52 deletions
diff --git a/src/glsl/builtins/ir/noise1 b/src/glsl/builtins/ir/noise1
index eb7be35857..115505610a 100644
--- a/src/glsl/builtins/ir/noise1
+++ b/src/glsl/builtins/ir/noise1
@@ -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)))))
))
diff --git a/src/glsl/builtins/ir/noise2 b/src/glsl/builtins/ir/noise2
index ae4443a704..008f8b00f1 100644
--- a/src/glsl/builtins/ir/noise2
+++ b/src/glsl/builtins/ir/noise2
@@ -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))
+ ))
))
diff --git a/src/glsl/builtins/ir/noise3 b/src/glsl/builtins/ir/noise3
index 30d9681890..f191e145f9 100644
--- a/src/glsl/builtins/ir/noise3
+++ b/src/glsl/builtins/ir/noise3
@@ -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))
+ ))
))
diff --git a/src/glsl/builtins/ir/noise4 b/src/glsl/builtins/ir/noise4
index 913bef2aa1..fb300fd148 100644
--- a/src/glsl/builtins/ir/noise4
+++ b/src/glsl/builtins/ir/noise4
@@ -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))
+ ))
))