Details
-
Task
-
Resolution: Done
-
P2: Important
-
None
-
None
Description
We now have proper builds of Mesa with llvmpipe that are able to run Quick 2 applications pretty well without any sort of support from the graphics hardware and drivers. The downside is the potentially high CPU usage. This needs to be integrated with the -opengl desktop builds somehow.
The most viable solution seems to be the introduction of a "proxy" library exposing the OpenGL 1.1 and WGL entry points. QtGui would then link to this instead of opengl32.dll. The proxy library would then load either the "real" or the Mesa opengl32.dll and forward all calls.
First, the system opengl32.dll is loaded. The proxy lib then tries to create a context and resolve some OpenGL 2 functions. If this fails for any reason, it falls back to load and use the Mesa opengl32.dll from that point on. If it works, it continues with the system's library.
Open issues needing more investigation: #1 The unfortunate GDI reliance on "opengl32.dll" (see first comment below) #2 Unloading the Mesa DLL using FreeLibrary seems to deadlock in some cases.
Attachments
Issue Links
- relates to
-
QTBUG-36483 Windows: Dynamic switch between Angle and desktop GL on application startup
- Closed