commit | f96f0ea3b55efe11726a463a08e34cee8de57686 | [log] [tgz] |
---|---|---|
author | Fady Samuel <fsamuel@chromium.org> | Wed Oct 03 18:49:09 2018 |
committer | Commit Bot <commit-bot@chromium.org> | Wed Oct 03 18:49:09 2018 |
tree | 4171d4df9887b45839fe5673350acce81e7d5adc | |
parent | 7e8f10472b7f5618c5f31d696b49fdeb0067053c [diff] |
Surface Synchronization: Throttle child synchronization events This CL enables throttling of child synchronization events. In a child- initiated synchronization, the child's frame will likely activate before the dependent parent's CompositorFrame arrives. Upon activation, the child will see that the new surface does not cause any damage to the display (because it's not embedded by any parent yet) and calls the draw callback immediately, thereby sending back a DidReceiveCompositorFrameAck to the client immediately. This, in turn, results in the client sending another CompositorFrame to Viz, and another and so on, letting the child get further and further ahead of the parent. This results in a lot of wasted work because the child's surface will not be shown on screen until the parent embeds it and so multiple child initiated synchronization events are pointless. This CL throttles DidReceiveCompositorFrameAck of the child on child-initiated synchronization events until the parent references the child. Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel Change-Id: I62416d87f8d871b32f4caad565cff515a9c55445 Bug: 672962, 879207 Reviewed-on: https://chromium-review.googlesource.com/1236931 Commit-Queue: Fady Samuel <fsamuel@chromium.org> Reviewed-by: Saman Sami <samans@chromium.org> Cr-Commit-Position: refs/heads/master@{#596300}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .