[Development] The place of QML

marius.storm-olsen at nokia.com marius.storm-olsen at nokia.com
Fri May 18 09:07:41 CEST 2012

On 5/18/12 8:22 AM, "ext Uwe Rathmann" <Uwe.Rathmann at tigertal.de> wrote:
>I would be careful with terms like "outdated". In the end the desktop is
>the concept of the 90s ( widget are much older ) and the current
>desktops are the part that doesn't work on smartphones alike devices.
>But are keyboard and mouse outdated - only because smartphones and
>tablet devices don't have one - or why should a scene graph based
>application be more modern, when it runs inside of a Xfce/X11 desktop ?

Most "desktops" (Windows w/DWM, OSX w/Quartz Compositor, Linux
w/Compiz,Kwin) use compositing window managers these days, so running on
HW accelerated graphics cards using things like OpenGL and the like to
off-load as much as possible to the GPU, and enable very advanced effects,
while at the same time freeing up the main CPU to do other things than
creating a drop-shadow for a window pane etc.

>> What speedup provides QML scene graph? According to this
>>http://labs.qt.nokia.com/2011/05/31/qml-scene-graph-in-master/ article,
>>speedup is 2.5 times. As for me, it's just a constant optimization, it
>>is not reduces complexity very much, as for me.
>With raster QPainter::drawPolygon is significantly faster than
>QPolygonF::drawPolygonF. QPolygon::drawPolygon on Qt3/X11 is only a thin
>wrapper around X11 methods - something you can't beat performancewise.

Often it's hard to beat the performance of the main CPU(s for most people
these days) filling in a polygon directly, rather than handing it off to a
GPU. However, that's just a very very very tiny piece of the whole
picture. There are so many more collaborating parts of a whole application
which you are simply ignoring here.

>But by far the best performance you will have when you can reduce the
>number of points before drawPolygon on is called.

Even more performance you'd get by instead of flooding your main CPU with
polygon fills etc, you leave that up to the GPU and let the main CPU
update your business logic, think about the next frame in the animation,
etc; especially if that polygon you just filled is not even going to be
displayed in the scene because you paint something over it with the next
item needed in the same frame. Scene graph is designed to avoid all this
and give you the full HW accelerated benefits.

Just look at what can be done on the Raspberry Pi with scene graph +
wayland, and tell me you can do the same with QPainter + X11 through the
Pi's main CPU!
    http://www.youtube.com/watch?v=HItv4HX5r3k - Qt 5 and Wayland on the
Raspberry Pi


More information about the Development mailing list