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

Viewport does not display when loaded dynamically in direct mode

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 5.0.0
    • None
    • Windows 7, MSVC2010, qt5 from git

    Description

      Viewport does not display when set to DirectRender mode, when it is loaded as a QQmlComponent, and then reparented to a visible QQuickItem.

      So exactly what I've done is:
      Make a QQuickCanvas
      Load a QQmlComponent (that has the viewport)
      Set the QQmlComponent's parent item to the QQmlComponent's root item

      There are actually two cases - one is if it is immediately loaded (it sometimes works in this case). Another is if it is loaded after a bit of time (I was trying with a 15 second delay, to simulate a user entering one view and then clicking to enter the one with the 3d viewport)

      I don't know exactly what is going on, but I did notice that in debug mode for the one that works it loads:

      ModLoad: 00000000`6ad20000 00000000`6ad57000 C:\Qt\qt5build\qtbase\plugins\imageformats\qjpeg5.dll
      ModLoad: 00000000`67880000 00000000`678e5000 C:\Qt\qt5build\qtbase\plugins\imageformats\qjpegd5.dll
      ModLoad: 00000000`732e0000 00000000`732e9000 C:\Qt\qt5build\qtbase\plugins\imageformats\qsvg5.dll
      ModLoad: 00000000`72120000 00000000`72131000 C:\Qt\qt5build\qtbase\plugins\imageformats\qsvgd5.dll
      ModLoad: 00000000`732e0000 00000000`732e9000 C:\Qt\qt5build\qtbase\plugins\imageformats\qtga5.dll

      ModLoad: 00000000`72120000 00000000`72133000 C:\Qt\qt5build\qtbase\plugins\imageformats\qtgad5.dll
      ModLoad: 00000000`732e0000 00000000`732e9000 C:\Qt\qt5build\qtbase\plugins\imageformats\qwbmp5.dll
      ModLoad: 00000000`72120000 00000000`72132000 C:\Qt\qt5build\qtbase\plugins\imageformats\qwbmpd5.dll
      ModLoad: 00000000`72120000 00000000`72136000 C:\Qt\qt5build\qtbase\plugins\imageformats\qgifd5.dll
      ModLoad: 00000000`6e990000 00000000`6e9a5000 C:\Qt\qt5build\qtbase\plugins\imageformats\qicod5.dll
      ModLoad: 00000000`5ed50000 00000000`5edb5000 C:\Qt\qt5build\qtbase\plugins\imageformats\qjpegd5.dll
      ModLoad: 00000000`6e140000 00000000`6e151000 C:\Qt\qt5build\qtbase\plugins\imageformats\qsvgd5.dll
      ModLoad: 00000000`67860000 00000000`678ee000 C:\Qt\qt5build\qtbase\lib\QtSvgd5.dll
      ModLoad: 00000000`5b970000 00000000`5c14a000 C:\Qt\qt5build\qtbase\lib\QtWidgetsd5.dll
      ModLoad: 00000000`6ad40000 00000000`6ad53000 C:\Qt\qt5build\qtbase\plugins\imageformats\qtgad5.dll
      ModLoad: 00000000`6ad20000 00000000`6ad32000 C:\Qt\qt5build\qtbase\plugins\imageformats\qwbmpd5.dll

      before

      ModLoad: 00000000`6fd90000 00000000`6fda6000 C:\Windows\SysWOW64\CRYPTSP.dll

      ModLoad: 00000000`6fcc0000 00000000`6fcfb000 C:\Windows\SysWOW64\rsaenh.dll
      ModLoad: 00000000`71e90000 00000000`71e9e000 C:\Windows\SysWOW64\RpcRtRemote.dll
      ModLoad: 00000000`04100000 00000000`0425c000 C:\Windows\SysWOW64\ole32.dll
      ModLoad: 00000000`04100000 00000000`0425c000 C:\Windows\SysWOW64\ole32.dll
      ModLoad: 00000000`74c70000 00000000`74cf3000 C:\Windows\syswow64\CLBCatQ.DLL
      ModLoad: 00000000`10000000 00000000`10cb3000 C:\Windows\SysWOW64\ig4icd32.dll
      ModLoad: 00000000`745e0000 00000000`745e9000 C:\Windows\SysWOW64\version.dll

      whereas in the one that didn't work it did:

      ModLoad: 00000000`6fd90000 00000000`6fda6000 C:\Windows\SysWOW64\CRYPTSP.dll

      ModLoad: 00000000`6fcc0000 00000000`6fcfb000 C:\Windows\SysWOW64\rsaenh.dll
      ModLoad: 00000000`71e90000 00000000`71e9e000 C:\Windows\SysWOW64\RpcRtRemote.dll
      ModLoad: 00000000`042d0000 00000000`0442c000 C:\Windows\SysWOW64\ole32.dll
      ModLoad: 00000000`046d0000 00000000`0482c000 C:\Windows\SysWOW64\ole32.dll
      ModLoad: 00000000`74c70000 00000000`74cf3000 C:\Windows\syswow64\CLBCatQ.DLL
      ModLoad: 00000000`10000000 00000000`10cb3000 C:\Windows\SysWOW64\ig4icd32.dll
      ModLoad: 00000000`745e0000 00000000`745e9000 C:\Windows\SysWOW64\version.dll

      then

      ModLoad: 00000000`730f0000 00000000`730fb000 C:\Qt\qt5build\qtbase\plugins\imageformats\qgif5.dll
      ModLoad: 00000000`6e990000 00000000`6e9a6000 C:\Qt\qt5build\qtbase\plugins\imageformats\qgifd5.dll
      ModLoad: 00000000`730f0000 00000000`730fb000 C:\Qt\qt5build\qtbase\plugins\imageformats\qico5.dll
      ModLoad: 00000000`6e990000 00000000`6e9a5000 C:\Qt\qt5build\qtbase\plugins\imageformats\qicod5.dll

      ModLoad: 00000000`6ad20000 00000000`6ad57000 C:\Qt\qt5build\qtbase\plugins\imageformats\qjpeg5.dll
      ModLoad: 00000000`5cdd0000 00000000`5ce35000 C:\Qt\qt5build\qtbase\plugins\imageformats\qjpegd5.dll
      ModLoad: 00000000`730f0000 00000000`730f9000 C:\Qt\qt5build\qtbase\plugins\imageformats\qsvg5.dll
      ModLoad: 00000000`6e150000 00000000`6e161000 C:\Qt\qt5build\qtbase\plugins\imageformats\qsvgd5.dll
      ModLoad: 00000000`730f0000 00000000`730f9000 C:\Qt\qt5build\qtbase\plugins\imageformats\qtga5.dll
      ModLoad: 00000000`6e990000 00000000`6e9a3000 C:\Qt\qt5build\qtbase\plugins\imageformats\qtgad5.dll

      ModLoad: 00000000`730f0000 00000000`730f9000 C:\Qt\qt5build\qtbase\plugins\imageformats\qwbmp5.dll
      ModLoad: 00000000`6e990000 00000000`6e9a2000 C:\Qt\qt5build\qtbase\plugins\imageformats\qwbmpd5.dll
      ModLoad: 00000000`6e150000 00000000`6e166000 C:\Qt\qt5build\qtbase\plugins\imageformats\qgifd5.dll
      ModLoad: 00000000`6ad40000 00000000`6ad55000 C:\Qt\qt5build\qtbase\plugins\imageformats\qicod5.dll
      ModLoad: 00000000`5cd60000 00000000`5cdc5000 C:\Qt\qt5build\qtbase\plugins\imageformats\qjpegd5.dll
      ModLoad: 00000000`6e990000 00000000`6e9a1000 C:\Qt\qt5build\qtbase\plugins\imageformats\qsvgd5.dll
      ModLoad: 00000000`5ccd0000 00000000`5cd5e000 C:\Qt\qt5build\qtbase\lib\QtSvgd5.dll
      ModLoad: 00000000`5bb80000 00000000`5c35a000 C:\Qt\qt5build\qtbase\lib\QtWidgetsd5.dll
      ModLoad: 00000000`6ad20000 00000000`6ad33000 C:\Qt\qt5build\qtbase\plugins\imageformats\qtgad5.dll
      ModLoad: 00000000`6a540000 00000000`6a552000 C:\Qt\qt5build\qtbase\plugins\imageformats\qwbmpd5.dll

      I've looked at pretty much everything else and that's the only real difference between the viewport that showed properly and the viewport that didn't show.

      If you need full code example let me know and I can try to whip something up that shows this.

      This may have something to do with https://bugreports.qt-project.org/browse/QTBUG-26623 but it seemed different enough that it warranted a new bug.

      Attachments

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

        Activity

          People

            Unassigned Unassigned
            speedin_up Morgan McKenzie
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes