mm0zct / Oculus_Touch_Steam_Link

SteamVR driver to enable Oculus Touch controllers with other headsets
MIT License
57 stars 18 forks source link

Steamvr update 2.4.4 results in error 301 when driver is on. Steamvr launches when driver is off. #25

Closed LogMeIn-Hamachi closed 3 months ago

LogMeIn-Hamachi commented 3 months ago

See update notes " SteamVR has been updated with the following changes.

Oculus: Added the ability for Oculus PCVR headsets and Quest headsets via Quest Link or Air Link to dynamically connect after SteamVR startup (vs requiring synchronous connection during startup).

Details: Connecting to the Oculus runtime is taking upwards of 30 seconds for Quest 1 headsets running HMD OS v50 with Meta Quest Link App v63. This was triggering SteamVR's 20 second hang detection timeout, resulting in a 301 error. Now, in this case you will see a SteamVR connection error pop-up, which will automatically resolve after successful connection. " Something about this change seems to break steamvr and result in 301 error on launch with this driver.

Im happy to attach more details if needed.

LogMeIn-Hamachi commented 3 months ago

Steamvr error info page: https://help.steampowered.com/sv/wizard/HelpWithGameIssue/?appid=250820&issueid=374&nodeid=77&return_nodeid=71

LogMeIn-Hamachi commented 3 months ago

Move Oculus and Oculus_legacy out of steamvr folder. It launches after that.

Its under "Drivers" in steamvr folder

Workaround.

mm0zct commented 3 months ago

Thanks for the report and investigation, I haven't used this setup in a while so I hadn't noticed. Hopefully your workaround will help people until I can spend some time on it. I should have enough stuff to reproduce it when I've got time since I've got a quest 3 too.

LogMeIn-Hamachi commented 3 months ago

Thanks for the report and investigation, I haven't used this setup in a while so I hadn't noticed. Hopefully your workaround will help people until I can spend some time on it. I should have enough stuff to reproduce it when I've got time since I've got a quest 3 too.

No problem!, The 2.4.4 update released today so i did not expect any developer to have time to catch it at all. Luckily i had used touchlink earlier in the day in working order before the update and it worked so thats why i was thinking that might be it.

LogMeIn-Hamachi commented 3 months ago

Thanks for the report and investigation, I haven't used this setup in a while so I hadn't noticed. Hopefully your workaround will help people until I can spend some time on it. I should have enough stuff to reproduce it when I've got time since I've got a quest 3 too.

I have more details from VALVE dev on forum post for you!

" ovr_Initialize is now being called in a separate thread in the oculus driver, and since all drivers are loaded into the same process, that's no longer synchronous. You should try waiting until another driver activates a hmd sucessfully before initializing and see if that helps.

Let me know if that works for you. " Source: https://steamcommunity.com/app/250820/discussions/3/4293692546849505893/#c4293692546849827275

jetblade commented 3 months ago

is there a working work around right now? (LogMeIn-Hamachi's) workaround did not work

DeltaNeverUsed commented 3 months ago

(LogMeIn-Hamachi's) workaround did not work

Hmm… Yeah, I can't seem to get that working either.

I've tracked it down to https://github.com/mm0zct/Oculus_Touch_Steam_Link/blob/40606cd07aa3b76ce62bf6553f2dfc9c86ef05c5/CustomHMD/OculusTouchLink.cpp#L340 returning "Unable to load LibOVRRT DLL"

DeltaNeverUsed commented 3 months ago

image Got it working!

DeltaNeverUsed commented 3 months ago

Made a PR #27. If someone could check if it works on their machine, that'd be great!

DeltaNeverUsed commented 3 months ago

" ovr_Initialize is now being called in a separate thread in the oculus driver, and since all drivers are loaded into the same process, that's no longer synchronous. You should try waiting until another driver activates a hmd sucessfully before initializing and see if that helps.

Let me know if that works for you. "

Seems like it was kind of unrelated. My guess is that the newer SteamVR Oculus driver was using a lot newer version of LibOVR and after being initialized, Oculus wouldn't want to also initialize TouchLink because it was using a version of LibOVR that was too old to be used in unison with the newer one?

mm0zct commented 3 months ago

Thanks for the PR! I'll try and get it built tonight.

DeltaNeverUsed commented 3 months ago

I did include the new binaries in the ReleasePackage folder if you just want to use those.

Didn't update the zip file, though.

LogMeIn-Hamachi commented 3 months ago

Thanks allot for the work! Glad you found the issue.

mm0zct commented 3 months ago

Thanks Delta, I've published it as a new release and updated the 7z archive :)

I validated everything builds for me, but I just shipped your binaries as-is since I couldn't actually test my build, I just verified that I could compile everything on my laptop.