Auto merge of #8755 - glennw:vsync, r=pcwalton

Add debug option to disable vsync for profiling.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8755)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2015-12-01 05:26:00 +05:30
commit b4906aa008
2 changed files with 26 additions and 11 deletions

View file

@ -188,6 +188,9 @@ pub struct Opts {
/// Do not use native titlebar
pub no_native_titlebar: bool,
/// Enable vsync in the compositor
pub enable_vsync: bool,
}
fn print_usage(app: &str, opts: &Options) {
@ -277,6 +280,9 @@ pub struct DebugOptions {
/// Load web fonts synchronously to avoid non-deterministic network-driven reflows.
pub load_webfonts_synchronously: bool,
/// Disable vsync in the compositor
pub disable_vsync: bool,
}
@ -312,6 +318,7 @@ impl DebugOptions {
"replace-surrogates" => debug_options.replace_surrogates = true,
"gc-profile" => debug_options.gc_profile = true,
"load-webfonts-synchronously" => debug_options.load_webfonts_synchronously = true,
"disable-vsync" => debug_options.disable_vsync = true,
"" => {},
_ => return Err(option)
};
@ -358,6 +365,8 @@ pub fn print_debug_usage(app: &str) -> ! {
print_option("gc-profile", "Log GC passes and their durations.");
print_option("load-webfonts-synchronously",
"Load web fonts synchronously to avoid non-deterministic network-driven reflows");
print_option("disable-vsync",
"Disable vsync mode in the compositor to allow profiling at more than monitor refresh rate");
println!("");
@ -488,6 +497,7 @@ pub fn default_opts() -> Opts {
convert_mouse_to_touch: false,
exit_after_load: false,
no_native_titlebar: false,
enable_vsync: true,
}
}
@ -722,6 +732,7 @@ pub fn from_cmdline_args(args: &[String]) -> ArgumentParsingResult {
convert_mouse_to_touch: debug_options.convert_mouse_to_touch,
exit_after_load: opt_match.opt_present("x"),
no_native_titlebar: opt_match.opt_present("b"),
enable_vsync: !debug_options.disable_vsync,
};
set_defaults(opts);