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

QSGGuiThreadRenderLoop uses single context for all windows

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Reported
    • Priority: P2: Important
    • Resolution: Unresolved
    • Affects Version/s: 5.12, 5.14
    • Fix Version/s: None
    • Component/s: Qt RHI, Quick: SceneGraph
    • Labels:
      None
    • Platform/s:
      All

      Description

      QSGGuiThreadRenderLoop::renderWindow uses a single shared QOpenGLContext for all windows, that is set up on first creation with:

              gl->setFormat(window->requestedFormat());
              gl->setScreen(window->screen());
      

      This is a problem is subsequent windows are rendered where the screen or surface format doesn't match. For example if the first window doesn't have an alpha, while the second window does, the GL context (on macOS e.g.) is setup without an NSOpenGLPFAAlphaSize, resulting in the second window not being transparent but instead black.

        Attachments

          Issue Links

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

            Activity

              People

              Assignee:
              janichol Andy Nichols
              Reporter:
              vestbo Tor Arne Vestbø
              Votes:
              5 Vote for this issue
              Watchers:
              6 Start watching this issue

                Dates

                Created:
                Updated:

                  Gerrit Reviews

                  There are no open Gerrit changes