From: Kenneth Graunke Date: Wed, 17 Nov 2010 21:20:30 +0000 (-0800) Subject: glsl: Reimplement the "cross" built-in without ir_binop_cross. X-Git-Tag: 062012170305~8859 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=671ccf593e1079d0f3e1adf42831d09da91a2b68;p=profile%2Fivi%2Fmesa.git 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. --- 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))))))) ))