diff --git a/src/ui/job_worker/internal_worker.rs b/src/ui/job_worker/internal_worker.rs index 25c40a2..c01a3ef 100644 --- a/src/ui/job_worker/internal_worker.rs +++ b/src/ui/job_worker/internal_worker.rs @@ -3,7 +3,7 @@ use super::{ state::JobWorkerState, }; use crate::{ - profile::{LighthouseDriver, Profile}, + profile::{LighthouseDriver, Profile, XRServiceType}, ui::SENDER_IO_ERR_MSG, }; use nix::unistd::Pid; @@ -18,6 +18,8 @@ use std::{ thread, }; +static WIVRN_LAUNCH_OPTS: [&str; 2] = ["--no-instructions", "--no-manage-active-runtime"]; + macro_rules! logger_thread { ($buf_fd: expr, $sender: expr) => { thread::spawn(move || { @@ -193,8 +195,14 @@ impl InternalJobWorker { } else { launch_opts }; - if !launch_opts.contains(" --no-instructions") { - launch_opts.push_str(" --no-instructions"); + if prof.xrservice_type == XRServiceType::Wivrn { + let mut opts = WIVRN_LAUNCH_OPTS.to_vec(); + opts.retain(|opt| !launch_opts.contains(opt)); + + opts.iter().for_each(|opt| { + launch_opts.push(' '); + launch_opts.push_str(opt); + }); } let (command, args) = match launch_opts.is_empty() { false => (