Bug 98243

Summary: dEQP mismatched UBO precision qualifiers
Product: Mesa Reporter: Randy <randy.xu>
Component: glsl-compilerAssignee: mesa-dev
Status: RESOLVED FIXED QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: normal    
Priority: medium    
Version: git   
Hardware: All   
OS: Linux (All)   
See Also: https://bugs.freedesktop.org/show_bug.cgi?id=97804
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 94448    

Description Randy 2016-10-14 06:11:17 UTC
dEQP-GLES31.functional.shaders.linkage.uniform.block.differing_precision.qpa: <Result StatusCode="Fail">expected shaders to compile and link properly, but failed to link.</Result>
Comment 1 Randy 2016-10-14 06:14:59 UTC
Mesa git top commit: 389d6dedbe75defe07216ad761569a9b94f44e58
dEQP git top commit: ca988480be945772473f9256b6ae91fa6aa62bd1

Reproduced on HSW and SKL
Comment 2 Samuel Iglesias Gonsálvez 2016-10-19 06:12:24 UTC
(In reply to Randy from comment #0)
> dEQP-GLES31.functional.shaders.linkage.uniform.block.differing_precision.qpa:
> <Result StatusCode="Fail">expected shaders to compile and link properly, but
> failed to link.</Result>

I have sent a couple of patches to fix it and open a discussion to see if this behaviour is intended or is a spec bug: allowing different precision qualifiers for block members in different definitions of the same shader interface is only allowed in GLSL ES 3.1. In older and newer (GLSL ES 3.2) specs the precision qualifiers should match.

https://lists.freedesktop.org/archives/mesa-dev/2016-October/132494.html
Comment 3 Eero Tamminen 2016-10-19 07:23:09 UTC
Btw. Is there dEQP test for issue in bug 97804?
Comment 4 Samuel Iglesias Gonsálvez 2016-10-19 08:37:33 UTC
(In reply to Eero Tamminen from comment #3)
> Btw. Is there dEQP test for issue in bug 97804?

At first glance, I have not found any neither in dEQP GLES 3.1 nor GLES 3 tests :-(
Comment 5 Samuel Iglesias Gonsálvez 2016-10-24 05:54:12 UTC
Patches pushed to master:

b50b82b glsl/es31: precision qualifier doesn't need to match in shader interface block members
849390a glsl: move intrastage_match() after interstage_member_mismatch()

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.