[Interest] Windows: "loadlibrary failed with error 87" on a configuration with a fake video card?
Thiago Macieira
thiago.macieira at intel.com
Tue Mar 22 13:28:05 CET 2022
On Tuesday, 22 March 2022 04:13:27 -03 Alexander Dyagilev wrote:
> Why does it attempts to load this driver at all, if QT_OPENGL=software
> is set?..
Please turn on the debug logging for category "qt.qpa.gl" and see what it said
for this debug line:
qCDebug(lcQpaGl) << "Qt: Using WGL and OpenGL from" << openglDll;
That second argument is the name of the DLL that Qt is trying to use.
Since you asked for software rendering, that should be "opengl32sw". If you
see something other than that here, check if you didn't set QT_OPENGL_DLL in
the environment, that QT_OPENGL=software is indeed set and that no other
errors in loading happened.
That said, this comment in the source is relevant:
if (moduleIsNotOpengl32()) {
// Load opengl32.dll always. GDI functions like ChoosePixelFormat do
// GetModuleHandle for opengl32.dll and behave differently (and call
back into
// opengl32) when the module is present. This is fine for dummy
contexts and windows.
QSystemLibrary::load(L"opengl32");
}
Looks like it always loads opengl32 anyway and one of the functions it may use
for it is ChoosePixelFormat, which is in your stack trace:
opengl32.dll!wglChoosePixelFormat()
gdi32full.dll!ChoosePixelFormat()
qwindows.dll!00007ffcede270ae()
It might be that one of those safe uses from GDI is not safe because your
video card driver is broken. I suggest you contact your vendor for help.
--
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel DPG Cloud Engineering
More information about the Interest
mailing list