[Interest] Tearing in Quick2 flickable-based items with clipping enabled

Sletta Gunnar Gunnar.Sletta at digia.com
Thu Nov 14 13:06:28 CET 2013


Setting the swap interval through public API is planned for 5.3, but you can already set it yourself in a custom eglfs plugin or similar. The default EGLFS plugin allows to set the swap interval using QT_QPA_EGLFS_SWAPINTERVAL=x in the environment.

cheers,
Gunnar
________________________________________
Fra: Ola Røer Thorsen [ola at silentwings.no]
Sendt: 14. november 2013 11:24
To: Sletta Gunnar
Cc: interest at qt-project.org
Emne: Re: [Interest] Tearing in Quick2 flickable-based items with clipping enabled

Hi again, digging further into this reveals some issues with the PowerVR SGX530 (Omap3) when using the flip mode. So it's not Qt. Sorry for the noise.

Seems like it only happens at 60Hz. Will there be an option in 5.2 to set the swap interval, or did it end up in 5.3? I'd probably go for a steady 30Hz instead of a 30-60 mix with the occasional tearing.

Cheers,
Ola







2013/11/13 Ola Røer Thorsen <ola at silentwings.no<mailto:ola at silentwings.no>>
Hi Gunnar, I'll see if I can create a small example that reproduces it.

Cheers,
Ola



2013/11/13 Sletta Gunnar <Gunnar.Sletta at digia.com<mailto:Gunnar.Sletta at digia.com>>
If this consistently reproducible across desktop and device, then I would appreciate a bugreport with an example that reproduces it. It is not a known issue to me at least. (bugreports.qt-project.org<http://bugreports.qt-project.org>)

Clipping is implemented using scissor or stencil depending on the complexity of the mask, no intermediate texture is involved.

cheers,
Gunnar

________________________________
Fra: interest-bounces+gunnar.sletta=digia.com at qt-project.org<mailto:digia.com at qt-project.org> [interest-bounces+gunnar.sletta=digia.com at qt-project.org<mailto:digia.com at qt-project.org>] på vegne av Ola Røer Thorsen [ola at silentwings.no<mailto:ola at silentwings.no>]
Sendt: 13. november 2013 15:29
To: interest at qt-project.org<mailto:interest at qt-project.org>
Emne: [Interest] Tearing in Quick2 flickable-based items with clipping enabled

Hi all,

I'm seeing tearing-effects when scrolling in ListView and other items based on Flickable when clipping is enabled. This is running on both a Linux desktop as well as an embedded Linux device (eglfs). The Qt version is 5.1.1.

The systems are running with vsync enabled and double-buffering. There is no tearing in any other items except the ones with clipping enabled. Tearing is especially noticeable on the embedded device. The GPU is a PowerVR SGX chip which is tile-based, so the tearing "lines" are actually vertical. Also the framerate is mostly somewhere between 30-60.

Tearing appears maybe 20% of the time spent scrolling.

I'm wondering if the core issue is this:

I assume clipping is implemented as rendering the item into a temporary texture, and the clipped area is of this is finally rendered to the screen buffer. This temporary texture is not double-buffered. This means it would be possible that the render pipeline starts writing into a texture (next frame) that is being drawing into the screen buffer (current frame).

Any thoughts? The tearing is really bad sometimes, and I don't really have the option of disabling clipping either.

Cheers,
Ola







More information about the Interest mailing list