[Development] Partial screen updates with Scenegraph
Andreas Aardal Hanssen
andreas at hanssen.name
Fri Jul 20 12:32:41 CEST 2012
2012/7/20 <gunnar.sletta at nokia.com>
> > Is it possible to set the new Grahpicsstack to do only partial screen
> updates?
> > This would help me fixing some performance issues on embedded devices.Hi
> Dietrich,
> The scene graph does not do partial updates.
> Based on the experience we had from the widget stack and graphics view, we
> early on concluded that for applications which have moderate amount of
> animations, partial updates hurts a lot more than it gains.
>
Partial update support doesn't help for applications that don't _need_ it,
rather. And high-end mobile phones where there's enough CPU and GPU power
for the UI, which is the focus of QML 2 and the SceneGraph, don't need it.
For hardware and applications where memory bandwidth and CPU/GPU power is
an issue, for example when resolutions go above 800x480 (e.g., retina) and
there are multiple screens, with multiple layers (e.g. video playback or
animated wallpapers), supporting partial updates becomes a matter of win or
lose. Wasn't EGL_NOK_swap_region2 added for this reason?
Since SceneGraph doesn't support partial updates, those who need that
should choose QML 1 with QGV [*]. Perhaps when QML 3 comes out, there's be
a single solution to both problems ;-P.
[*] In QGV you can select QGraphicsView::FullViewportUpdate to avoid the
cost; the default being QGraphicsView::MinimalViewportUpdate which supports
disjoint viewport updates. QGraphicsView::BoundingRectViewportUpdate is a
good go-between. The cost imposed is not that bad. The example of dragging
an object around a screen without imposing full updates and complete
redraws is logical.
--
Andreas Aardal Hanssen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20120720/f50e99bb/attachment.html>
More information about the Development
mailing list