Details
-
Bug
-
Resolution: Unresolved
-
P1: Critical
-
None
-
5.10.1
-
None
-
MSVC 2017 15.9.5 x64, Core i5-6300U + HD Graphics 520, driver version 25.20.100.6519 (the latest one, but occurs other machines as well with the same driver version)
Description
Dear Qt,
in our application we have multiple render sub-windows, a separate QAspectEngine is assigned to each sub-window.
When the opengl rendering happens and submitRenderViews is called at exactly the same time (according to the log) from both render threads, the application becomes unresponsive and it causes high CPU load, window contents are either not shown or only partly (both subwindows has the same content, but occurs with different content as well) and crashes.
stack trace:
ntdll.dll!NtSetEvent() Unknown Symbols loaded.
ntdll.dll!NtSetEvent() Unknown Symbols loaded.
KernelBase.dll!SetEvent() Unknown Symbols loaded.
ig9icd64.dll!00007ffbbf8171ea() Unknown No symbols loaded. ig9icd64.dll!00007ffbbf77e092() Unknown No symbols loaded. opengl32.dll!MakeAnyCurrent() Unknown Symbols loaded. opengl32.dll!wglMakeCurrent() Unknown Symbols loaded.> qwindowsd.dll!QWindowsGLContext::makeCurrent(QPlatformSurface * surface=0x000001a212ca5930) Line 1328 C++ Symbols loaded. Qt5Guid.dll!QOpenGLContext::makeCurrent(QSurface * surface=0x000001a212648120) Line 986 C++ Symbols loaded. Qt53DRenderd.dll!Qt3DRender::Render::GraphicsContext::makeCurrent(QSurface * surface=0x000001a212648120) Line 443 C++ Symbols loaded. Qt53DRenderd.dll!Qt3DRender::Render::GraphicsContext::beginDrawing(QSurface * surface=0x000001a212648120) Line 253 C++ Symbols loaded. Qt53DRenderd.dll!Qt3DRender::Render::Renderer::submitRenderViews(const QVector<Qt3DRender::Render::RenderView *> & renderViews={...}) Line 1312 C++ Symbols loaded. Qt53DRenderd.dll!Qt3DRender::Render::Renderer::doRender(bool scene3dBlocking=false) Line 660 C++ Symbols loaded. Qt53DRenderd.dll!Qt3DRender::Render::Renderer::render() Line 565 C++ Symbols loaded. Qt53DRenderd.dll!Qt3DRender::Render::RenderThread::run() Line 89 C++ Symbols loaded. Qt5Cored.dll!QThreadPrivate::start(void * arg=0x000001a2125f9600) Line 378 C++ Symbols loaded. kernel32.dll!BaseThreadInitThunk() Unknown Symbols loaded. ntdll.dll!RtlUserThreadStart() Unknown Symbols loaded.
From the debug logs:
thread: 21812 tick: 211354751873 message: Qt3D.Renderer.Rendering struct Qt3DRender::Render::Renderer::ViewSubmissionResultData __cdecl Qt3DRender::Render::Renderer::submitRenderViews(const class QVector<class Qt3DRender::Render::RenderView *> &) Submitted Renderview 1 / 2 in 7 ms struct Qt3DRender::Render::Renderer::ViewSubmissionResultData __cdecl Qt3DRender::Render::Renderer::submitRenderViews(const class QVector<class Qt3DRender::Render::RenderView *> &) backend\renderer.cpp 1421
thread: 23004 tick: 211354751327 Qt3D.Renderer.Rendering struct Qt3DRender::Render::Renderer::ViewSubmissionResultData __cdecl Qt3DRender::Render::Renderer::submitRenderViews(const class QVector<class Qt3DRender::Render::RenderView *> &) Submitted Renderview 2 / 2 in 7 ms struct Qt3DRender::Render::Renderer::ViewSubmissionResultData __cdecl Qt3DRender::Render::Renderer::submitRenderViews(const class QVector<class Qt3DRender::Render::RenderView *> &) backend\renderer.cpp 1421
It occurs both in Debug and Release mode.
This issue is not experienced so far under the following circumstances:
- using driver version 20.19.15.4501
- set environment variable to QT3DRENDER_DEBUG_LOGGING to 1 (but neither log messages are intercepted nor console is available, because the application is built for Windows subsystem only)
Best Regards,
Istvan