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

Overlay applications stopped receiving input API actions #455

Closed
dantman opened this issue Jun 16, 2019 · 2 comments
Closed

Overlay applications stopped receiving input API actions #455

dantman opened this issue Jun 16, 2019 · 2 comments

Comments

@dantman
Copy link

dantman commented Jun 16, 2019

I think this is an OpenVR/SteamVR issue, so I'm also reporting it in ValveSoftware/openvr#1135

Previously I managed to get the SteamVR Input API working with an overlay application (using the Unity plugin and #336) and it was properly receiving actions from the SteamVR Input API.

However I opened up my project recently and found that it is no longer receiving actions from the input API.

  • Logs indicate it successfully registers with SteamVR and identifies itself with the correct id
  • Logs indicate it "successfully load(s) 8 actions from the action manifest"
  • The binding UI indicates that actions for my overlay are correctly bound to my Vive controller
  • However despite this, while the overlay is running in the SteamVR Unity plugin's "Input Live View" window's debugging none of the actions ever go "Active" when I press the bound buttons on the controller and my code never receives the events that were previously working when buttons are pressed.

My only guess here is that an update to the SteamVR runtime stopped handling bindings for overlays correctly. I tried switching to the beta and the issue is the same. I also tried updating the SteamVR Unity plugin and openvr api and it's still not working.

@dantman
Copy link
Author

dantman commented Oct 27, 2019

It turns out this was actually the result of a race condition issue. My code handling SteamVR bindings was disabled because I was depending on the Initialize event to enable them (because things break if they are enabled before SteamVR initializes). However I guess somehow SteamVR started initializing earlier than it had been and as a result the code that adds the listener for the Initialize event was not run until after the initialize event had already been fired.

The SteamVR Unity plugin should really be using a deterministic function to let you wait for initialization, instead of using an Initialization event that is subject to race conditions.

@dantman dantman closed this as completed Oct 27, 2019
@dantman
Copy link
Author

dantman commented Oct 27, 2019

This of course doesn't explain why the SteamVR Unity Plugin's own built-in live view stopped working.

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

No branches or pull requests

1 participant