Details
-
Bug
-
Resolution: Fixed
-
P1: Critical
-
5.11.0 Beta 1
-
None
-
Windows 10, MSVC17/64bit
-
e5e0bb2631e6b0e207a6c98e1a328c8da958be9c 099cdde2717aa09800e2915eac2d2c76e6216d5f
Description
[5440:10416:0226/094132.047:ERROR:gl_surface_wgl.cc(372)] wglCreatePbufferARB not available. [5440:10416:0226/094132.047:ERROR:gl_surface_qt.cpp(751)] Requested OpenGL implementation is not supported. Implementation: 1
This happens for both -opengl desktop and -opengl dynamic builds. There's an ordering problem in how we initialize our OpenGL extensions.
The logic in GpuInit::InitializeInProcess() (see https://code.woboq.org/qt5/qtwebengine/src/3rdparty/chromium/gpu/ipc/service/gpu_init.cc.html ) is the following:
if (!gl::init::InitializeGLNoExtensionsOneOff()) { VLOG(1) << "gl::init::InitializeGLNoExtensionsOneOff failed"; return; } // .. gpu::CollectContextGraphicsInfo(&gpu_info_); gpu_feature_info_ = gpu::ComputeGpuFeatureInfo(gpu_info_, command_line); // .. if (!gl::init::InitializeExtensionSettingsOneOffPlatform()) { VLOG(1) << "gl::init::InitializeExtensionSettingsOneOffPlatform failed"; }
THat is, we first initialize OpenGL without extensions, then try to query GPU features, and then only initialize extensions.
However, ComputeGpuFeatureInfo does create an OpenGL surface for querying the extensions, and on Windows this OpenGL context requires wglCreatePbufferARB to be available (see GLSurfaceQtWGL::Initialize).
Attachments
Issue Links
- is duplicated by
-
QTBUG-67524 WebEngine broken on Windows (Q_UNREACHABLE in gl_surface_qt.cpp)
- Closed
- relates to
-
QTBUG-66941 Windows: Quick nano browser example crashes on startup
- Closed
For Gerrit Dashboard: QTBUG-66668 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
223322,4 | Win: Fix crashes when initializing GPU thread | 65-based | qt/qtwebengine-chromium | Status: MERGED | +2 | 0 |
325308,3 | Win: Fix crashes when initializing GPU thread | 87-based | qt/qtwebengine-chromium | Status: MERGED | 0 | 0 |