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

OpenGL2 paint engine crashes with invalid shader combination

    XMLWordPrintable

Details

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

    Description

      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.

      Attachments

        Issue Links

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

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes