Mesa (glsl2): glsl2/builtins: Use vector ops in "smoothstep."

Ian Romanick idr at kemper.freedesktop.org
Sat Jul 3 01:59:39 UTC 2010


Module: Mesa
Branch: glsl2
Commit: 9a7ac272fb7d87e56277ed88585f389446a4a1b9
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9a7ac272fb7d87e56277ed88585f389446a4a1b9

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Fri Jul  2 02:10:01 2010 -0700

glsl2/builtins: Use vector ops in "smoothstep."

---

 src/glsl/builtins/110/smoothstep |  101 ++++++--------------------------------
 1 files changed, 15 insertions(+), 86 deletions(-)

diff --git a/src/glsl/builtins/110/smoothstep b/src/glsl/builtins/110/smoothstep
index b4255ba..663eec6 100644
--- a/src/glsl/builtins/110/smoothstep
+++ b/src/glsl/builtins/110/smoothstep
@@ -122,103 +122,32 @@
        (declare (in) vec2 edge0)
        (declare (in) vec2 edge1)
        (declare (in) vec2 x))
-     ((declare () vec2 t)
-      (declare () vec2 retval)
-
-      (assign (constant bool (1)) (swiz x (var_ref t))
-              (expression float max
-	                  (expression float min
-	                              (expression float / (expression float - (swiz x (var_ref x)) (swiz x (var_ref edge0))) (expression float - (swiz x (var_ref edge1)) (swiz x (var_ref edge0))))
-	                              (constant float (1.0)))
-	                  (constant float (0.0))))
-      (assign (constant bool (1)) (swiz x (var_ref retval)) (expression float * (swiz x (var_ref t)) (expression float * (swiz x (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz x (var_ref t)))))))
-
-      (assign (constant bool (1)) (swiz y (var_ref t))
-              (expression float max
-	                  (expression float min
-	                              (expression float / (expression float - (swiz y (var_ref x)) (swiz y (var_ref edge0))) (expression float - (swiz y (var_ref edge1)) (swiz y (var_ref edge0))))
-	                              (constant float (1.0)))
-	                  (constant float (0.0))))
-      (assign (constant bool (1)) (swiz y (var_ref retval)) (expression float * (swiz y (var_ref t)) (expression float * (swiz y (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz y (var_ref t)))))))
-      (return (var_ref retval))
-      ))
+     ((return (expression vec2 max
+                          (expression vec2 min
+                                      (expression vec2 / (expression vec2 - (var_ref x) (var_ref edge0)) (expression vec2 - (var_ref edge1) (var_ref edge0)))
+                                      (constant vec2 (1.0 1.0)))
+                          (constant vec2 (0.0 0.0))))))
 
    (signature vec3
      (parameters
        (declare (in) vec3 edge0)
        (declare (in) vec3 edge1)
        (declare (in) vec3 x))
-     ((declare () vec3 t)
-      (declare () vec3 retval)
-
-      (assign (constant bool (1)) (swiz x (var_ref t))
-              (expression float max
-	                  (expression float min
-	                              (expression float / (expression float - (swiz x (var_ref x)) (swiz x (var_ref edge0))) (expression float - (swiz x (var_ref edge1)) (swiz x (var_ref edge0))))
-	                              (constant float (1.0)))
-	                  (constant float (0.0))))
-      (assign (constant bool (1)) (swiz x (var_ref retval)) (expression float * (swiz x (var_ref t)) (expression float * (swiz x (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz x (var_ref t)))))))
-
-      (assign (constant bool (1)) (swiz y (var_ref t))
-              (expression float max
-	                  (expression float min
-	                              (expression float / (expression float - (swiz y (var_ref x)) (swiz y (var_ref edge0))) (expression float - (swiz y (var_ref edge1)) (swiz y (var_ref edge0))))
-	                              (constant float (1.0)))
-	                  (constant float (0.0))))
-      (assign (constant bool (1)) (swiz y (var_ref retval)) (expression float * (swiz y (var_ref t)) (expression float * (swiz y (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz y (var_ref t)))))))
-
-      (assign (constant bool (1)) (swiz z (var_ref t))
-              (expression float max
-	                  (expression float min
-	                              (expression float / (expression float - (swiz z (var_ref x)) (swiz z (var_ref edge0))) (expression float - (swiz z (var_ref edge1)) (swiz z (var_ref edge0))))
-	                              (constant float (1.0)))
-	                  (constant float (0.0))))
-      (assign (constant bool (1)) (swiz z (var_ref retval)) (expression float * (swiz z (var_ref t)) (expression float * (swiz z (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz z (var_ref t)))))))
-      (return (var_ref retval))
-      ))
-
+     ((return (expression vec3 max
+                          (expression vec3 min
+                                      (expression vec3 / (expression vec3 - (var_ref x) (var_ref edge0)) (expression vec3 - (var_ref edge1) (var_ref edge0)))
+                                      (constant vec3 (1.0 1.0 1.0)))
+                          (constant vec3 (0.0 0.0 0.0))))))
 
    (signature vec4
      (parameters
        (declare (in) vec4 edge0)
        (declare (in) vec4 edge1)
        (declare (in) vec4 x))
-     ((declare () vec4 t)
-      (declare () vec4 retval)
-
-      (assign (constant bool (1)) (swiz x (var_ref t))
-              (expression float max
-	                  (expression float min
-	                              (expression float / (expression float - (swiz x (var_ref x)) (swiz x (var_ref edge0))) (expression float - (swiz x (var_ref edge1)) (swiz x (var_ref edge0))))
-	                              (constant float (1.0)))
-	                  (constant float (0.0))))
-      (assign (constant bool (1)) (swiz x (var_ref retval)) (expression float * (swiz x (var_ref t)) (expression float * (swiz x (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz x (var_ref t)))))))
-
-      (assign (constant bool (1)) (swiz y (var_ref t))
-              (expression float max
-	                  (expression float min
-	                              (expression float / (expression float - (swiz y (var_ref x)) (swiz y (var_ref edge0))) (expression float - (swiz y (var_ref edge1)) (swiz y (var_ref edge0))))
-	                              (constant float (1.0)))
-	                  (constant float (0.0))))
-      (assign (constant bool (1)) (swiz y (var_ref retval)) (expression float * (swiz y (var_ref t)) (expression float * (swiz y (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz y (var_ref t)))))))
-
-      (assign (constant bool (1)) (swiz z (var_ref t))
-              (expression float max
-	                  (expression float min
-	                              (expression float / (expression float - (swiz z (var_ref x)) (swiz z (var_ref edge0))) (expression float - (swiz z (var_ref edge1)) (swiz z (var_ref edge0))))
-	                              (constant float (1.0)))
-	                  (constant float (0.0))))
-      (assign (constant bool (1)) (swiz z (var_ref retval)) (expression float * (swiz z (var_ref t)) (expression float * (swiz z (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz z (var_ref t)))))))
-
-      (assign (constant bool (1)) (swiz w (var_ref t))
-              (expression float max
-	                  (expression float min
-	                              (expression float / (expression float - (swiz w (var_ref x)) (swiz w (var_ref edge0))) (expression float - (swiz w (var_ref edge1)) (swiz w (var_ref edge0))))
-	                              (constant float (1.0)))
-	                  (constant float (0.0))))
-      (assign (constant bool (1)) (swiz w (var_ref retval)) (expression float * (swiz w (var_ref t)) (expression float * (swiz w (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz w (var_ref t)))))))
-      (return (var_ref retval))
-      ))
-
+     ((return (expression vec4 max
+                          (expression vec4 min
+                                      (expression vec4 / (expression vec4 - (var_ref x) (var_ref edge0)) (expression vec4 - (var_ref edge1) (var_ref edge0)))
+                                      (constant vec4 (1.0 1.0 1.0 1.0)))
+                          (constant vec4 (0.0 0.0 0.0 0.0))))))
 ))
 




More information about the mesa-commit mailing list