I've just implemented support for live IPD adjustment. Testing with CV1.
As suggested, I am calling ovr_GetRenderDesc every frame. In all cases from the start, regardless of the the slider's position, the values returned indicate an IPD of 64mm (32mm each way).
When the slider is adjusted at some point, the reported offsets go to the true value.
You probably have an existing profile from the DK2 days, right? If there's a profile, we use that first, and it's only if you move the IAD slider that we override with the value from there. This helps people with very wide or narrow IPDs beyond the range of the slider - they can set the profile to their actual IPD, and that will control the inter-camera-distance in-game. The fact that the physical IAD doesn't quite get there is not that bad - the really important one is that ICD==IPD.
You can either delete the profile, or change it to be your correct IPD. Profiles live in C:\User\yourname\AppData\Local\Oculus\ProfileDB.json as before. Sorry there's currently no nice-looking UI on this feature.
Thanks for the test, @ccs I didn't get round to this today as I've been on controllers all day. Did think about it a little and the current implementation is problematic (even if not bugged). I think, for the narrow / wide IPD people Tom mentioned, an IPD override option (no / yes + number) is needed (in the interface). It's probably not best to use leftover DK2 settings, as it's going to be confusing. By the way, @tomf - a lot of DK2 users want an IPD setting. I'll link you to the thread. Maybe this override option could be the way to give DK2 users what they need. https://forums.oculus.com/community/discussion/33431
@tomf I confirm the result found by @ccs This bug still exists even if you delete the ProfileDB.json
How to reproduce:
- Delete ProfileDB.json - Set headset slider to a narrow or wide IPD - Run a VR program - IPD is reported (by ovr_GetRenderDesc) as 64mm regardless of slider position - Adjust slider slightly and ovr_GetRenderDesc now reports the expected value
Somehow it doesn't work for me. I am starting Live for Speed from a shortcut (sideloading if you want to call it that). I don't know if that makes a difference. Maybe it only works properly if started from Oculus Home?
No matter what I set the slider to, when LFS is started the IPD is reported as 64, until I move the slider. We have a public test patch that shows this. The IPD reported by the Rift library is shown at the top right in View Options.
[I deleted that profiledb.json days ago and my computer starts fresh every day]
EDIT: If this changed in 1.3.1 I wouldn't know. I've blocked Oculus from connecting to the internet as I can't risk getting a bugged update, so close to release and without any possibility of rolling back. @tomf ?
I've just run into this as well. I've tried sdk 1.3 and 1.4 on a CV1 using my own C++ test program. I deleted profiledb.json and rebooted, but ovr_GetRenderDesc still always returns 0.032 unless I move the slider while the program is running.