Index: cc/base/switches.cc |
diff --git a/cc/base/switches.cc b/cc/base/switches.cc |
index 2dac58b691147a9b073b87274984fad8c5f9099d..a4069c034874b4ef2fda964e29d3d96acc4abcd4 100644 |
--- a/cc/base/switches.cc |
+++ b/cc/base/switches.cc |
@@ -27,6 +27,16 @@ const char kDisableImplSidePainting[] = "disable-impl-side-painting"; |
// Paint content on the compositor thread instead of the main thread. |
const char kEnableImplSidePainting[] = "enable-impl-side-painting"; |
+// Disables the deadline scheduler. |
+// Overrides the kDisableDeadlineShceduling flag. |
+const char kDisableDeadlineScheduling[] = "disable-deadline-scheduling"; |
+ |
+// Deadline scheduling gives children compositors and the main thread an |
+// interval over which they can produce content instead of always consuming |
+// their input on the next BeginFrame. This allows a total pipeline latency |
+// of less than 1 vsync if their intervals are properly nested. |
+const char kEnableDeadlineScheduling[] = "enable-deadline-scheduling"; |
+ |
const char kEnableTopControlsPositionCalculation[] = |
"enable-top-controls-position-calculation"; |
@@ -146,5 +156,20 @@ bool IsImplSidePaintingEnabled() { |
#endif |
} |
+bool IsDeadlineSchedulingEnabled() { |
+ const CommandLine& command_line = *CommandLine::ForCurrentProcess(); |
+ |
+ if (command_line.HasSwitch(cc::switches::kDisableDeadlineScheduling)) |
+ return false; |
+ else if (command_line.HasSwitch(cc::switches::kEnableDeadlineScheduling)) |
+ return true; |
+ |
+#if defined(OS_ANDROID) |
+ return true; |
+#else |
+ return false; |
+#endif |
+} |
+ |
} // namespace switches |
} // namespace cc |