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?
Forum Updated to NodeBB v4.3 + New Features

Why is QtQuick creating multiple Open GL Render Contexts?

Scheduled Pinned Locked Moved QML and Qt Quick
2 Posts 1 Posters 852 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