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

OpenXR local floor emulation is not working on HTC Elite (and possibly other devices) #93647

Closed
BastiaanOlij opened this issue Jun 27, 2024 · 3 comments · Fixed by #93678
Closed
Assignees
Milestone

Comments

@BastiaanOlij
Copy link
Contributor

Tested versions

System information

Android - Compatibility

Issue description

We recently introduce support for the local floor reference space and this is working perfectly on systems that support this mode (Quest, SteamVR). Trying this out on an HTC Elite XR it didn't work properly, the camera gets positioned on the floor. My initial conclusion is that local floor is not supported and the emulation isn't functioning. This likely applies to other platforms as well.

It is possible that in recent refactors we broke the emulation logic.

Note, this is not a showstopper, local floor can also be emulated with stage and using XRServer.center_on_hmd on a pose recentre request.

Steps to reproduce

  • Use the MRP
  • Install the vendor plugin
  • Configure export template for Khronos plugin
  • Deploy to HTC Elite

Minimal reproduction project (MRP)

Use the demo project introduced here: godotengine/godot-demo-projects#1080

@BastiaanOlij BastiaanOlij added this to the 4.x milestone Jun 27, 2024
@BastiaanOlij
Copy link
Contributor Author

cc @dsnopek

@dsnopek dsnopek self-assigned this Jun 27, 2024
@dsnopek
Copy link
Contributor

dsnopek commented Jun 27, 2024

I'm able to reproduce this at startup on the HTC Vive XR Elite. However, when I use the system re-center, it does place me at the correct height, which leads me to believe it is sort of working, just not at startup.

It is possible that in recent refactors we broke the emulation logic.

When first implementing the emulation, I tested it on the Quest by hard-coding the check for XR_EXT_local_floor to false.

I suspect we broke the emulation, in a similar way to how we briefly broke composition layers (fixed in PR #91686) due to the play space being available a little later, but I still have to dig into it

@dsnopek
Copy link
Contributor

dsnopek commented Jun 27, 2024

I just posted PR #93678 which fixes the LOCAL_FLOOR emulation on the HTC Vive XR Elite in my testing

@akien-mga akien-mga modified the milestones: 4.x, 4.3 Jun 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants