diff options
author | Kenneth Graunke <kenneth@whitecape.org> | 2010-09-07 23:16:26 -0700 |
---|---|---|
committer | Kenneth Graunke <kenneth@whitecape.org> | 2010-09-08 12:09:41 -0700 |
commit | 84160a0454b17306e6b9bff5b6e50e54959c5680 (patch) | |
tree | c97c2cdc6995552d927bb6e13aa6011b9a2623d9 /src/glsl | |
parent | 961f42c9bd795204e031ea6a31a2ae04ba2e4067 (diff) |
glsl/builtins: Simplify degenerate scalar float cases.
The code being generated was just stupid, considering that:
- normalize(x) = 1.0
- length(x) = x
- distance(x, y) = x - y
Diffstat (limited to 'src/glsl')
-rw-r--r-- | src/glsl/builtins/ir/distance | 4 | ||||
-rw-r--r-- | src/glsl/builtins/ir/length | 2 | ||||
-rw-r--r-- | src/glsl/builtins/ir/normalize | 2 |
3 files changed, 3 insertions, 5 deletions
diff --git a/src/glsl/builtins/ir/distance b/src/glsl/builtins/ir/distance index 1595bf669b..f73f755b32 100644 --- a/src/glsl/builtins/ir/distance +++ b/src/glsl/builtins/ir/distance @@ -3,9 +3,7 @@ (parameters (declare (in) float p0) (declare (in) float p1)) - ((declare () float p) - (assign (constant bool (1)) (x) (var_ref p) (expression float - (var_ref p0) (var_ref p1))) - (return (expression float sqrt (expression float dot (var_ref p) (var_ref p)))))) + ((return (expression float - (var_ref p0) (var_ref p1))))) (signature float (parameters diff --git a/src/glsl/builtins/ir/length b/src/glsl/builtins/ir/length index 89ff7f3ef1..3fc3103da1 100644 --- a/src/glsl/builtins/ir/length +++ b/src/glsl/builtins/ir/length @@ -2,7 +2,7 @@ (signature float (parameters (declare (in) float arg0)) - ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0)))))) + ((return (var_ref arg0)))) (signature float (parameters diff --git a/src/glsl/builtins/ir/normalize b/src/glsl/builtins/ir/normalize index be88a9830d..02b249a57f 100644 --- a/src/glsl/builtins/ir/normalize +++ b/src/glsl/builtins/ir/normalize @@ -2,7 +2,7 @@ (signature float (parameters (declare (in) float arg0)) - ((return (expression float * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0))))))) + ((return (constant float (1.0))))) (signature vec2 (parameters |