diff --git a/src/ui/job_worker/internal_worker.rs b/src/ui/job_worker/internal_worker.rs index 25c40a2..8278493 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,10 @@ use std::{ thread, }; +/// launch options that are desirable on wivrn, no way currently to remove them +/// but it should be fine +const 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 +197,13 @@ impl InternalJobWorker { } else { launch_opts }; - if !launch_opts.contains(" --no-instructions") { - launch_opts.push_str(" --no-instructions"); + if prof.xrservice_type == XRServiceType::Wivrn { + for wivrn_opt in WIVRN_LAUNCH_OPTS { + if !launch_opts.contains(wivrn_opt) { + launch_opts.push(' '); + launch_opts.push_str(wivrn_opt); + } + } } let (command, args) = match launch_opts.is_empty() { false => (