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

OpenGL2 paint engine crashes with invalid shader combination

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Not Evaluated Not Evaluated
    • None
    • 4.6.1
    • GUI: OpenGL
    • None

      The OpenGL2 paint engine can sometimes get into a state where "textureCoords" is declared twice leading to an error. The easiest way to make this happen is display a QFileDialog, as shown in the attached example. Under Linux/X11, it gives the following output:

      QGLShader::compile: "0(4) : error C1038: declaration of "textureCoords" conflicts with previous declaration at 0(4)"
      

      The text on some of the file dialog entries is replaced with black rectangles.

      On the N900, it gives the following followed by a segfault:

      QGLShader::compile: "Compile failed.
      ERROR: 0:4: 'textureCoords' : redefinition
      ERROR: 1 compilation errors. No code generated.
      
      "
      QGLShader::link: "Link Error: Fragment shader is missing.
      "
      "Shader program failed to link,  Error Log:
          Link Error: Fragment shader is missing.
      "
      Segmentation fault
      

      Seems to be some invalid combination of ImageSrc and Mask fragment shaders. It is difficult to trace this down to a single QPainter call - it happens after a sequence of events.

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

            tcooksey Tom Cooksey
            rweather Rhys Weatherley (closed Nokia identity) (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes