glsl2/builtins: Use vector ops in "smoothstep."
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 2 Jul 2010 09:10:01 +0000 (02:10 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Sat, 3 Jul 2010 01:03:58 +0000 (18:03 -0700)
src/glsl/builtins/110/smoothstep

index b4255ba78f1dfd684f6d8c74d393ff502f2bc7bc..663eec63419f894fac5cac7cc4b2294d214ccd07 100644 (file)
        (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))))))
 ))