commit | 5361171354216b62e9902d8b95e49505b691796f | [log] [tgz] |
---|---|---|
author | kylechar <[email protected]> | Fri Apr 26 18:23:12 2019 |
committer | Commit Bot <[email protected]> | Fri Apr 26 18:23:12 2019 |
tree | ab67573683302d130646a60163ee92848f714c48 | |
parent | 9d4080e648e9f61e3f53f5738bf5014c52cf16d1 [diff] |
Add mojo interface for vsync parameter updates. Exo observes vsync parameter changes for the primary display and sends updates over the wayland protocol to arc++. This allows arc++ to produce frames at the correct rate and time. Currently exo adds an observer to CompositorVsyncManager. This works because vsync parameter updates are forwarded back from the GPU process to ui::Compositor without OOP-D. With OOP-D enabled the BeginFrameSource is moved into the GPU process. ui::Compositor is no longer involved in setting vsync parameters and CompositorVsyncManager no longer works. Add a new mojo interface that exo can subscribe to vsync parameter updates on. Move the logic to throttle sending vsync parameter updates out of exo and into the sending end of the mojo interface. This will limit the number of IPC messages. The throttling is improved slightly by handing modulus roll over when the timebase is near a multiple of the interval. The mojom::VSyncParameterObserver interface is implemented both with and without OOP-D. This removes the last usage of CompositorVsyncManager so we can delete it. Bug: 949711, 441577 Change-Id: I966b2d9dcc660efbdfb1c2800c71b6de3024e186 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1554834 Reviewed-by: Daniele Castagna <[email protected]> Reviewed-by: Ken Buchanan <[email protected]> Reviewed-by: Luke Halliwell <[email protected]> Commit-Queue: kylechar <[email protected]> Cr-Commit-Position: refs/heads/master@{#654530}
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 .