diff options
author | Ian Romanick <[email protected]> | 2010-09-01 21:23:52 -0700 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2010-09-09 15:39:52 -0700 |
commit | 1f3c7d968c4313dbb71bc93306556cc9292d06ef (patch) | |
tree | b596827a1cb1f9c797457603f521fd185a9dc044 /src/glsl/builtins/ir | |
parent | 2b70dbfe091af5ae7c788e16275e1af2cb1c284c (diff) |
glsl2: Implement noise[1234] built-in functions using ir_unop_noise
Diffstat (limited to 'src/glsl/builtins/ir')
-rw-r--r-- | src/glsl/builtins/ir/noise1 | 8 | ||||
-rw-r--r-- | src/glsl/builtins/ir/noise2 | 75 | ||||
-rw-r--r-- | src/glsl/builtins/ir/noise3 | 87 | ||||
-rw-r--r-- | src/glsl/builtins/ir/noise4 | 111 |
4 files changed, 229 insertions, 52 deletions
diff --git a/src/glsl/builtins/ir/noise1 b/src/glsl/builtins/ir/noise1 index eb7be358575..115505610a6 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 ae4443a704a..008f8b00f1f 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 30d9681890e..f191e145f99 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 913bef2aa1b..fb300fd1486 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)) + )) )) |