mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-28 10:20:09 +01:00
Implement 1.30 hyperbolic trig builtins (sinh, cosh, tanh).
This commit is contained in:
parent
1d0e07c420
commit
c9aabc866f
4 changed files with 216 additions and 0 deletions
|
|
@ -3056,6 +3056,39 @@ static const char *functions_for_120 [] = {
|
|||
|
||||
/* 130 builtins */
|
||||
|
||||
static const char *builtins_130_cosh = {
|
||||
"((function cosh\n"
|
||||
" (signature float\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) float x))\n"
|
||||
" ((return (expression float * (constant float (0.5))\n"
|
||||
" (expression float +\n"
|
||||
" (expression float exp (var_ref x))\n"
|
||||
" (expression float exp (expression float neg (var_ref x))))))))\n"
|
||||
" (signature vec2\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) vec2 x))\n"
|
||||
" ((return (expression vec2 * (constant vec2 (0.5))\n"
|
||||
" (expression vec2 +\n"
|
||||
" (expression vec2 exp (var_ref x))\n"
|
||||
" (expression vec2 exp (expression vec2 neg (var_ref x))))))))\n"
|
||||
" (signature vec3\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) vec3 x))\n"
|
||||
" ((return (expression vec3 * (constant vec3 (0.5))\n"
|
||||
" (expression vec3 +\n"
|
||||
" (expression vec3 exp (var_ref x))\n"
|
||||
" (expression vec3 exp (expression vec3 neg (var_ref x))))))))\n"
|
||||
" (signature vec4\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) vec4 x))\n"
|
||||
" ((return (expression vec4 * (constant vec4 (0.5))\n"
|
||||
" (expression vec4 +\n"
|
||||
" (expression vec4 exp (var_ref x))\n"
|
||||
" (expression vec4 exp (expression vec4 neg (var_ref x))))))))\n"
|
||||
"))\n"
|
||||
};
|
||||
|
||||
static const char *builtins_130_equal = {
|
||||
"((function equal\n"
|
||||
" (signature bvec2\n"
|
||||
|
|
@ -3297,6 +3330,84 @@ static const char *builtins_130_sign = {
|
|||
"\n"
|
||||
};
|
||||
|
||||
static const char *builtins_130_sinh = {
|
||||
"((function sinh\n"
|
||||
" (signature float\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) float x))\n"
|
||||
" ((return (expression float * (constant float (0.5))\n"
|
||||
" (expression float -\n"
|
||||
" (expression float exp (var_ref x))\n"
|
||||
" (expression float exp (expression float neg (var_ref x))))))))\n"
|
||||
" (signature vec2\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) vec2 x))\n"
|
||||
" ((return (expression vec2 * (constant vec2 (0.5))\n"
|
||||
" (expression vec2 -\n"
|
||||
" (expression vec2 exp (var_ref x))\n"
|
||||
" (expression vec2 exp (expression vec2 neg (var_ref x))))))))\n"
|
||||
" (signature vec3\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) vec3 x))\n"
|
||||
" ((return (expression vec3 * (constant vec3 (0.5))\n"
|
||||
" (expression vec3 -\n"
|
||||
" (expression vec3 exp (var_ref x))\n"
|
||||
" (expression vec3 exp (expression vec3 neg (var_ref x))))))))\n"
|
||||
" (signature vec4\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) vec4 x))\n"
|
||||
" ((return (expression vec4 * (constant vec4 (0.5))\n"
|
||||
" (expression vec4 -\n"
|
||||
" (expression vec4 exp (var_ref x))\n"
|
||||
" (expression vec4 exp (expression vec4 neg (var_ref x))))))))\n"
|
||||
"))\n"
|
||||
};
|
||||
|
||||
static const char *builtins_130_tanh = {
|
||||
"((function tanh\n"
|
||||
" (signature float\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) float x))\n"
|
||||
" ((return (expression float /\n"
|
||||
" (expression float -\n"
|
||||
" (expression float exp (var_ref x))\n"
|
||||
" (expression float exp (expression float neg (var_ref x))))\n"
|
||||
" (expression float +\n"
|
||||
" (expression float exp (var_ref x))\n"
|
||||
" (expression float exp (expression float neg (var_ref x))))))))\n"
|
||||
" (signature vec2\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) vec2 x))\n"
|
||||
" ((return (expression vec2 /\n"
|
||||
" (expression vec2 -\n"
|
||||
" (expression vec2 exp (var_ref x))\n"
|
||||
" (expression vec2 exp (expression vec2 neg (var_ref x))))\n"
|
||||
" (expression vec2 +\n"
|
||||
" (expression vec2 exp (var_ref x))\n"
|
||||
" (expression vec2 exp (expression vec2 neg (var_ref x))))))))\n"
|
||||
" (signature vec3\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) vec3 x))\n"
|
||||
" ((return (expression vec3 /\n"
|
||||
" (expression vec3 -\n"
|
||||
" (expression vec3 exp (var_ref x))\n"
|
||||
" (expression vec3 exp (expression vec3 neg (var_ref x))))\n"
|
||||
" (expression vec3 +\n"
|
||||
" (expression vec3 exp (var_ref x))\n"
|
||||
" (expression vec3 exp (expression vec3 neg (var_ref x))))))))\n"
|
||||
" (signature vec4\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) vec4 x))\n"
|
||||
" ((return (expression vec4 /\n"
|
||||
" (expression vec4 -\n"
|
||||
" (expression vec4 exp (var_ref x))\n"
|
||||
" (expression vec4 exp (expression vec4 neg (var_ref x))))\n"
|
||||
" (expression vec4 +\n"
|
||||
" (expression vec4 exp (var_ref x))\n"
|
||||
" (expression vec4 exp (expression vec4 neg (var_ref x))))))))\n"
|
||||
"))\n"
|
||||
};
|
||||
|
||||
static const char *builtins_130_texelFetch = {
|
||||
"((function texelFetch\n"
|
||||
" (signature vec4\n"
|
||||
|
|
@ -4132,6 +4243,7 @@ static const char *builtins_130_textureProjLod = {
|
|||
};
|
||||
|
||||
static const char *functions_for_130 [] = {
|
||||
builtins_130_cosh,
|
||||
builtins_130_equal,
|
||||
builtins_130_greaterThan,
|
||||
builtins_130_greaterThanEqual,
|
||||
|
|
@ -4139,6 +4251,8 @@ static const char *functions_for_130 [] = {
|
|||
builtins_130_lessThanEqual,
|
||||
builtins_130_notEqual,
|
||||
builtins_130_sign,
|
||||
builtins_130_sinh,
|
||||
builtins_130_tanh,
|
||||
builtins_130_texelFetch,
|
||||
builtins_130_texture,
|
||||
builtins_130_textureGrad,
|
||||
|
|
|
|||
30
builtins/130/cosh
Normal file
30
builtins/130/cosh
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
((function cosh
|
||||
(signature float
|
||||
(parameters
|
||||
(declare (in) float x))
|
||||
((return (expression float * (constant float (0.5))
|
||||
(expression float +
|
||||
(expression float exp (var_ref x))
|
||||
(expression float exp (expression float neg (var_ref x))))))))
|
||||
(signature vec2
|
||||
(parameters
|
||||
(declare (in) vec2 x))
|
||||
((return (expression vec2 * (constant vec2 (0.5))
|
||||
(expression vec2 +
|
||||
(expression vec2 exp (var_ref x))
|
||||
(expression vec2 exp (expression vec2 neg (var_ref x))))))))
|
||||
(signature vec3
|
||||
(parameters
|
||||
(declare (in) vec3 x))
|
||||
((return (expression vec3 * (constant vec3 (0.5))
|
||||
(expression vec3 +
|
||||
(expression vec3 exp (var_ref x))
|
||||
(expression vec3 exp (expression vec3 neg (var_ref x))))))))
|
||||
(signature vec4
|
||||
(parameters
|
||||
(declare (in) vec4 x))
|
||||
((return (expression vec4 * (constant vec4 (0.5))
|
||||
(expression vec4 +
|
||||
(expression vec4 exp (var_ref x))
|
||||
(expression vec4 exp (expression vec4 neg (var_ref x))))))))
|
||||
))
|
||||
30
builtins/130/sinh
Normal file
30
builtins/130/sinh
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
((function sinh
|
||||
(signature float
|
||||
(parameters
|
||||
(declare (in) float x))
|
||||
((return (expression float * (constant float (0.5))
|
||||
(expression float -
|
||||
(expression float exp (var_ref x))
|
||||
(expression float exp (expression float neg (var_ref x))))))))
|
||||
(signature vec2
|
||||
(parameters
|
||||
(declare (in) vec2 x))
|
||||
((return (expression vec2 * (constant vec2 (0.5))
|
||||
(expression vec2 -
|
||||
(expression vec2 exp (var_ref x))
|
||||
(expression vec2 exp (expression vec2 neg (var_ref x))))))))
|
||||
(signature vec3
|
||||
(parameters
|
||||
(declare (in) vec3 x))
|
||||
((return (expression vec3 * (constant vec3 (0.5))
|
||||
(expression vec3 -
|
||||
(expression vec3 exp (var_ref x))
|
||||
(expression vec3 exp (expression vec3 neg (var_ref x))))))))
|
||||
(signature vec4
|
||||
(parameters
|
||||
(declare (in) vec4 x))
|
||||
((return (expression vec4 * (constant vec4 (0.5))
|
||||
(expression vec4 -
|
||||
(expression vec4 exp (var_ref x))
|
||||
(expression vec4 exp (expression vec4 neg (var_ref x))))))))
|
||||
))
|
||||
42
builtins/130/tanh
Normal file
42
builtins/130/tanh
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
((function tanh
|
||||
(signature float
|
||||
(parameters
|
||||
(declare (in) float x))
|
||||
((return (expression float /
|
||||
(expression float -
|
||||
(expression float exp (var_ref x))
|
||||
(expression float exp (expression float neg (var_ref x))))
|
||||
(expression float +
|
||||
(expression float exp (var_ref x))
|
||||
(expression float exp (expression float neg (var_ref x))))))))
|
||||
(signature vec2
|
||||
(parameters
|
||||
(declare (in) vec2 x))
|
||||
((return (expression vec2 /
|
||||
(expression vec2 -
|
||||
(expression vec2 exp (var_ref x))
|
||||
(expression vec2 exp (expression vec2 neg (var_ref x))))
|
||||
(expression vec2 +
|
||||
(expression vec2 exp (var_ref x))
|
||||
(expression vec2 exp (expression vec2 neg (var_ref x))))))))
|
||||
(signature vec3
|
||||
(parameters
|
||||
(declare (in) vec3 x))
|
||||
((return (expression vec3 /
|
||||
(expression vec3 -
|
||||
(expression vec3 exp (var_ref x))
|
||||
(expression vec3 exp (expression vec3 neg (var_ref x))))
|
||||
(expression vec3 +
|
||||
(expression vec3 exp (var_ref x))
|
||||
(expression vec3 exp (expression vec3 neg (var_ref x))))))))
|
||||
(signature vec4
|
||||
(parameters
|
||||
(declare (in) vec4 x))
|
||||
((return (expression vec4 /
|
||||
(expression vec4 -
|
||||
(expression vec4 exp (var_ref x))
|
||||
(expression vec4 exp (expression vec4 neg (var_ref x))))
|
||||
(expression vec4 +
|
||||
(expression vec4 exp (var_ref x))
|
||||
(expression vec4 exp (expression vec4 neg (var_ref x))))))))
|
||||
))
|
||||
Loading…
Add table
Reference in a new issue