From 671ccf593e1079d0f3e1adf42831d09da91a2b68 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Wed, 17 Nov 2010 13:20:30 -0800 Subject: 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 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/glsl/builtins') 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))))))) )) -- cgit v1.2.3