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

QGLPixelBuffer context sharing not working with multihead on X11

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 4.6.3
    • 4.5.0, 4.5.1, 4.5.2, 4.5.3, 4.6.0, 4.6.1
    • GUI: OpenGL
    • None
    • Kubuntu 8.04 32bit / X11 using proprietary NVidia driver (tested with various versions, e.g. 190.53) and multi-screen setup (NO Xinerama, multiple "screen" sections in xorg.conf)
    • 358bbd707bb5e0ce255559e45f8dedb9e9243a9d

    Description

      I'm using an PBO for offscreen rendering in a multihead Application on X11, but requesting a PBO with shared context which is located on a screen which is not the primary application screen fails. I have a patch which fixes this issue.

      Details:
      When looking at the source in qglpixelbuffer_x11.cpp, method init(), one can see that the PBO is created using a FBConfig which is for X11->Display, which is in fact the Display the application was started on.
      The QGLWidget to share the context with was created on another Display, which leads to requesting a GL context (for the PBO) which shares with a context from another display (screen). This cannot work and gives a "BadMatch" XError (see also GLX docu).
      Apart from this creating the PBO for the primary screen is wrong.

      The attached patch fixes this issue by using the display and screen from the share widget, if supplied, and falling back to the default values, if not.

      With kind regards, Bjoern Toschi

      Attachments

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

        Activity

          People

            kjernase Trond Kjernåsen (Inactive)
            bjoerntoschi Björn Toschi
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes