From 16c733495d74d8c2443aa915a55df97c02b415c7 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 31 Aug 2010 19:13:09 -0600 Subject: glsl2: fix bug in atan(y, x) function When x==0, the result was wrong. Fixes piglit glsl-fs-atan-1.shader_test --- src/glsl/builtins/ir/atan | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'src/glsl/builtins') diff --git a/src/glsl/builtins/ir/atan b/src/glsl/builtins/ir/atan index 8404829387..04e1898f9f 100644 --- a/src/glsl/builtins/ir/atan +++ b/src/glsl/builtins/ir/atan @@ -80,13 +80,9 @@ ) ( - (if (expression bool >= (var_ref y) (constant float (0.000000)) ) ( - (assign (constant bool (1)) (var_ref r) (constant float (1.570796)) ) - ) - ( - (assign (constant bool (1)) (var_ref r) (constant float (-1.570796)) ) - )) - + (declare () float sgn) + (assign (constant bool (1)) (var_ref sgn) (expression float sign (var_ref y))) + (assign (constant bool (1)) (var_ref r) (expression float * (var_ref sgn) (constant float (1.5707965)))) )) (return (var_ref r) ) -- cgit v1.2.3