I recently updated our Oculus plugin to the latest version, but since the update I get a really important performance issue with OVRInput.
It seem that this issue was already existing before (some of our players was running the game throught SteamVR for better performance), but with the latest update the issue is even worse, to the point that the game is unplayable (on PC).
The issue come from UpdateNodePhysicsPoses (in physic update) and GetControllerState4 (in update) from OVRManager, see below (default Oculus scene):
I found out that this issue is linked to TimeStep, decreasing the timestep will increase the number of physic update, making the performance worse.
At default timestep (0.02), it "only" consume around 2-3ms (still high), but decreasing the TimeStep to something lower will exarcebate the problem.
The update loop also consume around 1-2ms, so by default the CPU is spending ~3-5ms only on inputs!
By comparison, the update loop and physic loop of SteamVR only use around 0.5ms, so that's definitly an issue on the Oculus side.
This is a major issue for us as our game is running at a timstep lower than 0.01, causing a major performance drop.
We are using Unity 2019.3.11f1, URP, latest Oculus integration package (16.0).
I believe this has been fixed internally, and will be available with the next update (v19). I just reviewed the internal task and diff and while I haven't tested it personally, the people working on it were able to reproduce the performance regression in and made changes to correct it.