summaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/tests.pri
diff options
context:
space:
mode:
authorJocelyn Turcotte <jocelyn.turcotte@digia.com>2013-11-11 13:03:34 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-11-15 13:49:20 +0100
commitf5be472e0ba4aa19d0c0f91a848dfa5be9ebaa3b (patch)
tree5149f8bebca3b5ec1a610def1f991fff7f3453a4 /tests/auto/quick/tests.pri
parent388b272d32bca3c9e46d571a7a4a94bbbc2b11dc (diff)
Delegated renderer: Fix remaining synchronization issues.
This fixes two issues: - The onFrameSwapped slot was connected with a QueuedConnection, this means that any previous frame triggered by Qt could be queued right before updatePaintNode is called, and be handled right after, thus picking our m_pendingAckFrameData and sending the Ack before this frame was actually swapped. - For cases where Qt triggers a new frame (e.g. typing text in a QtQuick text area) it would be possible that it starts rendering before m_pendingUpdateFrameData had been set, which would render the old frame while Chromium might be in the middle of rendering the new one on the same resources, or destroying them. The solution is grossly to do proper used resource reporting to the child compositors via cc::CompositorFrameAck::resources. We previously released all resources on every frame, and Chromium would resend back to us the ones that could be reused without change. We now instead only return unused resources, but this also means that we have to keep track of used resources ourselves. cc::DelegatedFrameData::resource_list only contain new resources to be added to the scene and we keep a deep copy of the cc::TransferableResource into our MailboxTextures. A few other changes that come with this: - A few null-checks can now be removed since we can better rely on the integrity of the information passed through DelegatedFrameData. - Since we can now prevent used resources from being destroyed while we use them, trigger a frame Ack immediately after updatePaintNode instead of waiting until the buffer is swapped, like ui::Compositor does. - MailboxTexture is now more autonomous, but still require some information from quads. Mark them as not containing alpha by default and fetch this information from quads when encountered. Change-Id: Ice235f3a98a179c87eec7fbcb9880e34b0ed1e73 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Diffstat (limited to 'tests/auto/quick/tests.pri')
0 files changed, 0 insertions, 0 deletions