Commit 16ff972e authored by kylechar's avatar kylechar Committed by Commit Bot

Revert "Don't disable draw during resize"

This reverts commit 985a1f41.

Reason for revert: https://crbug.com/1055738

Original change's description:
> Don't disable draw during resize
> 
> https://crrev.com/c/2011130 changed Display::DisableSwapUntilResize() to
> also block draw instead of just swap. This had the side of effect of
> blocking draw when the browser window is minimized, which means we stop
> casting tab/window contents. Switch DisableSwapUntilResize() back to
> just block swap instead of draw+swap.
> 
> Bug: 1054239, b/149923568
> Change-Id: I66a10dc1e801c56783107ce4412ab557f70da9f8
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2068642
> Commit-Queue: kylechar <kylechar@chromium.org>
> Reviewed-by: Saman Sami <samans@chromium.org>
> Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#744018}

TBR=kylechar@chromium.org,samans@chromium.org,vasilyt@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 1054239, 1055738, b/149923568
Change-Id: I43a2f985c36fbc4f38e143beb650981acd1a3d7a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2076518Reviewed-by: default avatarkylechar <kylechar@chromium.org>
Commit-Queue: kylechar <kylechar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#744847}
parent 7a5bb52a
...@@ -354,7 +354,7 @@ void Display::SetVisible(bool visible) { ...@@ -354,7 +354,7 @@ void Display::SetVisible(bool visible) {
} }
void Display::Resize(const gfx::Size& size) { void Display::Resize(const gfx::Size& size) {
disable_swap_until_resize_ = false; disable_draw_until_resize_ = false;
if (size == current_surface_size_) if (size == current_surface_size_)
return; return;
...@@ -376,7 +376,7 @@ void Display::DisableSwapUntilResize( ...@@ -376,7 +376,7 @@ void Display::DisableSwapUntilResize(
TRACE_EVENT0("viz", "Display::DisableSwapUntilResize"); TRACE_EVENT0("viz", "Display::DisableSwapUntilResize");
DCHECK(no_pending_swaps_callback_.is_null()); DCHECK(no_pending_swaps_callback_.is_null());
if (!disable_swap_until_resize_) { if (!disable_draw_until_resize_) {
DCHECK(scheduler_); DCHECK(scheduler_);
if (!swapped_since_resize_) if (!swapped_since_resize_)
...@@ -388,7 +388,7 @@ void Display::DisableSwapUntilResize( ...@@ -388,7 +388,7 @@ void Display::DisableSwapUntilResize(
no_pending_swaps_callback_ = std::move(no_pending_swaps_callback); no_pending_swaps_callback_ = std::move(no_pending_swaps_callback);
} }
disable_swap_until_resize_ = true; disable_draw_until_resize_ = true;
} }
// There are no pending swaps for current size so immediately run callback. // There are no pending swaps for current size so immediately run callback.
...@@ -618,7 +618,8 @@ bool Display::DrawAndSwap(base::TimeTicks expected_display_time) { ...@@ -618,7 +618,8 @@ bool Display::DrawAndSwap(base::TimeTicks expected_display_time) {
if (!size_matches) if (!size_matches)
TRACE_EVENT_INSTANT0("viz", "Size mismatch.", TRACE_EVENT_SCOPE_THREAD); TRACE_EVENT_INSTANT0("viz", "Size mismatch.", TRACE_EVENT_SCOPE_THREAD);
bool should_draw = have_copy_requests || (have_damage && size_matches); bool should_draw = !disable_draw_until_resize_ &&
(have_copy_requests || (have_damage && size_matches));
client_->DisplayWillDrawAndSwap(should_draw, &frame.render_pass_list); client_->DisplayWillDrawAndSwap(should_draw, &frame.render_pass_list);
base::Optional<base::ElapsedTimer> draw_timer; base::Optional<base::ElapsedTimer> draw_timer;
...@@ -665,7 +666,7 @@ bool Display::DrawAndSwap(base::TimeTicks expected_display_time) { ...@@ -665,7 +666,7 @@ bool Display::DrawAndSwap(base::TimeTicks expected_display_time) {
TRACE_EVENT_INSTANT0("viz", "Draw skipped.", TRACE_EVENT_SCOPE_THREAD); TRACE_EVENT_INSTANT0("viz", "Draw skipped.", TRACE_EVENT_SCOPE_THREAD);
} }
bool should_swap = !disable_swap_until_resize_ && should_draw && size_matches; bool should_swap = should_draw && size_matches;
if (should_swap) { if (should_swap) {
PresentationGroupTiming presentation_group_timing; PresentationGroupTiming presentation_group_timing;
presentation_group_timing.OnDraw(draw_timer->Begin()); presentation_group_timing.OnDraw(draw_timer->Begin());
......
...@@ -253,7 +253,7 @@ class VIZ_SERVICE_EXPORT Display : public DisplaySchedulerClient, ...@@ -253,7 +253,7 @@ class VIZ_SERVICE_EXPORT Display : public DisplaySchedulerClient,
base::circular_deque<Display::PresentationGroupTiming> base::circular_deque<Display::PresentationGroupTiming>
pending_presentation_group_timings_; pending_presentation_group_timings_;
bool disable_swap_until_resize_ = true; bool disable_draw_until_resize_ = true;
// Callback that will be run after all pending swaps have acked. // Callback that will be run after all pending swaps have acked.
base::OnceClosure no_pending_swaps_callback_; base::OnceClosure no_pending_swaps_callback_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment