How do I enable/disable ANGLE?
-
I have a Qt Quick-based app for Windows that should be released soon, but we realized that it fails to show the QML scene on one of the company computers. All other computers work fine.
From what I found and read so far it seems that I should "use ANGLE" (http://qt-project.org/wiki/Qt-5-on-Windows-ANGLE-and-OpenGL). How can I enable/disable it in my program? How can I verify whether the program is using it? -
do you build Qt from source?
If not and you are using an official release (until Qt 5.3.x) it's marked with OpenGL in the name. It's an ANGLE build if not. Since Qt 5.4 all releases without OpenGL in the text have "dynamic loading":http://blog.qt.digia.com/blog/2014/11/27/qt-weekly-21-dynamic-opengl-implementation-loading-in-qt-5-4/.If you are using an OpenGL build make sure you have up-to-date graphics driver installed on the machine. And also that the machine has a graphics card which supports minimum OpenGL 3.0 (alternatively OpenGL 2.x with the framebuffer_object extension) or OpenGL ES 2.
For the ANGLE builds you need to have at least DirectX 9 installed.
If you are building Qt from source you need to specify if you want to use OpenGL or ANGLE at configure time. See "this":http://doc.qt.io/qt-5/configure-options.html#opengl-options-for-windows
-
Thanks, that helps.
-
It's really odd. I'm building against my own Qt (5.3.1) which was configured without -opengl parameter and with Widnows SDK installed. So it should be ANGLE version. The resulting app isn't working without d3dcompiler_*.dll, which also means that it's probably using ANGLE. However, it doesn't work in Windows Remote Desktop and on the single computer mentioned above.
-
clear the ANGLE question by checking <path-to-qt-src-dir>\qtbase\config.summary
Lookout for the line with "ANGLE" in it.Is the least DirectX 9 installed on the machine? Check by running DXDIAG command
It may also helpful to see the output (warning, errors) the application creates there (console).
Also see this "QTBUG":https://bugreports.qt.io/browse/QTBUG-36065 (and its related issues) which may lead to a clue.
-
Thanks. Yeah, the config.summary contains
@ANGLE...................yes@I'll have a look at the bug report later.
-
dxdiag both over Remote desktop and on the broken machine shows DirectX 11.
My application isn't printing anything relevant to console. I also added this code:
@ connect(this, &QQuickWidget::sceneGraphError, [this](QQuickWindow::SceneGraphError reason, const QString &msg) {
QMessageBox::critical(this, "Error", msg);
});@
and expected to get some error message on the computer with the broken graphics driver, but I get nothing.It looks like "QTBUG-36065":https://bugreports.qt.io/browse/QTBUG-36065 is still present in my case, although it's marked as fixed.
I'd really like to show the user at least an error message when this happens.