Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-35353

"bradius" uniform can cause uniform precision mismatch

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 5.2.0
    • 5.1.0
    • GUI: OpenGL
    • None
    • d443eff5b67fdf51cb3f1aca763bd3c407158720

    Description

      According to section 10.3 of http://www.khronos.org/registry/gles/specs/2.0/GLSL_ES_Specification_1.0.17.pdf, "precision qualifiers for uniforms must match."

      The RadialGradientBrush shaders (in src/gui/opengl/qopenglengineshadersource_p.h and src/opengl/gl2paintengineex/qglengineshadersource_p.h) specify a

      uniform highp vec3 bradius
      

      for both the vertex and fragment shaders. However, with OpenGL ES 2.0, Qt may redefine highp as mediump in the fragment shader (see e.g. QOpenGL_REDEFINE_HIGHP).

      This has been seen to cause shader compilation problems on a Mali GPU, complaining about uniform precision mismatch. See https://github.com/mer-packages/qtbase/commit/13f7434c7abd921132d4283b5cccf406e7f5ce36 for a workaround.

      Attachments

        Activity

          People

            mbrasser Michael Brasser
            mbrasser Michael Brasser
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: