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.dllModLoad: 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.dllbefore
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.dllthen
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.dllModLoad: 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.dllModLoad: 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.