diff options
author | brianderson <brianderson@chromium.org> | 2015-07-28 11:08:22 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-07-28 18:09:04 +0000 |
commit | a3f4eafcd0474e5ece4fd8fc2a99cce163c17652 (patch) | |
tree | 4c0928a8521f7832aef35274b8b08f289f6c2212 /cc/surfaces/display_scheduler.h | |
parent | 4e7611d34d5773653ef83a71fd762f6e8a935091 (diff) | |
download | chromium_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.h | 15 |
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_; |