Monday, February 09, 2015

QtDeclarative on platforms without GLES (Quick2)

We ,Prevas (http://www.prevas.com), have been working on a yet to be released project. Our goal is to have a Quick2 compatible Qt Declarative framework for targets without GLES enabled GPU's. The basic design is:
* The application is a standard Quick2 QML application that can be created with QtCreator.
* The QML code runs inside the standard unaltered QML engine.
* A QML application can be described as a tree of QQuickItems. In the GLES QtDeclarative those are tied to GLES shaders. Within this implementation we have replaced the shaders with Qt 2d drawing methods. When a QQuickItem is shown on the screen it renders itself directly to the QPA back buffer. In this way we can skip a lot of abstraction layers compared to using widgets.


 The result is that we can run many of the Quick2 examples and demos on small ARM targets at a decent speed and with a relatively small cpu usage. The performance can be compared to running Quick2  software rendered on a PC.

This implementation will be , in case of release, pushed to gitorious.org probably with the LGPL license. If someone at Digia "The Qt Company" reads this and have any questions and or objections about the license, just contact me.

 If you are interested to get this project come out of our drawers, leave a comment here and I will contact you. We can help you to adopt this to your hardware and possibly also tune QPA backends for different GPU configurations and even to GPU less targets.

Please note that this project has no connections with and was started long before anything was known about: http://blog.qt.io/blog/2015/01/22/introducing-the-qt-quick-2d-renderer/

3 comments:

Rodrigo said...

Hey, I like your approach. It probably will fit on our solution that will run on some GPU-less machines. The new solution from Digia is paid, so we can not afford this kind of optimization right now.

Do you still having interested on publish your project as LGPL?? Or do you already published it?

Thank you,
Rodrigo

Michael Grunditz said...

Hi Rodrigo,

No it is not published yet. There are a couple of things I want to polish first.

This blog will be updated when I push.

sda said...

Hi, i'd like to try this on a kms-based platform where nouveau fails to redner Quick2.

Thanks
- sda