Skip to content

Instantly share code, notes, and snippets.

@Patola
Created January 19, 2025 14:27
Show Gist options
  • Save Patola/4a033c9df7da8f7c388ca33012419efc to your computer and use it in GitHub Desktop.
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

bushibot commented Feb 9, 2025

I'm new to all this, i'm running winvr from flat pack, how would I install this there?

@Patola
Copy link
Author

Patola commented Feb 10, 2025

@bushibot that will not work with WiVRn flatpak because it's already compiled (it's in binary form). For it to work, you have to install envision, which includes the WiVRn code and compiles it on-the-go. You would just deposit the patch inside ~/.local/share/envision/wivrn/patches/monado/ and ask for a "clean build" from the burger menu in envision, and it would compiled WiVRn with this patch.

@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.

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