Skip to content
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

Unified OpenXR loader for Meta and Pico devices #241

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

chrox
Copy link

@chrox chrox commented Dec 17, 2022

This PR is largely ported from godot4 OpenXR module. And now on Android the libgodot_openxr.so will not be linked with the vendor provided proprietary libopenxr_loader.so. And the loader for specific devices will be loaded accordingly at runtime by checking the device brand so that only one APK package is needed for both Meta and Pico devices.

This PR is tested on Pico 4 and Quest 2 and may help to solve #171.

In order to test on Pico devices, the following meta-data is needed in the AndroidManifest.xml file:

<meta-data android:name="pvr.app.type" android:value="vr" />

@chrox
Copy link
Author

chrox commented Dec 18, 2022

The Pico controllers work fine now after adding the interaction profile for /interaction_profiles/pico/neo3_controller.

@BastiaanOlij
Copy link
Member

Sorry @chrox , I totally missed you creating this PR.

I'll need to give it a proper review when I have some time and probably @m4gr3d should have a look at this too.

One problem that I think may end up being a showstopper, and the reason we never added more then Quest support to the plugin, is that deploying loaders from other vendors, even if they are unused, will likely be flagged if you actually want to submit your game to the platforms stores.

Just like with the Godot 4 solution, we would really need a separate plugin for Quest, a separate one for PICO, and a separate one for others, with a choice of which one to deploy on export.
Sadly we don't have that ability in Godot 3.

We might be able to work around that with export filters but it won't be pretty.

I'm hoping with some tweaks coming to OpenGL support in Godot 4 in the next build, we'll be at a point where Godot 4 is a far better choice for XR projects then Godot 3 and we can start advising anyone who want to target Pico or HTC or other Android based XR headsets to port their game over to Godot 4.

@BastiaanOlij BastiaanOlij added enhancement New feature or request android Applies specifically to Android OS labels Feb 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
android Applies specifically to Android OS enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants