QQuickPopupWindow performance issue



  • Whenever a combo or menu item is clicked it causes a stall afterwards. I've traced it down to this:

    @
    9 ?? /usr/lib/nvidia-346/libGL.so.1 0x7ffff291eba2
    10 glXCreatePbuffer /usr/lib/nvidia-346/libGL.so.1 0x7ffff291a868
    11 QGLXPbuffer::QGLXPbuffer qglxintegration.cpp 709 0x7fffe2092c0b
    12 QXcbIntegration::createPlatformOffscreenSurface qxcbintegration.cpp 290 0x7fffe20574e0
    13 QOffscreenSurface::create qoffscreensurface.cpp 169 0x7ffff385f279
    14 QSGThreadedRenderLoop::releaseResources qsgthreadedrenderloop.cpp 1049 0x7ffff6b9d0a7
    15 QSGThreadedRenderLoop::windowDestroyed qsgthreadedrenderloop.cpp 820 0x7ffff6b9b95e
    16 QQuickWindow::~QQuickWindow qquickwindow.cpp 1111 0x7ffff6bd592d
    17 QQuickPopupWindow::~QQuickPopupWindow qquickpopupwindow_p.h 43 0x7fffd5edaa4c
    18 QQuickMenuPopupWindow::~QQuickMenuPopupWindow qquickmenupopupwindow_p.h 41 0x7fffd5f05389
    19 QQuickMenuPopupWindow::~QQuickMenuPopupWindow qquickmenupopupwindow_p.h 41 0x7fffd5f053c2
    20 qDeleteInEventHandler qobject.cpp 4391 0x7ffff34803b5
    @

    Specifically this bit of code which creates a new pbuffer every time the popup window closes
    @
    if (!window->handle()) {
    qCDebug(QSG_LOG_RENDERLOOP) << "- using fallback surface";
    fallback = new QOffscreenSurface();
    fallback->setFormat(w->actualWindowFormat);
    fallback->create();
    }
    @

    Can I somehow set window->handle() to the main window so it doesn't need to create a superfluous pbuffer?


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.