[Mesa-dev] [PATCH v2] glsl: Correct several built-in functions availability
Timothy Arceri
tarceri at itsqueeze.com
Wed Oct 31 22:05:11 UTC 2018
If we are going to start tightening up this stuff I would really really
like to see CTS tests (not piglit tests) to go along with this stuff.
We are already way stricter with these type of things than the closed
source drivers and this leads to some apps not working. Before we go
ahead and tighten things up more we should get this stuff covered by the
CTS so that we are not the only ones enforcing the rules (i.e. fighting
an unwinnable battle).
On 1/11/18 5:37 am, Vadym Shovkoplias wrote:
> 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)
>
> v2: genIType sign(genIType x) was added in 1.30 GLSL spec, not in
> 1.50 spec
>
> 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 | 30 ++++++++++++-------------
> 1 file changed, 15 insertions(+), 15 deletions(-)
>
> diff --git a/src/compiler/glsl/builtin_functions.cpp b/src/compiler/glsl/builtin_functions.cpp
> index 5650365d1d..52e0599ad2 100644
> --- a/src/compiler/glsl/builtin_functions.cpp
> +++ b/src/compiler/glsl/builtin_functions.cpp
> @@ -1439,10 +1439,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 +1534,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), \
> @@ -1611,9 +1611,9 @@ builtin_builder::create_builtins()
> FI64(abs)
> FI64(sign)
> FD(floor)
> - FD(trunc)
> - FD(round)
> - FD(roundEven)
> + FD130(trunc)
> + FD130(round)
> + FD130(roundEven)
> FD(ceil)
> FD(fract)
>
> @@ -1637,7 +1637,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)
>
More information about the mesa-dev
mailing list