[Mesa-stable] Cherry-pick 0886be093fb871b0b6169718277e0f4d18df3ea7 to 17.2 and 17.3

Mark Janes mark.a.janes at intel.com
Tue Nov 7 06:28:48 UTC 2017


The fix for bug 103085 was recently pushed to master, and the issue
exists on stable branches as well:

commit:     0886be093fb871b0b6169718277e0f4d18df3ea7
Author:     Tomasz Figa <tfiga at chromium.org>

    glsl: Allow precision mismatch on dead data with GLSL ES 1.00
    
    Commit 259fc505454ea6a67aeacf6cdebf1398d9947759 added linker error for
    mismatching uniform precision, as required by GLES 3.0 specification and
    conformance test-suite.
    
    Several Android applications, including Forge of Empires, have shaders
    which violate this rule, on a dead varying that will be eliminated.
    The problem affects a big number of applications using Cocos2D engine
    and other GLES implementations accept this, this poses a serious
    application compatibility issue.
    
    Starting from GLSL ES 3.0, declarations with conflicting precision
    qualifiers are explicitly prohibited. However GLSL ES 1.00 does not
    clearly specify the behavior, except that
    
      "Uniforms are defined to behave as if they are using the same storage in
      the vertex and fragment processors and may be implemented this way.
      If uniforms are used in both the vertex and fragment shaders, developers
      should be warned if the precisions are different. Conversion of
      precision should never be implicit."
    
    The word "used" is not clear in this context and might refer to
     1) declared (same as GLES 3.x)
     2) referred after post-processing, or
     3) linked after all optimizations are done.
    
    Looking at existing applications, 2) or 3) seems to be widely adopted.
    To avoid compatibility issues, turn the error into a warning if GLSL ES
    version is lower than 3.0 and the data is dead in at least one of the
    shaders.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97532
    Signed-off-by: Tomasz Figa <tfiga at chromium.org>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>


More information about the mesa-stable mailing list