mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 15:40:11 +01:00
glsl2: Fix asin() implementation.
I'd flipped around the order of two operations in paren-balancing adventures, and left out the multiply by sign(x) required for negative x. Fixes: glsl1-acos(vec4) function glsl1-asin(vec4) function glsl1-atan(vec4) function
This commit is contained in:
parent
117d154b4d
commit
1245babe0c
2 changed files with 138 additions and 122 deletions
|
|
@ -113,90 +113,98 @@ static const char *builtins_110_asin = {
|
|||
" (parameters\n"
|
||||
" (declare (in) float x))\n"
|
||||
" ((return (expression float *\n"
|
||||
" (expression float -\n"
|
||||
" (expression float *\n"
|
||||
" (expression float sign (var_ref x))\n"
|
||||
" (expression float -\n"
|
||||
" (expression float *\n"
|
||||
" (constant float (3.1415926))\n"
|
||||
" (constant float (0.5)))\n"
|
||||
" (expression float sqrt\n"
|
||||
" (expression float -\n"
|
||||
" (constant float (1.0))\n"
|
||||
" (expression float abs (var_ref x)))))\n"
|
||||
" (expression float +\n"
|
||||
" (constant float (1.5707288))\n"
|
||||
" (expression float *\n"
|
||||
" (expression float abs (var_ref x))\n"
|
||||
" (expression float +\n"
|
||||
" (constant float (-0.2121144))\n"
|
||||
" (expression float *\n"
|
||||
" (constant float (0.0742610))\n"
|
||||
" (expression float abs (var_ref x))))))))))\n"
|
||||
" (expression float *\n"
|
||||
" (expression float sqrt\n"
|
||||
" (expression float -\n"
|
||||
" (constant float (1.0))\n"
|
||||
" (expression float abs (var_ref x))))\n"
|
||||
" (expression float +\n"
|
||||
" (constant float (1.5707288))\n"
|
||||
" (expression float *\n"
|
||||
" (expression float abs (var_ref x))\n"
|
||||
" (expression float +\n"
|
||||
" (constant float (-0.2121144))\n"
|
||||
" (expression float *\n"
|
||||
" (constant float (0.0742610))\n"
|
||||
" (expression float abs (var_ref x))))))))))))\n"
|
||||
"\n"
|
||||
" (signature vec2\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) vec2 x))\n"
|
||||
" ((return (expression vec2 *\n"
|
||||
" (expression float -\n"
|
||||
" (expression float *\n"
|
||||
" (expression vec2 sign (var_ref x))\n"
|
||||
" (expression vec2 -\n"
|
||||
" (expression float *\n"
|
||||
" (constant float (3.1415926))\n"
|
||||
" (constant float (0.5)))\n"
|
||||
" (expression vec2 sqrt\n"
|
||||
" (expression vec2 -\n"
|
||||
" (constant float (1.0))\n"
|
||||
" (expression vec2 abs (var_ref x)))))\n"
|
||||
" (expression vec2 +\n"
|
||||
" (constant float (1.5707288))\n"
|
||||
" (expression vec2 *\n"
|
||||
" (expression vec2 abs (var_ref x))\n"
|
||||
" (expression vec2 +\n"
|
||||
" (constant float (-0.2121144))\n"
|
||||
" (expression vec2 *\n"
|
||||
" (constant float (0.0742610))\n"
|
||||
" (expression vec2 abs (var_ref x))))))))))\n"
|
||||
" (expression vec2 *\n"
|
||||
" (expression vec2 sqrt\n"
|
||||
" (expression vec2 -\n"
|
||||
" (constant float (1.0))\n"
|
||||
" (expression vec2 abs (var_ref x))))\n"
|
||||
" (expression vec2 +\n"
|
||||
" (constant float (1.5707288))\n"
|
||||
" (expression vec2 *\n"
|
||||
" (expression vec2 abs (var_ref x))\n"
|
||||
" (expression vec2 +\n"
|
||||
" (constant float (-0.2121144))\n"
|
||||
" (expression vec2 *\n"
|
||||
" (constant float (0.0742610))\n"
|
||||
" (expression vec2 abs (var_ref x))))))))))))\n"
|
||||
"\n"
|
||||
" (signature vec3\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) vec3 x))\n"
|
||||
" ((return (expression vec3 *\n"
|
||||
" (expression vec3 -\n"
|
||||
" (expression float *\n"
|
||||
" (expression vec3 sign (var_ref x))\n"
|
||||
" (expression vec3 -\n"
|
||||
" (expression float *\n"
|
||||
" (constant float (3.1415926))\n"
|
||||
" (constant float (0.5)))\n"
|
||||
" (expression vec3 sqrt\n"
|
||||
" (expression vec3 -\n"
|
||||
" (constant float (1.0))\n"
|
||||
" (expression vec3 abs (var_ref x)))))\n"
|
||||
" (expression vec3 +\n"
|
||||
" (constant float (1.5707288))\n"
|
||||
" (expression vec3 *\n"
|
||||
" (expression vec3 abs (var_ref x))\n"
|
||||
" (expression vec3 +\n"
|
||||
" (constant float (-0.2121144))\n"
|
||||
" (expression vec3 *\n"
|
||||
" (constant float (0.0742610))\n"
|
||||
" (expression vec3 abs (var_ref x))))))))))\n"
|
||||
" (expression vec3 *\n"
|
||||
" (expression vec3 sqrt\n"
|
||||
" (expression vec3 -\n"
|
||||
" (constant float (1.0))\n"
|
||||
" (expression vec3 abs (var_ref x))))\n"
|
||||
" (expression vec3 +\n"
|
||||
" (constant float (1.5707288))\n"
|
||||
" (expression vec3 *\n"
|
||||
" (expression vec3 abs (var_ref x))\n"
|
||||
" (expression vec3 +\n"
|
||||
" (constant float (-0.2121144))\n"
|
||||
" (expression vec3 *\n"
|
||||
" (constant float (0.0742610))\n"
|
||||
" (expression vec3 abs (var_ref x))))))))))))\n"
|
||||
"\n"
|
||||
" (signature vec4\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) vec4 x))\n"
|
||||
" ((return (expression vec4 *\n"
|
||||
" (expression vec4 -\n"
|
||||
" (expression float *\n"
|
||||
" (expression vec4 sign (var_ref x))\n"
|
||||
" (expression vec4 -\n"
|
||||
" (expression float *\n"
|
||||
" (constant float (3.1415926))\n"
|
||||
" (constant float (0.5)))\n"
|
||||
" (expression vec4 sqrt\n"
|
||||
" (expression vec4 -\n"
|
||||
" (constant float (1.0))\n"
|
||||
" (expression vec4 abs (var_ref x)))))\n"
|
||||
" (expression vec4 +\n"
|
||||
" (constant float (1.5707288))\n"
|
||||
" (expression vec4 *\n"
|
||||
" (expression vec4 abs (var_ref x))\n"
|
||||
" (expression vec4 +\n"
|
||||
" (constant float (-0.2121144))\n"
|
||||
" (expression vec4 *\n"
|
||||
" (constant float (0.0742610))\n"
|
||||
" (expression vec4 abs (var_ref x))))))))))\n"
|
||||
")\n"
|
||||
" (expression vec4 *\n"
|
||||
" (expression vec4 sqrt\n"
|
||||
" (expression vec4 -\n"
|
||||
" (constant float (1.0))\n"
|
||||
" (expression vec4 abs (var_ref x))))\n"
|
||||
" (expression vec4 +\n"
|
||||
" (constant float (1.5707288))\n"
|
||||
" (expression vec4 *\n"
|
||||
" (expression vec4 abs (var_ref x))\n"
|
||||
" (expression vec4 +\n"
|
||||
" (constant float (-0.2121144))\n"
|
||||
" (expression vec4 *\n"
|
||||
" (constant float (0.0742610))\n"
|
||||
" (expression vec4 abs (var_ref x)))))))))))\n"
|
||||
"))\n"
|
||||
"\n"
|
||||
" (function acos\n"
|
||||
" (signature float\n"
|
||||
|
|
|
|||
|
|
@ -3,90 +3,98 @@
|
|||
(parameters
|
||||
(declare (in) float x))
|
||||
((return (expression float *
|
||||
(expression float -
|
||||
(expression float *
|
||||
(expression float sign (var_ref x))
|
||||
(expression float -
|
||||
(expression float *
|
||||
(constant float (3.1415926))
|
||||
(constant float (0.5)))
|
||||
(expression float sqrt
|
||||
(expression float -
|
||||
(constant float (1.0))
|
||||
(expression float abs (var_ref x)))))
|
||||
(expression float +
|
||||
(constant float (1.5707288))
|
||||
(expression float *
|
||||
(expression float abs (var_ref x))
|
||||
(expression float +
|
||||
(constant float (-0.2121144))
|
||||
(expression float *
|
||||
(constant float (0.0742610))
|
||||
(expression float abs (var_ref x))))))))))
|
||||
(expression float *
|
||||
(expression float sqrt
|
||||
(expression float -
|
||||
(constant float (1.0))
|
||||
(expression float abs (var_ref x))))
|
||||
(expression float +
|
||||
(constant float (1.5707288))
|
||||
(expression float *
|
||||
(expression float abs (var_ref x))
|
||||
(expression float +
|
||||
(constant float (-0.2121144))
|
||||
(expression float *
|
||||
(constant float (0.0742610))
|
||||
(expression float abs (var_ref x))))))))))))
|
||||
|
||||
(signature vec2
|
||||
(parameters
|
||||
(declare (in) vec2 x))
|
||||
((return (expression vec2 *
|
||||
(expression float -
|
||||
(expression float *
|
||||
(expression vec2 sign (var_ref x))
|
||||
(expression vec2 -
|
||||
(expression float *
|
||||
(constant float (3.1415926))
|
||||
(constant float (0.5)))
|
||||
(expression vec2 sqrt
|
||||
(expression vec2 -
|
||||
(constant float (1.0))
|
||||
(expression vec2 abs (var_ref x)))))
|
||||
(expression vec2 +
|
||||
(constant float (1.5707288))
|
||||
(expression vec2 *
|
||||
(expression vec2 abs (var_ref x))
|
||||
(expression vec2 +
|
||||
(constant float (-0.2121144))
|
||||
(expression vec2 *
|
||||
(constant float (0.0742610))
|
||||
(expression vec2 abs (var_ref x))))))))))
|
||||
(expression vec2 *
|
||||
(expression vec2 sqrt
|
||||
(expression vec2 -
|
||||
(constant float (1.0))
|
||||
(expression vec2 abs (var_ref x))))
|
||||
(expression vec2 +
|
||||
(constant float (1.5707288))
|
||||
(expression vec2 *
|
||||
(expression vec2 abs (var_ref x))
|
||||
(expression vec2 +
|
||||
(constant float (-0.2121144))
|
||||
(expression vec2 *
|
||||
(constant float (0.0742610))
|
||||
(expression vec2 abs (var_ref x))))))))))))
|
||||
|
||||
(signature vec3
|
||||
(parameters
|
||||
(declare (in) vec3 x))
|
||||
((return (expression vec3 *
|
||||
(expression vec3 -
|
||||
(expression float *
|
||||
(expression vec3 sign (var_ref x))
|
||||
(expression vec3 -
|
||||
(expression float *
|
||||
(constant float (3.1415926))
|
||||
(constant float (0.5)))
|
||||
(expression vec3 sqrt
|
||||
(expression vec3 -
|
||||
(constant float (1.0))
|
||||
(expression vec3 abs (var_ref x)))))
|
||||
(expression vec3 +
|
||||
(constant float (1.5707288))
|
||||
(expression vec3 *
|
||||
(expression vec3 abs (var_ref x))
|
||||
(expression vec3 +
|
||||
(constant float (-0.2121144))
|
||||
(expression vec3 *
|
||||
(constant float (0.0742610))
|
||||
(expression vec3 abs (var_ref x))))))))))
|
||||
(expression vec3 *
|
||||
(expression vec3 sqrt
|
||||
(expression vec3 -
|
||||
(constant float (1.0))
|
||||
(expression vec3 abs (var_ref x))))
|
||||
(expression vec3 +
|
||||
(constant float (1.5707288))
|
||||
(expression vec3 *
|
||||
(expression vec3 abs (var_ref x))
|
||||
(expression vec3 +
|
||||
(constant float (-0.2121144))
|
||||
(expression vec3 *
|
||||
(constant float (0.0742610))
|
||||
(expression vec3 abs (var_ref x))))))))))))
|
||||
|
||||
(signature vec4
|
||||
(parameters
|
||||
(declare (in) vec4 x))
|
||||
((return (expression vec4 *
|
||||
(expression vec4 -
|
||||
(expression float *
|
||||
(expression vec4 sign (var_ref x))
|
||||
(expression vec4 -
|
||||
(expression float *
|
||||
(constant float (3.1415926))
|
||||
(constant float (0.5)))
|
||||
(expression vec4 sqrt
|
||||
(expression vec4 -
|
||||
(constant float (1.0))
|
||||
(expression vec4 abs (var_ref x)))))
|
||||
(expression vec4 +
|
||||
(constant float (1.5707288))
|
||||
(expression vec4 *
|
||||
(expression vec4 abs (var_ref x))
|
||||
(expression vec4 +
|
||||
(constant float (-0.2121144))
|
||||
(expression vec4 *
|
||||
(constant float (0.0742610))
|
||||
(expression vec4 abs (var_ref x))))))))))
|
||||
)
|
||||
(expression vec4 *
|
||||
(expression vec4 sqrt
|
||||
(expression vec4 -
|
||||
(constant float (1.0))
|
||||
(expression vec4 abs (var_ref x))))
|
||||
(expression vec4 +
|
||||
(constant float (1.5707288))
|
||||
(expression vec4 *
|
||||
(expression vec4 abs (var_ref x))
|
||||
(expression vec4 +
|
||||
(constant float (-0.2121144))
|
||||
(expression vec4 *
|
||||
(constant float (0.0742610))
|
||||
(expression vec4 abs (var_ref x)))))))))))
|
||||
))
|
||||
|
||||
(function acos
|
||||
(signature float
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue