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

Godot 3.4.4 Native Vive Focus 3 Support #226

Open
Psychophylaxis2 opened this issue Jul 25, 2022 · 4 comments
Open

Godot 3.4.4 Native Vive Focus 3 Support #226

Psychophylaxis2 opened this issue Jul 25, 2022 · 4 comments
Labels
android Applies specifically to Android OS enhancement New feature or request

Comments

@Psychophylaxis2
Copy link

Hi.
I am attempting to run Godot natively on the Vive Focus 3 with the OpenXR demo.
Godot 3.4.4
godot_openxr_1.3.0
Godot XR Tools 2.5.0

Following the document to setup as if building for Quest, only changing (following the Vive Unity OpenXR guide):
Android Min SDK 25
Android Target SDK 29

The application starts but as a 2D window, then shortly after dies.

Debugger says:

E 0:00:01.130 xr_result: OpenXR Failed to enumerate number of extension properties []
<C++ Source> ../../../../../src/openxr/OpenXRApi.h:351 @ xr_result()
first_person_controller_vr.gd:68 @ initialise()
first_person_controller_vr.gd:57 @ _ready()

Looking in OpenXRApi.cpp I can see the function call to xrEnumerateInstanceExtensionProperties and subsequent call to xr_result, but its call to xrResultToString doesn't seem to produce an error value inside the square brackets. Which the Khronos document seems to indicate is impossible...

Unless anyone has any suggestions as to what's wrong, I will setup a buildable copy of the library to properly debug.

@BastiaanOlij
Copy link
Member

Hi @Psychophylaxis2 ,

At the moment, the plugin is currently compiled with Meta's OpenXR loader which only works on the Quest.

@Psychophylaxis2
Copy link
Author

Hi. I'm still pursuing this. However I'm not all that familiar with building on Android and Gradle.. Learning as I go. I have the ovr version building from the source, now figuring out how the build is constructed. The Focus 3 uses the native Khronos loader as I understand it. Any pointers on the android build appreciated. Thanks

@BastiaanOlij
Copy link
Member

Hi @Psychophylaxis2,

Sorry for the late response, I've been fully pre-occupied with Godot 4 in recent months.

As the Khronos loader is already part of our repo it should be possible to change the build scripts to switch over to it though the binaries are missing.

That said, I've heard that in theory you could swap out the libopenxr_loader.so file in the meta SDK for the Khronos one and recompile the plugin as is and it should work. Lacking a device to test on I don't know if this is true.

It wouldn't be a full solution however as you're missing out on the Java parts of the Khronos setup and the manifest file would still contain all the Meta related settings and a bunch of those are hardcoded in the Godot 3 core.

We're working on a much more flexible system for Godot 4 which hopefully will have the first parts merged into master soon

@BastiaanOlij BastiaanOlij added enhancement New feature or request android Applies specifically to Android OS labels Sep 23, 2022
@latsfro
Copy link

latsfro commented Aug 1, 2023

Hi, I am interested to follow up this thread, it has been quite a long time. I think my case is similar to here. I am new to programming in general so apologies in adv.

I am looking to compile an openxr android application that works on quest but bring it over to the Focus 3, the headset I have.

Can you let me know some steps I might need to consider to get it working? Or where might be good to learn about doing this?

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

No branches or pull requests

3 participants