mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
Implement 1.30 int/uint variants of min/max/clamp.
This commit is contained in:
parent
c3bf0cbefc
commit
af05703826
4 changed files with 766 additions and 0 deletions
|
|
@ -3056,6 +3056,132 @@ static const char *functions_for_120 [] = {
|
|||
|
||||
/* 130 builtins */
|
||||
|
||||
static const char *builtins_130_clamp = {
|
||||
"((function clamp\n"
|
||||
" (signature int\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) int arg0)\n"
|
||||
" (declare (in) int arg1)\n"
|
||||
" (declare (in) int arg2))\n"
|
||||
" ((return (expression int max (expression int min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature ivec2\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) ivec2 arg0)\n"
|
||||
" (declare (in) ivec2 arg1)\n"
|
||||
" (declare (in) ivec2 arg2))\n"
|
||||
" ((return (expression ivec2 max (expression ivec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature ivec3\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) ivec3 arg0)\n"
|
||||
" (declare (in) ivec3 arg1)\n"
|
||||
" (declare (in) ivec3 arg2))\n"
|
||||
" ((return (expression ivec3 max (expression ivec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature ivec4\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) ivec4 arg0)\n"
|
||||
" (declare (in) ivec4 arg1)\n"
|
||||
" (declare (in) ivec4 arg2))\n"
|
||||
" ((return (expression ivec4 max (expression ivec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature ivec2\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) ivec2 arg0)\n"
|
||||
" (declare (in) int arg1)\n"
|
||||
" (declare (in) int arg2))\n"
|
||||
" ((declare () ivec2 result)\n"
|
||||
" (assign (constant bool (1)) (swiz x (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz y (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
|
||||
" (return (var_ref result))))\n"
|
||||
"\n"
|
||||
" (signature ivec3\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) ivec3 arg0)\n"
|
||||
" (declare (in) int arg1)\n"
|
||||
" (declare (in) int arg2))\n"
|
||||
" ((declare () ivec3 result)\n"
|
||||
" (assign (constant bool (1)) (swiz x (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz y (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz z (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
|
||||
" (return (var_ref result))))\n"
|
||||
"\n"
|
||||
" (signature ivec4\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) ivec4 arg0)\n"
|
||||
" (declare (in) int arg1)\n"
|
||||
" (declare (in) int arg2))\n"
|
||||
" ((declare () ivec4 result)\n"
|
||||
" (assign (constant bool (1)) (swiz x (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz y (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz z (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz w (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz w (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
|
||||
" (return (var_ref result))))\n"
|
||||
"\n"
|
||||
" (signature uint\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) uint arg0)\n"
|
||||
" (declare (in) uint arg1)\n"
|
||||
" (declare (in) uint arg2))\n"
|
||||
" ((return (expression uint max (expression uint min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature uvec2\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) uvec2 arg0)\n"
|
||||
" (declare (in) uvec2 arg1)\n"
|
||||
" (declare (in) uvec2 arg2))\n"
|
||||
" ((return (expression uvec2 max (expression uvec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature uvec3\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) uvec3 arg0)\n"
|
||||
" (declare (in) uvec3 arg1)\n"
|
||||
" (declare (in) uvec3 arg2))\n"
|
||||
" ((return (expression uvec3 max (expression uvec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature uvec4\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) uvec4 arg0)\n"
|
||||
" (declare (in) uvec4 arg1)\n"
|
||||
" (declare (in) uvec4 arg2))\n"
|
||||
" ((return (expression uvec4 max (expression uvec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature uvec2\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) uvec2 arg0)\n"
|
||||
" (declare (in) uint arg1)\n"
|
||||
" (declare (in) uint arg2))\n"
|
||||
" ((declare () uvec2 result)\n"
|
||||
" (assign (constant bool (1)) (swiz x (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz y (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
|
||||
" (return (var_ref result))))\n"
|
||||
"\n"
|
||||
" (signature uvec3\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) uvec3 arg0)\n"
|
||||
" (declare (in) uint arg1)\n"
|
||||
" (declare (in) uint arg2))\n"
|
||||
" ((declare () uvec3 result)\n"
|
||||
" (assign (constant bool (1)) (swiz x (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz y (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz z (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
|
||||
" (return (var_ref result))))\n"
|
||||
"\n"
|
||||
" (signature uvec4\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) uvec4 arg0)\n"
|
||||
" (declare (in) uint arg1)\n"
|
||||
" (declare (in) uint arg2))\n"
|
||||
" ((declare () uvec4 result)\n"
|
||||
" (assign (constant bool (1)) (swiz x (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz y (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz z (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz w (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz w (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))\n"
|
||||
" (return (var_ref result))))\n"
|
||||
"))\n"
|
||||
};
|
||||
|
||||
static const char *builtins_130_cosh = {
|
||||
"((function cosh\n"
|
||||
" (signature float\n"
|
||||
|
|
@ -3259,6 +3385,266 @@ static const char *builtins_130_lessThanEqual = {
|
|||
"))\n"
|
||||
};
|
||||
|
||||
static const char *builtins_130_max = {
|
||||
"((function max\n"
|
||||
" (signature int\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) int arg0)\n"
|
||||
" (declare (in) int arg1))\n"
|
||||
" ((return (expression int max (var_ref arg0) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature ivec2\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) ivec2 arg0)\n"
|
||||
" (declare (in) ivec2 arg1))\n"
|
||||
" ((return (expression ivec2 max (var_ref arg0) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature ivec3\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) ivec3 arg0)\n"
|
||||
" (declare (in) ivec3 arg1))\n"
|
||||
" ((return (expression ivec3 max (var_ref arg0) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature ivec4\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) ivec4 arg0)\n"
|
||||
" (declare (in) ivec4 arg1))\n"
|
||||
" ((return (expression ivec4 max (var_ref arg0) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature ivec2\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) ivec2 arg0)\n"
|
||||
" (declare (in) int arg1))\n"
|
||||
" ((declare () ivec2 result)\n"
|
||||
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
|
||||
" (expression int max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
|
||||
" (expression int max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (return (var_ref result))))\n"
|
||||
"\n"
|
||||
" (signature ivec3\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) ivec3 arg0)\n"
|
||||
" (declare (in) int arg1))\n"
|
||||
" ((declare () ivec3 result)\n"
|
||||
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
|
||||
" (expression int max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
|
||||
" (expression int max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz z (var_ref result))\n"
|
||||
" (expression int max (swiz z (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (return (var_ref result))))\n"
|
||||
"\n"
|
||||
" (signature ivec4\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) ivec4 arg0)\n"
|
||||
" (declare (in) int arg1))\n"
|
||||
" ((declare () ivec4 result)\n"
|
||||
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
|
||||
" (expression int max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
|
||||
" (expression int max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz z (var_ref result))\n"
|
||||
" (expression int max (swiz z (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz w (var_ref result))\n"
|
||||
" (expression int max (swiz w (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (return (var_ref result))))\n"
|
||||
"\n"
|
||||
" (signature uint\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) uint arg0)\n"
|
||||
" (declare (in) uint arg1))\n"
|
||||
" ((return (expression uint max (var_ref arg0) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature uvec2\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) uvec2 arg0)\n"
|
||||
" (declare (in) uvec2 arg1))\n"
|
||||
" ((return (expression uvec2 max (var_ref arg0) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature uvec3\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) uvec3 arg0)\n"
|
||||
" (declare (in) uvec3 arg1))\n"
|
||||
" ((return (expression uvec3 max (var_ref arg0) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature uvec4\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) uvec4 arg0)\n"
|
||||
" (declare (in) uvec4 arg1))\n"
|
||||
" ((return (expression uvec4 max (var_ref arg0) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature uvec2\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) uvec2 arg0)\n"
|
||||
" (declare (in) uint arg1))\n"
|
||||
" ((declare () uvec2 result)\n"
|
||||
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
|
||||
" (expression uint max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
|
||||
" (expression uint max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (return (var_ref result))))\n"
|
||||
"\n"
|
||||
" (signature uvec3\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) uvec3 arg0)\n"
|
||||
" (declare (in) uint arg1))\n"
|
||||
" ((declare () uvec3 result)\n"
|
||||
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
|
||||
" (expression uint max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
|
||||
" (expression uint max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz z (var_ref result))\n"
|
||||
" (expression uint max (swiz z (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (return (var_ref result))))\n"
|
||||
"\n"
|
||||
" (signature uvec4\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) uvec4 arg0)\n"
|
||||
" (declare (in) uint arg1))\n"
|
||||
" ((declare () uvec4 result)\n"
|
||||
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
|
||||
" (expression uint max (swiz x (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
|
||||
" (expression uint max (swiz y (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz z (var_ref result))\n"
|
||||
" (expression uint max (swiz z (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz w (var_ref result))\n"
|
||||
" (expression uint max (swiz w (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (return (var_ref result))))\n"
|
||||
"))\n"
|
||||
};
|
||||
|
||||
static const char *builtins_130_min = {
|
||||
"((function min\n"
|
||||
" (signature int\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) int arg0)\n"
|
||||
" (declare (in) int arg1))\n"
|
||||
" ((return (expression int min (var_ref arg0) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature ivec2\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) ivec2 arg0)\n"
|
||||
" (declare (in) ivec2 arg1))\n"
|
||||
" ((return (expression ivec2 min (var_ref arg0) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature ivec3\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) ivec3 arg0)\n"
|
||||
" (declare (in) ivec3 arg1))\n"
|
||||
" ((return (expression ivec3 min (var_ref arg0) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature ivec4\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) ivec4 arg0)\n"
|
||||
" (declare (in) ivec4 arg1))\n"
|
||||
" ((return (expression ivec4 min (var_ref arg0) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature ivec2\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) ivec2 arg0)\n"
|
||||
" (declare (in) int arg1))\n"
|
||||
" ((declare () ivec2 result)\n"
|
||||
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
|
||||
" (expression int min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
|
||||
" (expression int min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (return (var_ref result))))\n"
|
||||
"\n"
|
||||
" (signature ivec3\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) ivec3 arg0)\n"
|
||||
" (declare (in) int arg1))\n"
|
||||
" ((declare () ivec3 result)\n"
|
||||
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
|
||||
" (expression int min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
|
||||
" (expression int min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz z (var_ref result))\n"
|
||||
" (expression int min (swiz z (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (return (var_ref result))))\n"
|
||||
"\n"
|
||||
" (signature ivec4\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) ivec4 arg0)\n"
|
||||
" (declare (in) int arg1))\n"
|
||||
" ((declare () ivec4 result)\n"
|
||||
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
|
||||
" (expression int min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
|
||||
" (expression int min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz z (var_ref result))\n"
|
||||
" (expression int min (swiz z (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz w (var_ref result))\n"
|
||||
" (expression int min (swiz w (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (return (var_ref result))))\n"
|
||||
"\n"
|
||||
" (signature uint\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) uint arg0)\n"
|
||||
" (declare (in) uint arg1))\n"
|
||||
" ((return (expression uint min (var_ref arg0) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature uvec2\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) uvec2 arg0)\n"
|
||||
" (declare (in) uvec2 arg1))\n"
|
||||
" ((return (expression uvec2 min (var_ref arg0) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature uvec3\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) uvec3 arg0)\n"
|
||||
" (declare (in) uvec3 arg1))\n"
|
||||
" ((return (expression uvec3 min (var_ref arg0) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature uvec4\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) uvec4 arg0)\n"
|
||||
" (declare (in) uvec4 arg1))\n"
|
||||
" ((return (expression uvec4 min (var_ref arg0) (var_ref arg1)))))\n"
|
||||
"\n"
|
||||
" (signature uvec2\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) uvec2 arg0)\n"
|
||||
" (declare (in) uint arg1))\n"
|
||||
" ((declare () uvec2 result)\n"
|
||||
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
|
||||
" (expression uint min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
|
||||
" (expression uint min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (return (var_ref result))))\n"
|
||||
"\n"
|
||||
" (signature uvec3\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) uvec3 arg0)\n"
|
||||
" (declare (in) uint arg1))\n"
|
||||
" ((declare () uvec3 result)\n"
|
||||
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
|
||||
" (expression uint min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
|
||||
" (expression uint min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz z (var_ref result))\n"
|
||||
" (expression uint min (swiz z (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (return (var_ref result))))\n"
|
||||
"\n"
|
||||
" (signature uvec4\n"
|
||||
" (parameters\n"
|
||||
" (declare (in) uvec4 arg0)\n"
|
||||
" (declare (in) uint arg1))\n"
|
||||
" ((declare () uvec4 result)\n"
|
||||
" (assign (constant bool (1)) (swiz x (var_ref result))\n"
|
||||
" (expression uint min (swiz x (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz y (var_ref result))\n"
|
||||
" (expression uint min (swiz y (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz z (var_ref result))\n"
|
||||
" (expression uint min (swiz z (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (assign (constant bool (1)) (swiz w (var_ref result))\n"
|
||||
" (expression uint min (swiz w (var_ref arg0)) (var_ref arg1)))\n"
|
||||
" (return (var_ref result))))\n"
|
||||
"))\n"
|
||||
};
|
||||
|
||||
static const char *builtins_130_notEqual = {
|
||||
"((function notEqual\n"
|
||||
" (signature bvec2\n"
|
||||
|
|
@ -4243,12 +4629,15 @@ static const char *builtins_130_textureProjLod = {
|
|||
};
|
||||
|
||||
static const char *functions_for_130 [] = {
|
||||
builtins_130_clamp,
|
||||
builtins_130_cosh,
|
||||
builtins_130_equal,
|
||||
builtins_130_greaterThan,
|
||||
builtins_130_greaterThanEqual,
|
||||
builtins_130_lessThan,
|
||||
builtins_130_lessThanEqual,
|
||||
builtins_130_max,
|
||||
builtins_130_min,
|
||||
builtins_130_notEqual,
|
||||
builtins_130_sign,
|
||||
builtins_130_sinh,
|
||||
|
|
|
|||
123
builtins/130/clamp
Normal file
123
builtins/130/clamp
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
((function clamp
|
||||
(signature int
|
||||
(parameters
|
||||
(declare (in) int arg0)
|
||||
(declare (in) int arg1)
|
||||
(declare (in) int arg2))
|
||||
((return (expression int max (expression int min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))
|
||||
|
||||
(signature ivec2
|
||||
(parameters
|
||||
(declare (in) ivec2 arg0)
|
||||
(declare (in) ivec2 arg1)
|
||||
(declare (in) ivec2 arg2))
|
||||
((return (expression ivec2 max (expression ivec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))
|
||||
|
||||
(signature ivec3
|
||||
(parameters
|
||||
(declare (in) ivec3 arg0)
|
||||
(declare (in) ivec3 arg1)
|
||||
(declare (in) ivec3 arg2))
|
||||
((return (expression ivec3 max (expression ivec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))
|
||||
|
||||
(signature ivec4
|
||||
(parameters
|
||||
(declare (in) ivec4 arg0)
|
||||
(declare (in) ivec4 arg1)
|
||||
(declare (in) ivec4 arg2))
|
||||
((return (expression ivec4 max (expression ivec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))
|
||||
|
||||
(signature ivec2
|
||||
(parameters
|
||||
(declare (in) ivec2 arg0)
|
||||
(declare (in) int arg1)
|
||||
(declare (in) int arg2))
|
||||
((declare () ivec2 result)
|
||||
(assign (constant bool (1)) (swiz x (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz y (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
|
||||
(return (var_ref result))))
|
||||
|
||||
(signature ivec3
|
||||
(parameters
|
||||
(declare (in) ivec3 arg0)
|
||||
(declare (in) int arg1)
|
||||
(declare (in) int arg2))
|
||||
((declare () ivec3 result)
|
||||
(assign (constant bool (1)) (swiz x (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz y (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz z (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
|
||||
(return (var_ref result))))
|
||||
|
||||
(signature ivec4
|
||||
(parameters
|
||||
(declare (in) ivec4 arg0)
|
||||
(declare (in) int arg1)
|
||||
(declare (in) int arg2))
|
||||
((declare () ivec4 result)
|
||||
(assign (constant bool (1)) (swiz x (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz y (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz z (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz w (var_ref result)) (expression ivec4 max (expression ivec4 min (swiz w (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
|
||||
(return (var_ref result))))
|
||||
|
||||
(signature uint
|
||||
(parameters
|
||||
(declare (in) uint arg0)
|
||||
(declare (in) uint arg1)
|
||||
(declare (in) uint arg2))
|
||||
((return (expression uint max (expression uint min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))
|
||||
|
||||
(signature uvec2
|
||||
(parameters
|
||||
(declare (in) uvec2 arg0)
|
||||
(declare (in) uvec2 arg1)
|
||||
(declare (in) uvec2 arg2))
|
||||
((return (expression uvec2 max (expression uvec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))
|
||||
|
||||
(signature uvec3
|
||||
(parameters
|
||||
(declare (in) uvec3 arg0)
|
||||
(declare (in) uvec3 arg1)
|
||||
(declare (in) uvec3 arg2))
|
||||
((return (expression uvec3 max (expression uvec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))
|
||||
|
||||
(signature uvec4
|
||||
(parameters
|
||||
(declare (in) uvec4 arg0)
|
||||
(declare (in) uvec4 arg1)
|
||||
(declare (in) uvec4 arg2))
|
||||
((return (expression uvec4 max (expression uvec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))
|
||||
|
||||
(signature uvec2
|
||||
(parameters
|
||||
(declare (in) uvec2 arg0)
|
||||
(declare (in) uint arg1)
|
||||
(declare (in) uint arg2))
|
||||
((declare () uvec2 result)
|
||||
(assign (constant bool (1)) (swiz x (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz y (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
|
||||
(return (var_ref result))))
|
||||
|
||||
(signature uvec3
|
||||
(parameters
|
||||
(declare (in) uvec3 arg0)
|
||||
(declare (in) uint arg1)
|
||||
(declare (in) uint arg2))
|
||||
((declare () uvec3 result)
|
||||
(assign (constant bool (1)) (swiz x (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz y (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz z (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
|
||||
(return (var_ref result))))
|
||||
|
||||
(signature uvec4
|
||||
(parameters
|
||||
(declare (in) uvec4 arg0)
|
||||
(declare (in) uint arg1)
|
||||
(declare (in) uint arg2))
|
||||
((declare () uvec4 result)
|
||||
(assign (constant bool (1)) (swiz x (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz x (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz y (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz y (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz z (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz z (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz w (var_ref result)) (expression uvec4 max (expression uvec4 min (swiz w (var_ref arg0)) (var_ref arg2)) (var_ref arg1)))
|
||||
(return (var_ref result))))
|
||||
))
|
||||
127
builtins/130/max
Normal file
127
builtins/130/max
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
((function max
|
||||
(signature int
|
||||
(parameters
|
||||
(declare (in) int arg0)
|
||||
(declare (in) int arg1))
|
||||
((return (expression int max (var_ref arg0) (var_ref arg1)))))
|
||||
|
||||
(signature ivec2
|
||||
(parameters
|
||||
(declare (in) ivec2 arg0)
|
||||
(declare (in) ivec2 arg1))
|
||||
((return (expression ivec2 max (var_ref arg0) (var_ref arg1)))))
|
||||
|
||||
(signature ivec3
|
||||
(parameters
|
||||
(declare (in) ivec3 arg0)
|
||||
(declare (in) ivec3 arg1))
|
||||
((return (expression ivec3 max (var_ref arg0) (var_ref arg1)))))
|
||||
|
||||
(signature ivec4
|
||||
(parameters
|
||||
(declare (in) ivec4 arg0)
|
||||
(declare (in) ivec4 arg1))
|
||||
((return (expression ivec4 max (var_ref arg0) (var_ref arg1)))))
|
||||
|
||||
(signature ivec2
|
||||
(parameters
|
||||
(declare (in) ivec2 arg0)
|
||||
(declare (in) int arg1))
|
||||
((declare () ivec2 result)
|
||||
(assign (constant bool (1)) (swiz x (var_ref result))
|
||||
(expression int max (swiz x (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz y (var_ref result))
|
||||
(expression int max (swiz y (var_ref arg0)) (var_ref arg1)))
|
||||
(return (var_ref result))))
|
||||
|
||||
(signature ivec3
|
||||
(parameters
|
||||
(declare (in) ivec3 arg0)
|
||||
(declare (in) int arg1))
|
||||
((declare () ivec3 result)
|
||||
(assign (constant bool (1)) (swiz x (var_ref result))
|
||||
(expression int max (swiz x (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz y (var_ref result))
|
||||
(expression int max (swiz y (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz z (var_ref result))
|
||||
(expression int max (swiz z (var_ref arg0)) (var_ref arg1)))
|
||||
(return (var_ref result))))
|
||||
|
||||
(signature ivec4
|
||||
(parameters
|
||||
(declare (in) ivec4 arg0)
|
||||
(declare (in) int arg1))
|
||||
((declare () ivec4 result)
|
||||
(assign (constant bool (1)) (swiz x (var_ref result))
|
||||
(expression int max (swiz x (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz y (var_ref result))
|
||||
(expression int max (swiz y (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz z (var_ref result))
|
||||
(expression int max (swiz z (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz w (var_ref result))
|
||||
(expression int max (swiz w (var_ref arg0)) (var_ref arg1)))
|
||||
(return (var_ref result))))
|
||||
|
||||
(signature uint
|
||||
(parameters
|
||||
(declare (in) uint arg0)
|
||||
(declare (in) uint arg1))
|
||||
((return (expression uint max (var_ref arg0) (var_ref arg1)))))
|
||||
|
||||
(signature uvec2
|
||||
(parameters
|
||||
(declare (in) uvec2 arg0)
|
||||
(declare (in) uvec2 arg1))
|
||||
((return (expression uvec2 max (var_ref arg0) (var_ref arg1)))))
|
||||
|
||||
(signature uvec3
|
||||
(parameters
|
||||
(declare (in) uvec3 arg0)
|
||||
(declare (in) uvec3 arg1))
|
||||
((return (expression uvec3 max (var_ref arg0) (var_ref arg1)))))
|
||||
|
||||
(signature uvec4
|
||||
(parameters
|
||||
(declare (in) uvec4 arg0)
|
||||
(declare (in) uvec4 arg1))
|
||||
((return (expression uvec4 max (var_ref arg0) (var_ref arg1)))))
|
||||
|
||||
(signature uvec2
|
||||
(parameters
|
||||
(declare (in) uvec2 arg0)
|
||||
(declare (in) uint arg1))
|
||||
((declare () uvec2 result)
|
||||
(assign (constant bool (1)) (swiz x (var_ref result))
|
||||
(expression uint max (swiz x (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz y (var_ref result))
|
||||
(expression uint max (swiz y (var_ref arg0)) (var_ref arg1)))
|
||||
(return (var_ref result))))
|
||||
|
||||
(signature uvec3
|
||||
(parameters
|
||||
(declare (in) uvec3 arg0)
|
||||
(declare (in) uint arg1))
|
||||
((declare () uvec3 result)
|
||||
(assign (constant bool (1)) (swiz x (var_ref result))
|
||||
(expression uint max (swiz x (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz y (var_ref result))
|
||||
(expression uint max (swiz y (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz z (var_ref result))
|
||||
(expression uint max (swiz z (var_ref arg0)) (var_ref arg1)))
|
||||
(return (var_ref result))))
|
||||
|
||||
(signature uvec4
|
||||
(parameters
|
||||
(declare (in) uvec4 arg0)
|
||||
(declare (in) uint arg1))
|
||||
((declare () uvec4 result)
|
||||
(assign (constant bool (1)) (swiz x (var_ref result))
|
||||
(expression uint max (swiz x (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz y (var_ref result))
|
||||
(expression uint max (swiz y (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz z (var_ref result))
|
||||
(expression uint max (swiz z (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz w (var_ref result))
|
||||
(expression uint max (swiz w (var_ref arg0)) (var_ref arg1)))
|
||||
(return (var_ref result))))
|
||||
))
|
||||
127
builtins/130/min
Normal file
127
builtins/130/min
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
((function min
|
||||
(signature int
|
||||
(parameters
|
||||
(declare (in) int arg0)
|
||||
(declare (in) int arg1))
|
||||
((return (expression int min (var_ref arg0) (var_ref arg1)))))
|
||||
|
||||
(signature ivec2
|
||||
(parameters
|
||||
(declare (in) ivec2 arg0)
|
||||
(declare (in) ivec2 arg1))
|
||||
((return (expression ivec2 min (var_ref arg0) (var_ref arg1)))))
|
||||
|
||||
(signature ivec3
|
||||
(parameters
|
||||
(declare (in) ivec3 arg0)
|
||||
(declare (in) ivec3 arg1))
|
||||
((return (expression ivec3 min (var_ref arg0) (var_ref arg1)))))
|
||||
|
||||
(signature ivec4
|
||||
(parameters
|
||||
(declare (in) ivec4 arg0)
|
||||
(declare (in) ivec4 arg1))
|
||||
((return (expression ivec4 min (var_ref arg0) (var_ref arg1)))))
|
||||
|
||||
(signature ivec2
|
||||
(parameters
|
||||
(declare (in) ivec2 arg0)
|
||||
(declare (in) int arg1))
|
||||
((declare () ivec2 result)
|
||||
(assign (constant bool (1)) (swiz x (var_ref result))
|
||||
(expression int min (swiz x (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz y (var_ref result))
|
||||
(expression int min (swiz y (var_ref arg0)) (var_ref arg1)))
|
||||
(return (var_ref result))))
|
||||
|
||||
(signature ivec3
|
||||
(parameters
|
||||
(declare (in) ivec3 arg0)
|
||||
(declare (in) int arg1))
|
||||
((declare () ivec3 result)
|
||||
(assign (constant bool (1)) (swiz x (var_ref result))
|
||||
(expression int min (swiz x (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz y (var_ref result))
|
||||
(expression int min (swiz y (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz z (var_ref result))
|
||||
(expression int min (swiz z (var_ref arg0)) (var_ref arg1)))
|
||||
(return (var_ref result))))
|
||||
|
||||
(signature ivec4
|
||||
(parameters
|
||||
(declare (in) ivec4 arg0)
|
||||
(declare (in) int arg1))
|
||||
((declare () ivec4 result)
|
||||
(assign (constant bool (1)) (swiz x (var_ref result))
|
||||
(expression int min (swiz x (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz y (var_ref result))
|
||||
(expression int min (swiz y (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz z (var_ref result))
|
||||
(expression int min (swiz z (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz w (var_ref result))
|
||||
(expression int min (swiz w (var_ref arg0)) (var_ref arg1)))
|
||||
(return (var_ref result))))
|
||||
|
||||
(signature uint
|
||||
(parameters
|
||||
(declare (in) uint arg0)
|
||||
(declare (in) uint arg1))
|
||||
((return (expression uint min (var_ref arg0) (var_ref arg1)))))
|
||||
|
||||
(signature uvec2
|
||||
(parameters
|
||||
(declare (in) uvec2 arg0)
|
||||
(declare (in) uvec2 arg1))
|
||||
((return (expression uvec2 min (var_ref arg0) (var_ref arg1)))))
|
||||
|
||||
(signature uvec3
|
||||
(parameters
|
||||
(declare (in) uvec3 arg0)
|
||||
(declare (in) uvec3 arg1))
|
||||
((return (expression uvec3 min (var_ref arg0) (var_ref arg1)))))
|
||||
|
||||
(signature uvec4
|
||||
(parameters
|
||||
(declare (in) uvec4 arg0)
|
||||
(declare (in) uvec4 arg1))
|
||||
((return (expression uvec4 min (var_ref arg0) (var_ref arg1)))))
|
||||
|
||||
(signature uvec2
|
||||
(parameters
|
||||
(declare (in) uvec2 arg0)
|
||||
(declare (in) uint arg1))
|
||||
((declare () uvec2 result)
|
||||
(assign (constant bool (1)) (swiz x (var_ref result))
|
||||
(expression uint min (swiz x (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz y (var_ref result))
|
||||
(expression uint min (swiz y (var_ref arg0)) (var_ref arg1)))
|
||||
(return (var_ref result))))
|
||||
|
||||
(signature uvec3
|
||||
(parameters
|
||||
(declare (in) uvec3 arg0)
|
||||
(declare (in) uint arg1))
|
||||
((declare () uvec3 result)
|
||||
(assign (constant bool (1)) (swiz x (var_ref result))
|
||||
(expression uint min (swiz x (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz y (var_ref result))
|
||||
(expression uint min (swiz y (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz z (var_ref result))
|
||||
(expression uint min (swiz z (var_ref arg0)) (var_ref arg1)))
|
||||
(return (var_ref result))))
|
||||
|
||||
(signature uvec4
|
||||
(parameters
|
||||
(declare (in) uvec4 arg0)
|
||||
(declare (in) uint arg1))
|
||||
((declare () uvec4 result)
|
||||
(assign (constant bool (1)) (swiz x (var_ref result))
|
||||
(expression uint min (swiz x (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz y (var_ref result))
|
||||
(expression uint min (swiz y (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz z (var_ref result))
|
||||
(expression uint min (swiz z (var_ref arg0)) (var_ref arg1)))
|
||||
(assign (constant bool (1)) (swiz w (var_ref result))
|
||||
(expression uint min (swiz w (var_ref arg0)) (var_ref arg1)))
|
||||
(return (var_ref result))))
|
||||
))
|
||||
Loading…
Add table
Reference in a new issue