diff options
author | Kenneth Graunke <kenneth@whitecape.org> | 2010-11-17 13:20:30 -0800 |
---|---|---|
committer | Kenneth Graunke <kenneth@whitecape.org> | 2010-11-17 13:20:30 -0800 |
commit | 671ccf593e1079d0f3e1adf42831d09da91a2b68 (patch) | |
tree | 3fe577c6e81bb6c68391edb4c4980dec8af8153a | |
parent | 302fe4049c1f409655eb283e20f9ab6397ac3db4 (diff) |
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.
-rw-r--r-- | 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 24717a2183..02991fe422 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))))))) )) |