Details
Description
If Qt is built with -opengl angle (which is the default when not passing -opengl dynamic to configure), you get the following log messages when running simplebrowser:
2264:12992:0716/153046.483:ERROR:gpu_process_transport_factory.cc(1017)] Lost UI shared context.
[2264:12992:0716/153046.483:ERROR:gpu_process_transport_factory.cc(1017)] Lost UI shared context.
[2264:6824:0716/153046.488:ERROR:gpu_process_host.cc(473)] !GpuDataManagerImpl::GpuProcessStartAllowed()
[2264:6824:0716/153046.488:ERROR:gpu_process_host.cc(473)] !GpuDataManagerImpl::GpuProcessStartAllowed()
[2264:6824:0716/153046.953:ERROR:gpu_process_host.cc(473)] !GpuDataManagerImpl::GpuProcessStartAllowed()
gfg true
[2264:6824:0716/153046.953:ERROR:gpu_process_host.cc(473)] !GpuDataManagerImpl::GpuProcessStartAllowed()
This is basically the case when tryGL is false in web_engine_context.cpp and thus the kDisableGpu switch is used.
Running with --single-process mode reveals even more log messages and also hits a Q_UNREACHABLE assertion in gl_surface_qt.cpp line 304 in CreateOffscreenGLSurfaceWithFormat().
[4544:816:0716/153637.425:ERROR:gpu_process_transport_factory.cc(1017)] Lost UI shared context. [4544:816:0716/153637.425:ERROR:gpu_process_transport_factory.cc(1017)] Lost UI shared context. [4544:1996:0716/153637.955:ERROR:gl_surface_egl_qt.cpp(77)] GLContextHelper::getEGLDisplay() failed. [4544:1996:0716/153637.955:ERROR:gl_surface_egl_qt.cpp(77)] GLContextHelper::getEGLDisplay() failed. [4544:860:0716/153637.990:WARNING:histograms.cc(40)] Started multiple compositor clients (Browser, Renderer) in one process. Some metrics will be disabled. [4544:860:0716/153637.990:WARNING:histograms.cc(40)] Started multiple compositor clients (Browser, Renderer) in one process. Some metrics will be disabled. [4544:1996:0716/153638.082:ERROR:gl_surface_qt.cpp(303)] Requested OpenGL implementation is not supported. Implementation: 0 [4544:1996:0716/153638.082:ERROR:gl_surface_qt.cpp(303)] Requested OpenGL implementation is not supported. Implementation: 0 ASSERT failure in Q_UNREACHABLE(): "Q_UNREACHABLE was reached", file E:/Dev/qt/qt512_source/qtwebengine/src/core/gl_surface_qt.cpp, line 304 [4544:1996:0716/153639.051:ERROR:gles2_command_buffer_stub.cc(127)] ContextResult::kFatalFailure: Failed to create default offscreen surface. [4544:1996:0716/153639.051:ERROR:gpu_channel.cc(632)] GpuChannel::CreateCommandBuffer(): failed to initialize CommandBufferStub [4544:1996:0716/153639.051:ERROR:gles2_command_buffer_stub.cc(127)] ContextResult::kFatalFailure: Failed to create default offscreen surface. [4544:860:0716/153639.053:ERROR:command_buffer_proxy_impl.cc(138)] Failure processing GpuChannelMsg_CreateCommandBuffer. [4544:860:0716/153639.054:ERROR:context_provider_command_buffer.cc(269)] GpuChannelHost failed to create command buffer. [4544:1996:0716/153639.051:ERROR:gpu_channel.cc(632)] GpuChannel::CreateCommandBuffer(): failed to initialize CommandBufferStub [4544:860:0716/153639.053:ERROR:command_buffer_proxy_impl.cc(138)] Failure processing GpuChannelMsg_CreateCommandBuffer. [4544:860:0716/153639.054:ERROR:context_provider_command_buffer.cc(269)] GpuChannelHost failed to create command buffer.
EDIT: Confirmed happens also with -opengl dynamic build and QT_OPENGL=angle
EDIT2: Also happens on macOS when manually enabling the disableGpu switch.
Attachments
For Gerrit Dashboard: QTBUG-69491 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
234664,2 | Fix --single-process --disable-gpu combination not to hit asserts | 65-based | qt/qtwebengine-chromium | Status: MERGED | +2 | 0 |
234665,2 | Reduce severity level of messages when kDisableGpu switch is used | 65-based | qt/qtwebengine-chromium | Status: MERGED | +2 | 0 |