summaryrefslogtreecommitdiffstats
path: root/cc/surfaces/display_scheduler.h
diff options
context:
space:
mode:
authorbrianderson <brianderson@chromium.org>2015-07-28 11:08:22 -0700
committerCommit bot <commit-bot@chromium.org>2015-07-28 18:09:04 +0000
commita3f4eafcd0474e5ece4fd8fc2a99cce163c17652 (patch)
tree4c0928a8521f7832aef35274b8b08f289f6c2212 /cc/surfaces/display_scheduler.h
parent4e7611d34d5773653ef83a71fd762f6e8a935091 (diff)
downloadchromium_src-a3f4eafcd0474e5ece4fd8fc2a99cce163c17652.zip
chromium_src-a3f4eafcd0474e5ece4fd8fc2a99cce163c17652.tar.gz
chromium_src-a3f4eafcd0474e5ece4fd8fc2a99cce163c17652.tar.bz2
Revert of cc: Consider Surface active if frame received recently (patchset #7 id:120001 of https://codereview.chromium.org/1251693002/)
Reason for revert: This caused regressions in 24/30fps cast tests in stead of improving them. See crbug.com/514075 for details. Original issue's description: > cc: Consider Surface active if frame received recently > > Current logic considers a child surface active if > it has submitted two frames in the last two vsyncs. > This hurts 30fps or 24fps video use cases, so change > the heuristic to consider a child surface active if it > has submitted a frame anytime within the last 3 vsyncs. > > BUG=493751 > CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel > > Committed: https://crrev.com/b189b0f12544df1f65bd5a189b005e86908b1495 > Cr-Commit-Position: refs/heads/master@{#340299} TBR=mithro@mithis.com,sunnyps@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=493751 Review URL: https://codereview.chromium.org/1258273005 Cr-Commit-Position: refs/heads/master@{#340725}
Diffstat (limited to 'cc/surfaces/display_scheduler.h')
-rw-r--r--cc/surfaces/display_scheduler.h15
1 files changed, 5 insertions, 10 deletions
diff --git a/cc/surfaces/display_scheduler.h b/cc/surfaces/display_scheduler.h
index 01f73ff..4ffc6ea 100644
--- a/cc/surfaces/display_scheduler.h
+++ b/cc/surfaces/display_scheduler.h
@@ -54,7 +54,6 @@ class CC_SURFACES_EXPORT DisplayScheduler : public BeginFrameObserverBase {
void AttemptDrawAndSwap();
void OnBeginFrameDeadline();
void DrawAndSwap();
- void UpdateActiveSurfaces();
DisplaySchedulerClient* client_;
BeginFrameSource* begin_frame_source_;
@@ -70,23 +69,19 @@ class CC_SURFACES_EXPORT DisplayScheduler : public BeginFrameObserverBase {
bool inside_begin_frame_deadline_interval_;
bool needs_draw_;
- bool child_surfaces_ready_to_draw_;
+ bool expecting_root_surface_damage_because_of_resize_;
+ bool all_active_child_surfaces_ready_to_draw_;
int pending_swaps_;
int max_pending_swaps_;
SurfaceId root_surface_id_;
bool root_surface_damaged_;
- bool root_surface_active_;
- bool expecting_root_surface_damage_because_of_resize_;
+ bool expect_damage_from_root_surface_;
- // We currently use a heuristic that considers a child surface
- // active if it has submitted a frame anytime within the last 3
- // vsyncs.
- static const int kNumFramesSurfaceIsActive = 3;
std::set<SurfaceId> child_surface_ids_damaged_;
- std::set<SurfaceId> active_child_surface_ids_[kNumFramesSurfaceIsActive];
- int active_child_surface_ids_index_;
+ std::set<SurfaceId> child_surface_ids_damaged_prev_;
+ std::vector<SurfaceId> child_surface_ids_to_expect_damage_from_;
base::WeakPtrFactory<DisplayScheduler> weak_ptr_factory_;