[Piglit] [PATCH] glsl: Correct several built-in functions availability

Vadim Shovkoplias vadim.shovkoplias at gmail.com
Wed Oct 31 16:09:03 UTC 2018


Sorry, wrong mailing list. It was intended for Mesa
Please ignore this.


ср, 31 окт. 2018 г. в 18:05, Vadym Shovkoplias <vadim.shovkoplias at gmail.com
>:

> In GLSL versions 1.00 ES, 1.10 and 1.20, Mesa includes
> some built-in functions which shouldn't be present in
> that version, namely:
>
>    genIType abs(genIType x)
>    genIType sign(genIType x)
>    genIType min(genIType x, genIType y)
>    genIType min(genIType x, int y)
>    genIType max(genIType x, genIType y)
>    genIType max(genIType x, int y)
>    genIType clamp(genIType x, genIType minVal, genIType maxVal)
>    genIType clamp(genIType x, int minVal, int maxVal)
>    genType trunc(genType x)
>    genType round(genType x)
>    genType roundEven(genType x)
>    genType modf(genType x, out genType i)
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108160
> Signed-off-by: Vadym Shovkoplias <vadym.shovkoplias at globallogic.com>
> ---
>  src/compiler/glsl/builtin_functions.cpp | 57 ++++++++++++++++++-------
>  1 file changed, 41 insertions(+), 16 deletions(-)
>
> diff --git a/src/compiler/glsl/builtin_functions.cpp
> b/src/compiler/glsl/builtin_functions.cpp
> index 5650365d1d..2b549312b5 100644
> --- a/src/compiler/glsl/builtin_functions.cpp
> +++ b/src/compiler/glsl/builtin_functions.cpp
> @@ -144,6 +144,12 @@ v130(const _mesa_glsl_parse_state *state)
>     return state->is_version(130, 300);
>  }
>
> +static bool
> +v150(const _mesa_glsl_parse_state *state)
> +{
> +   return state->is_version(150, 300);
> +}
> +
>  static bool
>  v130_desktop(const _mesa_glsl_parse_state *state)
>  {
> @@ -1439,10 +1445,10 @@ builtin_builder::create_builtins()
>                  _##NAME(always_available, glsl_type::vec2_type),  \
>                  _##NAME(always_available, glsl_type::vec3_type),  \
>                  _##NAME(always_available, glsl_type::vec4_type),  \
> -                _##NAME(always_available, glsl_type::int_type),   \
> -                _##NAME(always_available, glsl_type::ivec2_type), \
> -                _##NAME(always_available, glsl_type::ivec3_type), \
> -                _##NAME(always_available, glsl_type::ivec4_type), \
> +                _##NAME(v130, glsl_type::int_type),   \
> +                _##NAME(v130, glsl_type::ivec2_type), \
> +                _##NAME(v130, glsl_type::ivec3_type), \
> +                _##NAME(v130, glsl_type::ivec4_type), \
>                  _##NAME(fp64, glsl_type::double_type), \
>                  _##NAME(fp64, glsl_type::dvec2_type),  \
>                  _##NAME(fp64, glsl_type::dvec3_type),  \
> @@ -1534,14 +1540,14 @@ builtin_builder::create_builtins()
>                  _##NAME(always_available, glsl_type::vec3_type,
> glsl_type::vec3_type),  \
>                  _##NAME(always_available, glsl_type::vec4_type,
> glsl_type::vec4_type),  \
>
>                 \
> -                _##NAME(always_available, glsl_type::int_type,
>  glsl_type::int_type),   \
> -                _##NAME(always_available, glsl_type::ivec2_type,
> glsl_type::int_type),   \
> -                _##NAME(always_available, glsl_type::ivec3_type,
> glsl_type::int_type),   \
> -                _##NAME(always_available, glsl_type::ivec4_type,
> glsl_type::int_type),   \
> +                _##NAME(v130, glsl_type::int_type,
>  glsl_type::int_type),   \
> +                _##NAME(v130, glsl_type::ivec2_type,
> glsl_type::int_type),   \
> +                _##NAME(v130, glsl_type::ivec3_type,
> glsl_type::int_type),   \
> +                _##NAME(v130, glsl_type::ivec4_type,
> glsl_type::int_type),   \
>
>                 \
> -                _##NAME(always_available, glsl_type::ivec2_type,
> glsl_type::ivec2_type), \
> -                _##NAME(always_available, glsl_type::ivec3_type,
> glsl_type::ivec3_type), \
> -                _##NAME(always_available, glsl_type::ivec4_type,
> glsl_type::ivec4_type), \
> +                _##NAME(v130, glsl_type::ivec2_type,
> glsl_type::ivec2_type), \
> +                _##NAME(v130, glsl_type::ivec3_type,
> glsl_type::ivec3_type), \
> +                _##NAME(v130, glsl_type::ivec4_type,
> glsl_type::ivec4_type), \
>
>                 \
>                  _##NAME(v130, glsl_type::uint_type,
> glsl_type::uint_type),              \
>                  _##NAME(v130, glsl_type::uvec2_type,
> glsl_type::uint_type),              \
> @@ -1609,11 +1615,30 @@ builtin_builder::create_builtins()
>     FD(sqrt)
>     FD(inversesqrt)
>     FI64(abs)
> -   FI64(sign)
> +
> +   add_function("sign",                          \
> +                _sign(always_available, glsl_type::float_type), \
> +                _sign(always_available, glsl_type::vec2_type),  \
> +                _sign(always_available, glsl_type::vec3_type),  \
> +                _sign(always_available, glsl_type::vec4_type),  \
> +                _sign(v150, glsl_type::int_type),   \
> +                _sign(v150, glsl_type::ivec2_type), \
> +                _sign(v150, glsl_type::ivec3_type), \
> +                _sign(v150, glsl_type::ivec4_type), \
> +                _sign(fp64, glsl_type::double_type), \
> +                _sign(fp64, glsl_type::dvec2_type),  \
> +                _sign(fp64, glsl_type::dvec3_type),  \
> +                _sign(fp64, glsl_type::dvec4_type),  \
> +                _sign(int64, glsl_type::int64_t_type), \
> +                _sign(int64, glsl_type::i64vec2_type),  \
> +                _sign(int64, glsl_type::i64vec3_type),  \
> +                _sign(int64, glsl_type::i64vec4_type),  \
> +                0);
> +
>     FD(floor)
> -   FD(trunc)
> -   FD(round)
> -   FD(roundEven)
> +   FD130(trunc)
> +   FD130(round)
> +   FD130(roundEven)
>     FD(ceil)
>     FD(fract)
>
> @@ -1637,7 +1662,7 @@ builtin_builder::create_builtins()
>                  _mod(fp64, glsl_type::dvec4_type,  glsl_type::dvec4_type),
>                  NULL);
>
> -   FD(modf)
> +   FD130(modf)
>
>     FIUD2_MIXED(min)
>     FIUD2_MIXED(max)
> --
> 2.19.1
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/piglit/attachments/20181031/1ecf2056/attachment-0001.html>


More information about the Piglit mailing list