Qt5 peut utiliser le pilote OpenGL ou le pilote DirectX en utilisant ANGLE. Comme nous ne pouvons pas dépendre d'un pilote OpenGL installé, nous devons utiliser le backend ANGLE. Malheureusement, cela ne résout pas tous les problèmes de déploiement, en particulier sur les machines virtuelles Windows sans accélération matérielle. Sur ces systèmes, nous recevons un message d'erreur indiquant que la création d'un contexte OpenGL a échoué.
Capture d'écran: échec de création du contexte OpenGL pour le format QSurfaceFormat
Nous déployons toutes les bibliothèques requises (libEGL.dll libGLESv2.dll libeay32.dll msvcp110.dll msvcr110.dll d3dcompiler_46.dll) mais nous recevons toujours ce message d'erreur.
Comment déployez-vous une application QML qui doit s'exécuter sur des machines d'utilisateur final sans pilote OpenGL et sur des machines (virtuelles) sans accélération Direct3D?
Il y a une page sur le wiki Qt mentionnant ce problème , mais ce n'est pas très utile pour le résoudre.
Mes conclusions jusqu'à présent sont les suivantes:
Bien que Mesa semble être une solution partielle, la configration semble souvent très planter dans Qt 5.4.0.
Une autre solution de rechange pourrait être le rendu rapide 2D Qt, mais malheureusement, cela se bloque également.
Conclusion: il n'y a toujours pas de vraie solution pour ces systèmes
Anno 2015: les lecteurs graphiques cassés sont toujours cassés.
Ma conclusion pour le moment est:
QT 5 a un énorme problème de compatibilité avec opengl sur certaines configurations matérielles La combinaison du pilote Intel HD3000 et de la carte Nvidia/ATI ne fonctionnera pas sous Windows 10. https://bugreports.qt.io/browse/QTBUG-4224
Intel supprime le support pour cette carte mais leurs pilotes ont un bug qui conduit à planter.
Vous ne pouvez pas compter sur le matériel opengl si vous souhaitez prendre en charge les clients avec HD3000.
Sous Windows, opengl32.dll est le pilote OpenGL par défaut. Il implémente OpenGL 1.1 (version vraiment ancienne). ANGLE a une base de référence d'OpenGL ES 2.0 et nécessite DirectX 9/11 installé pour mapper les appels.
Donc, si vous avez une carte vidéo sur laquelle aucun pilote OpenGL n'est installé, un pilote OpenGL inférieur à 2.0 et/ou DirectX 9/11 non installé, votre application ne fonctionnera pas.
En ce qui concerne la virtualisation et l'accélération 3D, celles-ci méritent peut-être d'être lues:
De plus, si vous exécutez un environnement Windows à plusieurs moniteurs sous VirtualBox, l'accélération 3D sera désactivée.
J'ai revérifié cela pour voir si ces problèmes ont été corrigés par la dernière version de QT 5.12.2, mais non, ils ne l'ont pas été. La fonction décrite dans l'entrée wiki QT OP référencée https://wiki.qt.io/Qt_5_on_Windows_ANGLE_and_OpenGL sonne bien mais en pratique, cela ne fonctionne tout simplement pas.
Je conclus que j'évite OpenGL sur QT sous quelque forme que ce soit. C'est trop peu fiable.