diff options
Diffstat (limited to 'server/replaytool/src')
-rw-r--r-- | server/replaytool/src/main.rs | 17 | ||||
-rw-r--r-- | server/replaytool/src/render.rs | 6 |
2 files changed, 20 insertions, 3 deletions
diff --git a/server/replaytool/src/main.rs b/server/replaytool/src/main.rs index ec0bd682..a9032a61 100644 --- a/server/replaytool/src/main.rs +++ b/server/replaytool/src/main.rs @@ -55,8 +55,12 @@ enum Args { /// Render without display server; Requires wlheadless-run and mutter #[arg(short = 'H', long)] headless: bool, + #[arg(long, default_value = "wayland")] + video_driver: String, #[arg(long, default_value = "vulkan")] rendering_driver: String, + #[arg(long, default_value = "mutter")] + headless_compositor: String, }, } @@ -120,8 +124,19 @@ async fn main() -> anyhow::Result<()> { framerate, headless, rendering_driver, + headless_compositor, + video_driver, } => { - render(&input, &output, framerate, headless, &rendering_driver).await?; + render( + &input, + &output, + framerate, + headless, + &rendering_driver, + &video_driver, + &headless_compositor, + ) + .await?; } } Ok(()) diff --git a/server/replaytool/src/render.rs b/server/replaytool/src/render.rs index 4bf9402c..74dddf92 100644 --- a/server/replaytool/src/render.rs +++ b/server/replaytool/src/render.rs @@ -28,6 +28,8 @@ pub async fn render( framerate: usize, headless: bool, rendering_driver: &str, + video_driver: &str, + headless_compositor: &str, ) -> Result<()> { let port = 27090; let ws_listener = TcpListener::bind(("127.0.0.1", port)).await?; @@ -35,12 +37,12 @@ pub async fn render( let mut args = Vec::new(); if headless { args.push("wlheadless-run"); - args.extend(["-c", "mutter"]); + args.extend(["-c", headless_compositor]); args.push("--"); } args.push("hurrycurry-client"); if headless { - args.extend(["--video-driver", "wayland"]); + args.extend(["--video-driver", video_driver]); args.extend(["--rendering-driver", rendering_driver]); } args.extend(["--write-movie", output.to_str().unwrap()]); |