Open stephenohair opened 6 years ago
Could it be that the psmove cameras are only recording at a max of 60fps and your hmd is pulling nicely at 90fps and that mismatch of 60-90 is ghosting the 30fps loss?
I thought of that possibility but I think the timeliness of when new information is made available to a connected client (psmovesteamvrbridge) is a separate concern.The driver shouldn't be basing it's timing on the data input source. It should base it's timing on the output source, the HMD in this case. There should be calls for get last time since sync in the driver. I'll check the driver source today and do more research on the steam VR driver api.
In short, PSMove controllers appear to stutter when moved despite the HMD tracking the world with no stutter at all. When I say stutter I mean as the controller is waved around a trailing image of the previous frame is present. Looks like a double image or a kind of ghosting. The faster you wave the controller the more apparent the ghosting is.
In my setup I use PSVR 1st generation + TrinusPSVR 0.9.2 with head tracking using a virtual HMD and pipe the HMD position from the PSMoveService through the a modified client PSMoveFreepieBridge on to the TrinusVR driver (phonevr) which tells SteamVR where the HMD is in space.
Movement and tracking is smooth of the HMD with no stutters at 90hz. However, when it comes to the rendered controllers they appear to be updating independently or not in sync with the HMD, TrinusVR SteamVR driver (phonevr) in my case.
My only two guesses as to why this is happening is that the controller pose updates the PSMoveSteamVRBridge SteamVR driver sends to SteamVR are not timed in resepect to the actual time of present and the delta difference of time since last vsync. My second guess is that TrinusVR is not sending the right vsync timing info in it's driver. It's my assumption that SteamVR is the middleman between the two drivers with it's common API (I'm sure I'm over-simplifying it here). The time since last vsync and time since last present is very important.
What are your thoughts Guido?
It's a shame TrinusPSVR isn't opensource. I'll have a poke around at writing an opensource PSVR HMD driver or source one if it already exists to test this theory.