Mesa (glsl2): glsl2: Fix up the implementation of fract() for vector types.
Eric Anholt
anholt at kemper.freedesktop.org
Thu Jul 1 00:34:30 UTC 2010
Module: Mesa
Branch: glsl2
Commit: 4e16a7b526bb4736cd11e512009cf6532b2d1dc5
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4e16a7b526bb4736cd11e512009cf6532b2d1dc5
Author: Eric Anholt <eric at anholt.net>
Date: Wed Jun 30 15:59:07 2010 -0700
glsl2: Fix up the implementation of fract() for vector types.
There's no need to split each vector component out, just do vector ops.
---
src/glsl/builtin_function.cpp | 18 +++---------------
src/glsl/builtins/110/fract | 18 +++---------------
2 files changed, 6 insertions(+), 30 deletions(-)
diff --git a/src/glsl/builtin_function.cpp b/src/glsl/builtin_function.cpp
index d248388..626ba4e 100644
--- a/src/glsl/builtin_function.cpp
+++ b/src/glsl/builtin_function.cpp
@@ -786,29 +786,17 @@ static const char *builtins_110_fract = {
" (signature vec2\n"
" (parameters\n"
" (declare (in) vec2 x))\n"
- " ((declare () vec2 t)\n"
- " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float - (swiz x (var_ref x)) (expression float floor (swiz x (var_ref x)))))\n"
- " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float - (swiz y (var_ref x)) (expression float floor (swiz y (var_ref x)))))\n"
- " (return (var_ref t))))\n"
+ " ((return (expression vec2 - (var_ref x) (expression vec2 floor (var_ref x))))))\n"
"\n"
" (signature vec3\n"
" (parameters\n"
" (declare (in) vec3 x))\n"
- " ((declare () vec3 t)\n"
- " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float - (swiz x (var_ref x)) (expression float floor (swiz x (var_ref x)))))\n"
- " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float - (swiz y (var_ref x)) (expression float floor (swiz y (var_ref x)))))\n"
- " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float - (swiz z (var_ref x)) (expression float floor (swiz z (var_ref x)))))\n"
- " (return (var_ref t))))\n"
+ " ((return (expression vec3 - (var_ref x) (expression vec3 floor (var_ref x))))))\n"
"\n"
" (signature vec4\n"
" (parameters\n"
" (declare (in) vec4 x))\n"
- " ((declare () vec4 t)\n"
- " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float - (swiz x (var_ref x)) (expression float floor (swiz x (var_ref x)))))\n"
- " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float - (swiz y (var_ref x)) (expression float floor (swiz y (var_ref x)))))\n"
- " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float - (swiz z (var_ref x)) (expression float floor (swiz z (var_ref x)))))\n"
- " (assign (constant bool (1)) (swiz w (var_ref t)) (expression float - (swiz w (var_ref x)) (expression float floor (swiz w (var_ref x)))))\n"
- " (return (var_ref t))))\n"
+ " ((return (expression vec4 - (var_ref x) (expression vec4 floor (var_ref x))))))\n"
"))\n"
"\n"
};
diff --git a/src/glsl/builtins/110/fract b/src/glsl/builtins/110/fract
index 3995bfa..46741bb 100644
--- a/src/glsl/builtins/110/fract
+++ b/src/glsl/builtins/110/fract
@@ -7,28 +7,16 @@
(signature vec2
(parameters
(declare (in) vec2 x))
- ((declare () vec2 t)
- (assign (constant bool (1)) (swiz x (var_ref t)) (expression float - (swiz x (var_ref x)) (expression float floor (swiz x (var_ref x)))))
- (assign (constant bool (1)) (swiz y (var_ref t)) (expression float - (swiz y (var_ref x)) (expression float floor (swiz y (var_ref x)))))
- (return (var_ref t))))
+ ((return (expression vec2 - (var_ref x) (expression vec2 floor (var_ref x))))))
(signature vec3
(parameters
(declare (in) vec3 x))
- ((declare () vec3 t)
- (assign (constant bool (1)) (swiz x (var_ref t)) (expression float - (swiz x (var_ref x)) (expression float floor (swiz x (var_ref x)))))
- (assign (constant bool (1)) (swiz y (var_ref t)) (expression float - (swiz y (var_ref x)) (expression float floor (swiz y (var_ref x)))))
- (assign (constant bool (1)) (swiz z (var_ref t)) (expression float - (swiz z (var_ref x)) (expression float floor (swiz z (var_ref x)))))
- (return (var_ref t))))
+ ((return (expression vec3 - (var_ref x) (expression vec3 floor (var_ref x))))))
(signature vec4
(parameters
(declare (in) vec4 x))
- ((declare () vec4 t)
- (assign (constant bool (1)) (swiz x (var_ref t)) (expression float - (swiz x (var_ref x)) (expression float floor (swiz x (var_ref x)))))
- (assign (constant bool (1)) (swiz y (var_ref t)) (expression float - (swiz y (var_ref x)) (expression float floor (swiz y (var_ref x)))))
- (assign (constant bool (1)) (swiz z (var_ref t)) (expression float - (swiz z (var_ref x)) (expression float floor (swiz z (var_ref x)))))
- (assign (constant bool (1)) (swiz w (var_ref t)) (expression float - (swiz w (var_ref x)) (expression float floor (swiz w (var_ref x)))))
- (return (var_ref t))))
+ ((return (expression vec4 - (var_ref x) (expression vec4 floor (var_ref x))))))
))
More information about the mesa-commit
mailing list