[Mesa-dev] [PATCH 0/2] glsl/es31: precision qualifier doesn't need to match in shader interface block members

Tapani Pälli tapani.palli at intel.com
Thu Oct 20 05:03:28 UTC 2016


Hi;

On 10/19/2016 09:06 AM, Samuel Iglesias Gonsálvez wrote:
> Hello,
>
> The last patch of this series fixes one dEQP-GLES31 test [0] (bug [1]).
>
> GLSL ES 3.1 spec allows mismatching of precision qualifiers for shader
> interface block members (uniform blocks and shader storage blocks).
> However, in the rest of GLSL ES specs (including GLSL ES 3.2!) this is
> the opposite.
>
> Fortunately, the fix is not very intrusive. However it's strange that
> this is allowed only on GLSL ES 3.1 while older and newer specs said
> the opposite. Ian, What do you think? Should this be fixed in Mesa or
> is a spec bug?

9.2 (Matching Qualifiers), section 9.2.1 Linked Shaders has a table that 
shows which qualifiers need to match. For precision GLSL ES 3.1 says 
'No' for uniform and buffer blocks and GLSL ES 3.2 says 'Yes'.

Assuming no CI regressions, series is
Reviewed-by: Tapani Pälli <tapani.palli at intel.com>


> Thanks,
>
> Sam
>
> [0] dEQP-GLES31.functional.shaders.linkage.uniform.block.differing_precision
> [1] https://bugs.freedesktop.org/show_bug.cgi?id=98243
>
>
> Samuel Iglesias Gonsálvez (2):
>   glsl: move intrastage_match() after interstage_member_mismatch()
>   glsl/es31: precision qualifier doesn't need to match in shader
>     interface block members
>
>  src/compiler/glsl/link_interface_blocks.cpp | 95 +++++++++++++++--------------
>  src/compiler/glsl/linker.cpp                | 10 ++-
>  2 files changed, 58 insertions(+), 47 deletions(-)
>


More information about the mesa-dev mailing list