summaryrefslogtreecommitdiffstats
path: root/cc/surfaces/display.cc
diff options
context:
space:
mode:
authorjbauman <jbauman@chromium.org>2015-07-13 18:55:23 -0700
committerCommit bot <commit-bot@chromium.org>2015-07-14 01:56:02 +0000
commit826aae36bc7da8a39f9b5eebefe9e51c59a63cfd (patch)
treea9f011ee9c234f0cdf388bd82a0cb53e1b9ee41c /cc/surfaces/display.cc
parentcd0ea9c552e554f44d66638937b4b8e001e96974 (diff)
downloadchromium_src-826aae36bc7da8a39f9b5eebefe9e51c59a63cfd.zip
chromium_src-826aae36bc7da8a39f9b5eebefe9e51c59a63cfd.tar.gz
chromium_src-826aae36bc7da8a39f9b5eebefe9e51c59a63cfd.tar.bz2
Don't aggregate quads outside of damage rect when using partial swap.
The quads will be scissored out, so aggregating them is a waste. For me on a webpage with a tiny spinner this reduces DisplayScheduler::OnBeginFrameDeadline time by around 30%, and reduces the GPU process CPU time by around 50%. BUG=490447 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1172883004 Cr-Commit-Position: refs/heads/master@{#338619}
Diffstat (limited to 'cc/surfaces/display.cc')
-rw-r--r--cc/surfaces/display.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/cc/surfaces/display.cc b/cc/surfaces/display.cc
index 9314c71..54a76ef 100644
--- a/cc/surfaces/display.cc
+++ b/cc/surfaces/display.cc
@@ -122,7 +122,12 @@ void Display::InitializeRenderer() {
}
resource_provider_ = resource_provider.Pass();
- aggregator_.reset(new SurfaceAggregator(manager_, resource_provider_.get()));
+ // TODO(jbauman): Outputting an incomplete quad list doesn't work when using
+ // overlays.
+ bool output_partial_list = renderer_->Capabilities().using_partial_swap &&
+ !output_surface_->GetOverlayCandidateValidator();
+ aggregator_.reset(new SurfaceAggregator(manager_, resource_provider_.get(),
+ output_partial_list));
}
void Display::DidLoseOutputSurface() {