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

Fixes floating stale hands and doubled mesh with Windows XR Plugin #9890

Merged

Conversation

keveleigh
Copy link
Contributor

@keveleigh keveleigh commented May 26, 2021

Overview

After Unity fixed their head tracking bug on pause/resume, it revealed that we still had some issue with hands not being thoroughly cleaned up.

Thanks to @Holo-Fiedel's research at #9238 (comment), and verifying the logs locally, this was fixable by guarding against an incorrect hand pose throwing an exception in the hand mesh provider.

The underlying issue appears to be if Windows XR Plugin reports an InputDevice that represents a SpatialInteractionSource that happens to be lost between the time Windows XR Plugin reported its devices and the time MRTK asks the platform for a hand mesh. This should only really happen within the span of a single frame, so the next frame will properly report the InputDevice as lost.

This exception was causing the rest of the Update loop to stop running, which put MRTK's local InputDevice tracking out of sync and caused the MRTK source to never be reported as lost.

After this change, I've been unable to repro any of the hand joint / hand mesh related issues.

Changes

@keveleigh
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants