Open xvolica opened 2 years ago
Sounds like it needs to include parts of sdk, I know for Oculus it needs to link oculus' loader in. Cool to see Pico adopting OpenXR as well but I wish people would start supporting the Khronos loader so we didn't have to compile different versions of the plugin for each platform, kind defies the point of OpenXR :)
Wish I had time to dive into this because it would be interesting to see godot running on more Android platforms. @m4gr3d @ChristophHaag , do any of you have time to dive into this a bit more?
I would also like to see support for Pico. Hopefully I’ll find some time for looking into this soon.
@BastiaanOlij could you give some pointers as to what needs to be done and what to compile (especially regarding Godot 4). I'd like to dive into this.
@Sch1nken right now the plugin is based on Oculus' own OpenXR loader which means that on Android only Quest 2 is supported.
The way forward, what we're currently attempting with Godot 4, is to support the official Khronos OpenXR loader on Android and follow the standard. That should open up various XR platforms on Android but so far adoption seems to lag behind.
From what I've learned PICO seems to have gone down that same route as Meta, creating their own OpenXR loader and not fully adhering to the standard. I don't know if this is a temporary situation.
The problem that poses for us is that we need to create separate builds for each platform and potentially make platform specific changes in the core to support them. A big PITA.
Thanks for the thorough and quick response. I see the issues with having to support several different standars. I'm not familiar enough with the current code architecture for Godot XR (the core in Godot 4 that is). Some random thoughts:
I'm trying to gauge the best way to support several devices without heavy modification to the core.
Additionally: I should probably move this to the Godot repository?
@Sch1nken If all goes well code wise there shouldn't be much difference, the problem indeed lies with what is included within the manifest (which we can deal with) and that for Meta (and I assume Pico) we have to link in a proprietary loader library.
That last one is an issue because we can't include a non FOSS library in a FOSS project. We could get away with it in Godot 3 because there OpenXR is a plugin, but for Godot 4 it's now core functionality.
The whole point of OpenXR is that this should be avoided. Khronos provides a fully FOSS loader for OpenXR.
Meta had no choice as Khronos was not ready yet to offer a solution on Android when the Quest switched to using OpenXR. Hence Meta needed to create their own loader but as they followed the standard I am confident they will support the Khronos loader in the very near future as in theory they are interchangable.
Why Pico didn't just go for the Khronos loader, I don't know as it was available to them. I also heard that Pico did not follow the standard and you need different initialization code, but I am not sure if this is true. That said, Pico is pretty active so here too I think we'll soon find a resolve.
The first step for us is to provide support for the official Khronos loader and get Godot 4 up and running with Monado and HTC. That shouldn't be a lot of work, it just hasn't come to the top of my priority list yet (I'm actually planning on doing this soon).
After that there are two options. 1) Meta/Pico finally adopt the Khronos loader, problem solved. 2) We need to support the proprietary loaders which we will do by either enhancing the build script so you can switch between libraries being linked in, or we'll fork the engine and add that logic to a fork. Either case it will be specialized builds outside of the main FOSS code base.
What's the current status on this? @Sch1nken did you manage to get it working? I'm trying to get godot running on my pico 4
@xvolica Could you test #241 on your Pico neo3? The OpenXR loader seems working on Pico now and the rendering is also fine on my Pico 4 with the demo APP. But the controllers are still not working, maybe the keys need some remapping. @BastiaanOlij Any clues about this?
@chrox we're waiting on OpenXR to accept PICOs bindings so we can merge the needed changes. You can build Godot with the following PR in the meanwhile: https://github.com/godotengine/godot/pull/70167
@chrox we're waiting on OpenXR to accept PICOs bindings so we can merge the needed changes. You can build Godot with the following PR in the meanwhile: godotengine/godot#70167
Cool. I will checkout this.
@chrox we're waiting on OpenXR to accept PICOs bindings so we can merge the needed changes. You can build Godot with the following PR in the meanwhile: godotengine/godot#70167
@BastiaanOlij It works like a charm.
Just for science... i wonder if chat gpt can fix the issue. Supposedly its great at debugging code and fixing issues.
On Sun., Dec. 18, 2022, 4:02 a.m. Huang Xin, @.***> wrote:
@chrox https://github.com/chrox we're waiting on OpenXR to accept PICOs bindings so we can merge the needed changes. You can build Godot with the following PR in the meanwhile: godotengine/godot#70167 https://github.com/godotengine/godot/pull/70167
@BastiaanOlij https://github.com/BastiaanOlij It works like a charm.
— Reply to this email directly, view it on GitHub https://github.com/GodotVR/godot_openxr/issues/171#issuecomment-1356741945, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMBOZ6LPIOVRBKWZYFAKW3LWN3HIRANCNFSM5O33BDPQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>
Just for science... i wonder if chat gpt can fix the issue.
ChatGPT is pretty cool but I don't think it can make a submission process go any faster.
Pico support using openxr mobile sdk with guide here and SDK here So I try to run godot vr demo game on Pico neo3:
But I only got these error log when launching:
Any advice?