Mesa (master): glsl: Reimplement the "cross" built-in without ir_binop_cross.
Kenneth Graunke
kwg at kemper.freedesktop.org
Wed Nov 17 22:10:30 UTC 2010
Module: Mesa
Branch: master
Commit: 671ccf593e1079d0f3e1adf42831d09da91a2b68
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=671ccf593e1079d0f3e1adf42831d09da91a2b68
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Wed Nov 17 13:20:30 2010 -0800
glsl: Reimplement the "cross" built-in without ir_binop_cross.
We are not aware of any GPU that actually implements the cross product
as a single instruction. Hence, there's no need for it to be an opcode.
Future commits will remove it entirely.
---
src/glsl/builtins/ir/cross | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/glsl/builtins/ir/cross b/src/glsl/builtins/ir/cross
index 24717a2..02991fe 100644
--- a/src/glsl/builtins/ir/cross
+++ b/src/glsl/builtins/ir/cross
@@ -1,7 +1,9 @@
((function cross
(signature vec3
(parameters
- (declare (in) vec3 arg0)
- (declare (in) vec3 arg1))
- ((return (expression vec3 cross (var_ref arg0) (var_ref arg1)))))
+ (declare (in) vec3 a)
+ (declare (in) vec3 b))
+ ((return (expression vec3 -
+ (expression vec3 * (swiz yzx (var_ref a)) (swiz zxy (var_ref b)))
+ (expression vec3 * (swiz zxy (var_ref a)) (swiz yzx (var_ref b)))))))
))
More information about the mesa-commit
mailing list