Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(41)

Unified Diff: cc/scheduler/scheduler_state_machine.cc

Issue 1394263004: android webview: allow cc to fail hardware draw (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: damage before hardware to avoid invalidate-draw loop Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/scheduler/scheduler_state_machine.h ('k') | cc/scheduler/scheduler_state_machine_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/scheduler/scheduler_state_machine.cc
diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_state_machine.cc
index 661dc7aace4712f57995bb1be623b3bc953af1d8..e0dc4311bb26a84baf0d44f1b696fa455bd75d7f 100644
--- a/cc/scheduler/scheduler_state_machine.cc
+++ b/cc/scheduler/scheduler_state_machine.cc
@@ -40,6 +40,7 @@ SchedulerStateMachine::SchedulerStateMachine(const SchedulerSettings& settings)
needs_prepare_tiles_(false),
needs_begin_main_frame_(false),
visible_(false),
+ resourceless_draw_(false),
can_draw_(false),
has_pending_tree_(false),
pending_tree_is_ready_for_activation_(false),
@@ -225,6 +226,7 @@ void SchedulerStateMachine::AsValueInto(
state->SetBoolean("needs_begin_main_frame", needs_begin_main_frame_);
state->SetBoolean("visible", visible_);
state->SetBoolean("can_draw", can_draw_);
+ state->SetBoolean("resourceless_draw", resourceless_draw_);
state->SetBoolean("has_pending_tree", has_pending_tree_);
state->SetBoolean("pending_tree_is_ready_for_activation",
pending_tree_is_ready_for_activation_);
@@ -256,7 +258,7 @@ bool SchedulerStateMachine::PendingDrawsShouldBeAborted() const {
// software draws could be scheduled by the Android OS at any time and draws
// should not be aborted in this case.
bool is_output_surface_lost = (output_surface_state_ == OUTPUT_SURFACE_NONE);
- if (settings_.using_synchronous_renderer_compositor)
+ if (resourceless_draw_)
return is_output_surface_lost || !can_draw_;
// These are all the cases where we normally cannot or do not want to draw
@@ -929,6 +931,10 @@ void SchedulerStateMachine::SetVisible(bool visible) {
wait_for_ready_to_draw_ = false;
}
+void SchedulerStateMachine::SetResourcelessSoftareDraw(bool resourceless_draw) {
+ resourceless_draw_ = resourceless_draw;
+}
+
void SchedulerStateMachine::SetCanDraw(bool can_draw) { can_draw_ = can_draw; }
void SchedulerStateMachine::SetNeedsRedraw() { needs_redraw_ = true; }
« no previous file with comments | « cc/scheduler/scheduler_state_machine.h ('k') | cc/scheduler/scheduler_state_machine_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698