[Interest] Qt5/OMAP4/EGLFS: Strange animation behaviour

Donald Carr sirspudd at gmail.com
Mon Nov 19 22:54:39 CET 2012


Hey Stephan,

Towards the end of my work on the Raspberry Pi, I had to adjust this
area of the code to get banging performance. I can't remember the
exact combination that was winning, but unified timers was horrid and
I had to short circuit several other functions which effectively set a
broken state by default.

On top of all of this, I saw weird partial updates on all the OMAP SGX
based devices I tested against Qt 5. I have a beagle board video
uploaded which shows the screen broken up into 4 discrete quadrants
which are alternately updated.

The EGLFS defaults/baseline really needs to be adjusted to be optimal
out of the box. It requires to much experimentation to chance upon the
magic combination at present, and I have dropped the ball on getting
this adequately quantified and reported upstream.

Cheers,
Donald

On Mon, Nov 19, 2012 at 9:43 PM, Stephan Kanthak <stylon at gmx.de> wrote:
> Hi all,
>
> as promised some feedback on this matter...
>
> On 11/16/2012 07:37 AM, Stephan Kanthak wrote:
>>> Are you doing "export QML_FORCE_THREADED_RENDERER=1"? Because afaik
>>> without that you won't get the threaded renderer. Most issues I've seen
>>> with animations have been due to not using the threaded renderer.
> Just "export QML_FORCE_THREADED_RENDERER=1" subjectively works best for
> me so far. I still do see tearing all over, so there's definitely no
> waiting for VSYNC, either in Qt5/EGLFS or the TI driver, but animations
> are smooth.
>
>>> You might also want to try the customcontext renderer from
>>> ssh://codereview.qt-project.org:29418/playground/scenegraph.git
>>> After building and doing make install there you should be able to use it
>>> by doing "export QMLSCENE_DEVICE=customcontext" or running with
>>> --device=customcontext
> I tried this code, too, although I had some problems adding Animators
> objects at the right spot in my QML files. It finally seems to work for
> me once Animations + animated objects are both from Animators. However,
> the result is not much better than with just "export
> QML_FORCE_THREADED_RENDERER=1". Tearing is even more obvious as the
> buffer swapping then seems to happen right in the middle of an animated
> texture covering the lower 50% of the display.
>
>>> If it's a timing issue you might also try
>>> QML_FIXED_ANIMATION_STEP=1
> After setting this, animations are a bit quicker, but smoothness also
> wasn't better than with just "export QML_FORCE_THREADED_RENDERER=1".
>
> So, overall my remaining problem seems to be that buffers are not
> swapped with VSYNC. Any idea wether this is due to Qt5/EGLFS or rather
> the TI driver?
>
> Best,
> Stephan
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest



More information about the Interest mailing list