From: Kenneth Graunke Date: Wed, 8 Sep 2010 06:16:26 +0000 (-0700) Subject: glsl/builtins: Simplify degenerate scalar float cases. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=84160a0454b17306e6b9bff5b6e50e54959c5680;p=mesa.git 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 --- diff --git a/src/glsl/builtins/ir/distance b/src/glsl/builtins/ir/distance index 1595bf669bb..f73f755b32b 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 89ff7f3ef12..3fc3103da16 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 be88a9830d1..02b249a57f8 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