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

A macro for disabling the shader cache

    XMLWordPrintable

Details

    • Linux/Yocto

    Description

      An commercial user is requesting adding a macro to forcibly disabling the shader cache, that is shared by QOpenGLShaderProgram and QRhi OpenGL backend.

      The back ground of this request :

      • QOpenGLProgramBinarySupportCheck::QOpenGLProgramBinarySupportCheck() checks :
         (Check 1) OpenGLES version is 3 or newer? If YES, it sets the shader cache as "supported".
         (Check 2) Even if OpenGLES is older than 3, is there "GL_OES_get_program_binary" extension? If YES, it sets the shader cache as "supported".
      • However, under some Yocto Linux environment, when the "GL_OES_get_program_binary" extension is found in Check 2 and the shader cache gets enabled, calling glGetProgramBinary() causes a heap-buffer-overflow detected by Address Sanitizer. This can be avoided by forcibly disabling the shader cache, i.e. fixedly setting "const bool hasExt = false;"
      • To resove this issue, the user is requesting a macro switch to disable the shader cache on demand.

       

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            lagocs Laszlo Agocs
            hitoshiito Hitoshi Ito
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes