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?



[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(-)


mesa-dev mailing list

Reply via email to