Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. Why is QtQuick creating multiple Open GL Render Contexts?
Qt 6.11 is out! See what's new in the release blog

Why is QtQuick creating multiple Open GL Render Contexts?

Scheduled Pinned Locked Moved QML and Qt Quick
2 Posts 1 Posters 1.2k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Q Offline
    Q Offline
    qtmountain
    wrote on last edited by
    #1

    QtQuick applications creates two Open GL Render Contexts on my machine. It seems that Qt first fails to create a context. It then creates a new context which then is used by the application. The application seems to work as intended. But is this behaviour intended or is it a Qt-bug or an indication that something is wrong with my setup? Take the template QtQuick 2 application as an example:

    main.cpp
    @
    #include <QGuiApplication>
    #include <QQmlApplicationEngine>

    int main(int argc, char *argv[])
    {
    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    
    return app.exec&#40;&#41;;
    

    }
    @

    main.qml

    @
    import QtQuick 2.2
    import QtQuick.Window 2.1

    Window {
    visible: true
    width: 360
    height: 360

    MouseArea {
        anchors.fill: parent
        onClicked: {
            Qt.quit(&#41;;
        }
    }
    
    Text {
        text: qsTr("Hello World")
        anchors.centerIn: parent
    }
    

    }
    @

    This application (standard debug build) show two Open GL contexts when debugged with gDEBugger. The info that gDEBugger gives is a little different for the two contexts. Context 1 has Pixel Format ID 4, not Double Buffered and Stencil Channel 0 while Context 2 has Pixel Format ID 12, is Double Buffered and Stencil Channel 8. Otherwise the info is the same for both contexts.

    1 Reply Last reply
    0
    • Q Offline
      Q Offline
      qtmountain
      wrote on last edited by
      #2

      Additional info:

      Object creation call stack strace, retrived by gDEBugger, for Open GL Context 1:
      0x62874bf3 - qwindowsd.dll
      0x62874c96 - qwindowsd.dll
      0x6287511d - qwindowsd.dll
      0x628753f9 - qwindowsd.dll
      0x6284a6ea - qwindowsd.dll
      0x6284a71a - qwindowsd.dll
      0x6284a610 - qwindowsd.dll
      0x6284a688 - qwindowsd.dll
      ZN14QWindowPrivate6createEb - Qt5Guid.dll
      ZN7QWindow6createEv - Qt5Guid.dll
      ZN7QWindow10setVisibleEb - Qt5Guid.dll
      ZN24QQuickShaderEffectSource24scheduledUpdateCompletedEv - Qt5Quickd.dll
      ZN24QQuickShaderEffectSource24scheduledUpdateCompletedEv - Qt5Quickd.dll
      ZN24QQuickShaderEffectSource24scheduledUpdateCompletedEv - Qt5Quickd.dll
      ZN27QQmlFileSelectorInterceptor9interceptERK4QUrlN26QQmlAbstractUrlInterceptor8DataTypeE - Qt5Qmld.dll
      ZN20QQmlComponentPrivate8completeEP17QQmlEnginePrivatePNS_17ConstructionStateE - Qt5Qmld.dll
      ZN20QQmlComponentPrivate14completeCreateEv - Qt5Qmld.dll
      ZN13QQmlComponent14completeCreateEv - Qt5Qmld.dll
      ZN13QQmlComponent6createEP11QQmlContext - Qt5Qmld.dll
      ZN28QQmlApplicationEnginePrivate13_q_finishLoadEP7QObject - Qt5Qmld.dll
      ZN28QQmlApplicationEnginePrivate9startLoadERK4QUrlRK10QByteArrayb - Qt5Qmld.dll
      ZN21QQmlApplicationEngine4loadERK4QUrl - Qt5Qmld.dll
      0x0040169d - DefaultQtQuick.exe
      0x00402ac7 - DefaultQtQuick.exe
      0x00402dcc - DefaultQtQuick.exe
      0x004013dd - DefaultQtQuick.exe
      BaseThreadInitThunk - KERNEL32.DLL
      RtlTryAcquireSRWLockShared - ntdll.dll
      RtlTryAcquireSRWLockShared - ntdll.dll

      Object creation call stack strace, retrived by gDEBugger, for Open GL Context 2:
      0x628738ab - qwindowsd.dll
      0x62875e8d - qwindowsd.dll
      0x628726d7 - qwindowsd.dll
      0x6284a89f - qwindowsd.dll
      ZN14QOpenGLContext6createEv - Qt5Guid.dll
      ZN13QSGRenderLoop28handleContextCreationFailureEP12QQuickWindowb - Qt5Quickd.dll
      ZN12QQuickWindow9showEventEP10QShowEvent - Qt5Quickd.dll
      ZN7QWindow5eventEP6QEvent - Qt5Guid.dll
      ZN12QQuickWindow5eventEP6QEvent - Qt5Quickd.dll
      ZN23QCoreApplicationPrivate13notify_helperEP7QObjectP6QEvent - Qt5Cored.dll
      ZN16QCoreApplication6notifyEP7QObjectP6QEvent - Qt5Cored.dll
      ZN15QGuiApplication6notifyEP7QObjectP6QEvent - Qt5Guid.dll
      ZN16QCoreApplication14notifyInternalEP7QObjectP6QEvent - Qt5Cored.dll
      ZN18QOpenGLTimeMonitor11qt_metacallEN11QMetaObject4CallEiPPv - Qt5Guid.dll
      ZN7QWindow10setVisibleEb - Qt5Guid.dll
      ZN24QQuickShaderEffectSource24scheduledUpdateCompletedEv - Qt5Quickd.dll
      ZN24QQuickShaderEffectSource24scheduledUpdateCompletedEv - Qt5Quickd.dll
      ZN24QQuickShaderEffectSource24scheduledUpdateCompletedEv - Qt5Quickd.dll
      ZN27QQmlFileSelectorInterceptor9interceptERK4QUrlN26QQmlAbstractUrlInterceptor8DataTypeE - Qt5Qmld.dll
      ZN20QQmlComponentPrivate8completeEP17QQmlEnginePrivatePNS_17ConstructionStateE - Qt5Qmld.dll
      ZN20QQmlComponentPrivate14completeCreateEv - Qt5Qmld.dll
      ZN13QQmlComponent14completeCreateEv - Qt5Qmld.dll
      ZN13QQmlComponent6createEP11QQmlContext - Qt5Qmld.dll
      ZN28QQmlApplicationEnginePrivate13_q_finishLoadEP7QObject - Qt5Qmld.dll
      ZN28QQmlApplicationEnginePrivate9startLoadERK4QUrlRK10QByteArrayb - Qt5Qmld.dll
      ZN21QQmlApplicationEngine4loadERK4QUrl - Qt5Qmld.dll
      0x0040169d - DefaultQtQuick.exe
      0x00402ac7 - DefaultQtQuick.exe
      0x00402dcc - DefaultQtQuick.exe
      0x004013dd - DefaultQtQuick.exe
      BaseThreadInitThunk - KERNEL32.DLL
      RtlTryAcquireSRWLockShared - ntdll.dll
      RtlTryAcquireSRWLockShared - ntdll.dll

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved