[Development] Quick2 and Directx11 backend (Angle)

morten.sorvig at nokia.com morten.sorvig at nokia.com
Mon May 21 10:06:52 CEST 2012


Hi, I have qmake build support for ANGLE here[1]. This should compliment your work and enable us to integrate better with the Qt build - I don't think we want to add a dependency to the ANGLE build system. It might give us a mingw build as well.

I got as far as getting Hello_Triangle compiling and sort-of running, at which point I realized that running ANGLE under VirtualBox probably isn't going to work.

[1]: https://gitorious.org/qtangle/qmakeangle

Morten

On May 20, 2012, at 3:24 PM, ext Corentin Jabot wrote:

> So, There is the patch. 
> 
> * First, checkout and build ANGLE as explain here http://code.google.com/p/angleproject/wiki/DevSetup ( require directx sdk &  visual studio )
> * Then, edit qtbase/mkspecs/features/win32/opengl.prf and change the include and library path of angle ( or just build angle in C:\\angle)
> * Run configure.exe with the option "-opengl es2"
> * Build qtbase, it should works fine. 
> * Build and test some examples.  
> 
> examples\opengl\hellowindow work just fine. 
> The others do not : black screen, crash, etc. 
> I'm not so sure where the problem really is, that is why I seek help
> 
> How does it work ? 
> When configured with -opengl es2,  the windows QPA will use an EGL contexts and surfaces instead of opengl. the EGL calls are converted transparently by ANGLE into directx calls. 
> 
> Remaining work :
> * Try and fixes the black screen, crashes, and others issues ( like ui unresponsiveness)
> * Clean the code
> * Integrate nicely with QSurfaceFormat and find optimal options. 
> * Ensure QtDeclarative and other modules works fine on top of angle 
> 
> Limitations:
> * I thought of including ANGLE in the Qt sources, so it can automatically be build via some configure option, but sadly ANGLE is not designed to compile with MINGW. 
> * ANGLE provide an OpenGL ES 2.0 API, not an Opengl API. So examples, applications or features that specifically require a full opengl api are not supposed to work. 
> 
> 
> I'm convinced that this kind of work is really important for QML adoption since a lot of final Windows users do not have a working opengl support  - mostly because they use outdated drivers, and they can be hard to update, especially on laptops. 
> The ultimate solution would be to use ANGLE as a fallback if the initialization of a classic opengl context fail, but that seems a really laborious task. 
> Also, Thiago mentioned a cpu-rasterization project, I guess that would make ANGLE useless, but I'm not sure there is people working on that.  And the performance of such solution wouldn't be so great.
> 
> 
> 
> Please note that patch is very unstable and experimental. The patch is quite ugly, I put some code in place it does not belong (see QEGLPlatformContext constructor ) and added a lot of logs to figure what go wrong. 
> 
> <angle.patch>_______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development




More information about the Development mailing list