-
-
Notifications
You must be signed in to change notification settings - Fork 209
Exclusively OpenXR for Android/PCVR #798
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
[CI BUILD]
[CI BUILD]
[CI BUILD]
[CI BUILD]
# Conflicts: # Assets/Oculus/OculusProjectConfig.asset # Assets/XR/Settings/Open XR Package Settings.asset
|
apktool may be a drop problematic; we have to make sure it's signed properly. But it's probably possible. Maybe a followup PR? |
|
Yeah it can be a followup, I'm hoping we can make the change then re-sign as we have our original keys |
|
In general I couldn't find passthrough options in the version on the Pico
store (unless if that's recently added)
…On Thu, Sep 4, 2025, 16:41 eeease ***@***.***> wrote:
*eeease* left a comment (icosa-foundation/open-brush#798)
<#798 (comment)>
Hi all! Amazing work on this, thanks for keeping it open for others to
learn from and contribute to. I was coincidentally just working on making
the move to pure OpenXR for Quest and PICO, so a lot of this confirms
conclusions I came.
At the moment I'm particularly interested in OpenXR Passthrough on PICO.
I cloned the Open Brush repo, switched to this branch, and opened the
project in Unity. Can you let me know how you're enabling passthrough on
PICO? I searched through all of the menu options but didn't see a button
in-app. I haven't *extensively* looked through all the code yet but I
figured I'd ask to save some time in case I'm missing something.
Note: I tried both in Editor and in a standalone Windows build. I'm using
a PICO Business device so using PICO Business Connect; picostreaming is the
preferred OpenXR runtime on my computer atm.
Thanks!
—
Reply to this email directly, view it on GitHub
<#798 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AJ5EZXGILQEGFZXTH5JTJAL3RBFS3AVCNFSM6AAAAACE6BE67CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTENJUGA3DIMZTGI>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
|
@eeease did you build for Pico, or perhaps use the generated build from this PR? It will likely not show in-editor unless pico's streaming thing supports OpenXR and the passthrough extension, you will need to build to device. @smitdylan2001 this PR is still draft so it's not in the store version. |
Hey, thanks for the response! I was actually just checking for the build from this PR but it looks like it's expired. I'm more used to Azure and TeamCity pipelines but I checked both the Actions tab and the specific job log. Both report expired builds: Also, I'm most interested in Standalone (Windows) + Passthrough, so a dedicated PICO build doesn't help all that much. |
|
hmm, i'll see if i can kick another run for you.
That's going to rely on your OpenXR runtime on windows supporting FB_Passthrough! I have played with the KHR environment blend option as another passthrough strategy, but it's not in this build yet. |
|
The following package files were changed: The following files from ProjectSettings were changed: (Review: flagged files) |
# Conflicts: # .github/workflows/build.yml # Assets/Oculus/OculusProjectConfig.asset # Assets/Prefabs/NoPeekingCamera.prefab # Assets/Scripts/Multiplayer/MultiplayerManager.cs # Assets/Scripts/VrSdk.cs # Assets/XR/Settings/Oculus Settings.asset # Assets/XR/Settings/OpenXRPackageSettings.asset # Packages/manifest.json
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A couple of questions:
- For Q1, we had to force a few extra things in the manifest. I'm not sure if we still need those since we're not longer pushing to the store
We still need a solution for the different package names.edit: I misread the build.yml- Does Pimax still work?
- I think we should test manual uploads to a different release channel on the platforms that support it (i.e., Q2+ and Pico) just to make sure its happy. We need to make sure that this does not go to the beta or live channels, though, lest it cause problems with downgrades.
Also note that I'm going on vacation for a week or so starting on Thursday :-)
|
Also, I think you broke ArborXR publishing |
|
And it looks like the Github publish might also be broken |
|
@mikeage The build steps are what I wanted your review on, so thanks! Happy for you to touch up, you can probably get my intent and it might be quicker for you to fix. EDIT: I can see that Arbor would be broken, it didn't have a merge conflict so I didn't notice it during the merge. Perhaps as they all use the same APKs, it could be a matrix job? |
|
A few comments: what about the Rift store build? I think Pico will fail formal builds, b/c we can't upload the same version number to both channel 1 and channel 2. That's why we had that suffix. I think that we specifically will need all of those FORCE_* for the Quest build; back when Q1 was still accepted, we needed them after we removed the OVR package. Now that we've removed it from Q2+ as well, I think we'll need them. |
|
Rift store just uses the windows OpenXR build, as it should :)
Is that just because the checksums are different though? If it's the same build, I'd say it's really stupid if it can't be in both channels.
I think (I'll double check!) that as it's all OpenXR, I've moved those manifest bits directly into the custom manifest we already use. |
Hmmm. That's a fair question. We didn't try (and it will be problematic to experiment). We'll only be able to test this if/when we do a formal version. Might be ok, might need another, identical, build. |
|
I pushed three commits with three smallish fixes that I think are important. Other than that, this looks good, but I think we need to test an upload to a different channel before merging |
|
Good catch on the symbols, but do we really need the quest specific version? It's just a package ID change... I'd rather use our proper ID on places we have control over |
|
Are you asking about Github or ArborXR? Or both? I'd rather not break an upgrade for someone who previously installed that one. Maybe on a major release we can talk about it, but not just slipped in like that. |
|
Oof, yeah I forgot about that... what a pain. I hate past me. |
I thought this was done?
This PR implements the early stages of https://github.com/mikeskydev/unity-openxr-extensions, moving away from vendor specific XR SDKs towards using OpenXR for as many features as possible.
TODO:
Out of scope:
Test Matrix Nov '25:
This removes dependency on the Oculus Core SDK and the Pico SDK, allowing us to use the same codepath. Annoyingly our package name is still different on Oculus, so we have to do a separate build. @mikeage could we consider using apktool to hack our own package as a post-build step, rather than building twice?
Oculus Passthrough is delivered via the new upm package, and as a plus we get passthrough on Pico and Quest PCVR!
Oculus Platform is required for age check (and some MR features that are currently commented out), but we check which platform we're running on before initializing, otherwise it can crash non-oculus android devices. I will reimplement the MR features in my OpenXR package at a later date.
Wave is removed (never actually used, and we can do it properly with OpenXR), as is the Pimax build, getting our current builds down to 6.
Closes #447