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 <[email protected]>


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

_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to