[Mesa-dev] [PATCH v2] glsl: Correct several built-in functions availability

Timothy Arceri tarceri at itsqueeze.com
Fri Nov 9 03:57:03 UTC 2018


On 2/11/18 6:41 am, Ian Romanick wrote:
> On 10/31/2018 03:05 PM, Timothy Arceri wrote:
>> 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).
> 
> Yeah, I was pretty surprised by this list of functions.  I think the
> absolute minimum bar is a set of piglit tests that pass on at least one
> of NVIDIA or AMD closed-source drivers.  Adding CTS tests that only
> operate on GLSL 1.10 or 1.20 is unlikely to be successful.  GLSL ES 1.00
> tests have more of a chance, but it's still a very slim chance.

What do you mean? You mean they wont be accepted?

I landed some 1.30 tests for a long standing issue affecting Mesa:

https://github.com/KhronosGroup/VK-GL-CTS/blob/master/external/openglcts/data/gl30/declarations.test 


> 
>> 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)
>>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 


More information about the mesa-dev mailing list