diff options
author | jbauman <jbauman@chromium.org> | 2015-07-13 18:55:23 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-07-14 01:56:02 +0000 |
commit | 826aae36bc7da8a39f9b5eebefe9e51c59a63cfd (patch) | |
tree | a9f011ee9c234f0cdf388bd82a0cb53e1b9ee41c /cc/surfaces/display.cc | |
parent | cd0ea9c552e554f44d66638937b4b8e001e96974 (diff) | |
download | chromium_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.cc | 7 |
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() { |