Skip to content

Instantly share code, notes, and snippets.

@Patola
Created January 19, 2025 14:27
Show Gist options
  • Select an option

  • Save Patola/4a033c9df7da8f7c388ca33012419efc to your computer and use it in GitHub Desktop.

Select an option

Save Patola/4a033c9df7da8f7c388ca33012419efc to your computer and use it in GitHub Desktop.
patch for envision for running Metro Awakening via WiVRn. Put it under ~/.local/share/envision/wivrn/patches/monado/
From 3fe8fe41af781d18a61c644e7446c8c91f8365be Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cl=C3=A1udio=20=27Patola=27=20Sampaio?= <[email protected]>
Date: Sun, 19 Jan 2025 15:01:57 +0100
Subject: [PATCH] Ignored malformed flags from metro awakening init
---
src/xrt/state_trackers/oxr/oxr_api_space.c | 2 +-
src/xrt/state_trackers/oxr/oxr_api_swapchain.c | 3 +--
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/xrt/state_trackers/oxr/oxr_api_space.c b/src/xrt/state_trackers/oxr/oxr_api_space.c
index 8526b6644..896507685 100644
--- a/src/xrt/state_trackers/oxr/oxr_api_space.c
+++ b/src/xrt/state_trackers/oxr/oxr_api_space.c
@@ -232,7 +232,7 @@ oxr_xrLocateSpace(XrSpace space, XrSpace baseSpace, XrTime time, XrSpaceLocation
OXR_VERIFY_SPACE_NOT_NULL(&log, baseSpace, baseSpc);
OXR_VERIFY_ARG_TYPE_AND_NOT_NULL(&log, location, XR_TYPE_SPACE_LOCATION);
- if (time <= (XrTime)0) {
+ if (time < (XrTime)0) {
return oxr_error(&log, XR_ERROR_TIME_INVALID, "(time == %" PRIi64 ") is not a valid time.", time);
}
diff --git a/src/xrt/state_trackers/oxr/oxr_api_swapchain.c b/src/xrt/state_trackers/oxr/oxr_api_swapchain.c
index 20f371312..c697f27e8 100644
--- a/src/xrt/state_trackers/oxr/oxr_api_swapchain.c
+++ b/src/xrt/state_trackers/oxr/oxr_api_swapchain.c
@@ -98,8 +98,7 @@ oxr_xrCreateSwapchain(XrSession session, const XrSwapchainCreateInfo *createInfo
}
if ((createInfo->usageFlags & ~flags) != 0) {
- return oxr_error(&log, XR_ERROR_VALIDATION_FAILURE,
- "(createInfo->usageFlags == 0x%04" PRIx64 ") contains invalid flags",
+ oxr_warn(&log, "(createInfo->usageFlags == 0x%04" PRIx64 ") contains invalid flags",
createInfo->usageFlags);
}
bool format_supported = false;
--
2.48.1
@bushibot
Copy link

Humm I know .23 just dropped when might this patch make it into the main line?

@Patola
Copy link
Author

Patola commented Feb 11, 2025

Unfortunately it probably won't. This issue happens because the openXR initialization that Metro Awakening does is off-specs, and WiVRn developers aren't very willing to get lax on checks to make it work: WiVRn/WiVRn#232

If you see on the bug report, I've even opened a bug report at PLAION (the publisher) https://playersupport.plaion.com/hc/en-us/requests/150094 but what happens on it is not open to the public. The best hope we have is that they fix it in Metro Awakening itself and a future patch allow WiVRn to run it without my pach.

@bushibot
Copy link

Sigh so basically shit out of luck unless I want to go figure out envision and the many other complex moving parts or deal with crappy ALVR performance. Argh, thanks for clarifying.

@Willienn
Copy link

any update on this ?
the people on linux adventures dont recommend using envision with wivrn so idk about using it

@Patola
Copy link
Author

Patola commented Nov 25, 2025

I don't see why they wouldn't recommend it. envision is not difficult to use and it solves a number of problems, including testing new patches, which is specially important for rapid evolving software as wivrn and xrizer.

It is the only way I use wivrn. And it is the best way to "solve" this since it's a patch, which means wivrn has to be compiled with this patch applied, and that's precisely what envision does -- automatically, just by depositing it in a directory.

You have the problem, you have the perfect solution for the problem, but you are hesitating because of some negative recommendation from someone. Do I count as "people on linux adventures"? Because I'm there too, I chat on the discord, I contribute to wivrn and the other software (mostly with bug reports), and I do highly recommend envision.

@Willienn
Copy link

it was the only way i use wivrn too its just easier to personalize the build and etc.
i was using pure wivrn to avoid headache (but its seems this is not the case anymore)

and about the discord:
i think was some mod that responded to me. I ask something (idk what as) and they response with just envision its not recommended with wivrn, i asked the reason but got ignore lol.

and here is the part on the site that say:

Do not use Envision for WiVRn directly unless you absolutely need it to access experimental patches. See WiVRn as WiVRn has it’s own GUI much more suited to itself than Envision and may be installed via Flatpak, AUR, or Fedora repos.

but anyway the fix worked really well, thnks. the are only problem with cross eye effect. but i think its a problem with the game? seems it happens on windows too so idk

@Patola
Copy link
Author

Patola commented Nov 26, 2025

What is the cross eye effect? When I play the game the image appears correct, that I recall. I can try and check again to see if I have that effect if you describe it to me.

@Willienn
Copy link

i was mistaken about the cross eye issue on Linux.
on Windows it happen (i might be wrong, but i tend to call cross eye effect any problem where one eye image looks different from each other).

on Linux, what i actually have is a vertical line between the eyes, which i can see when i move my head. i think its some kind of reprojection issue.

also, i broke my EFI partition on a sys update... lol, so i wont be able to give feedback today.

@Patola
Copy link
Author

Patola commented Dec 21, 2025

This patch is not working for newer versions of WiVRn. Please use this one instead: https://gist.github.com/Patola/227d2ae3185b9ffab95d807622871ee3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment