commit | adcc2f1a5397049a642cc3551530c17a679110d1 | [log] [tgz] |
---|---|---|
author | Sunny Sachanandani <sunnyps@chromium.org> | Mon May 20 20:30:31 2019 |
committer | Commit Bot <commit-bot@chromium.org> | Mon May 20 20:30:31 2019 |
tree | 2049a7dc97bc7a4201dcfc6a3e06239d69b19cbb | |
parent | e10e7f660631a5aea4fb16e2d4ee5b654bc172f9 [diff] |
gpu: Use swap chain frame statistics for presentation feedback Use swap chain's frame statistics to issue presentation callbacks. Frame statistics provides accurate information about presentation time while the current implementation only uses the GPU completion and vsync time to guess when presentation happens. The current implementation uses GPU disjoint timer queries which are expensive (seen on sampling profiler). Preliminary power measurements show an ~10% power reduction with a video underlay test page on a Surface Laptop 2. Frame statistics are collected after every Present() and used to retire pending presentation callbacks. Frame statistics are also checked after vsync using the the new gpu vsync mechanism in case client stops calling SwapBuffers(). Enabling frame statistics also forces root surface to always use swap chains instead of switching to dcomp surfaces when overlays are used. Can be enabled with --enable-featues=SwapChainFrameStatistics. Change-Id: Ibbb86597c5b13a7b131b32a97bed541bd72ee68f Bug: 892874 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1607420 Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Cr-Commit-Position: refs/heads/master@{#661451}
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 .