Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
ryahata's avatar
ryahata
Honored Guest
12 years ago

VSync & GFX.WaitForPresent

Currently the VR experience that I'm working on has a lot of judder due to FPS being lower than 75. When I poked around in the profiler I noticed that most of the "lag" was due to GFX.WaitForPresent. I did a little looking in Unity Answers and it seems that GFX.WaitForPresent has to do with VSync. Is this correct?

Are there tips/tricks on how to reduce the time spent on GFX.WaitForPresent? I'm doing all kinds of frame rate optimizations (mesh reductions, lowering particle count, swapping out render textures for canned looped videos, no real time shadows, etc).

Also, has anyone gotten one of their VR experiences to run judder free in Direct HMD Access mode at FPS < 75? I know there were a few forum topics about judder being present at FPS < 75 and I was wondering if people have figured out a way to do it without VSync tearing.

Finally is there a way to run the DK2 in Direct HMD Access mode at 60 Hz? I'm curious if that would help the judder at FPS < 75.

Thanks :)

2 Replies

Replies have been turned off for this discussion
  • "ryahata" wrote:
    When I poked around in the profiler I noticed that most of the "lag" was due to GFX.WaitForPresent.

    Gfx.WaitForPresent is kind of a catch-all that appears anytime the CPU waits for the GPU to finish a frame. You can check the GPU profiler to see what's taking up the time.

    "ryahata" wrote:
    Also, has anyone gotten one of their VR experiences to run judder free in Direct HMD Access mode at FPS < 75?

    Rendering really needs to keep up with the display refresh rate. The moment it drops, the experience will be significantly worse. But it may fail more gracefully if you disable TimeWarp, VSync, and Low Persistence in OVRCameraController.

    "ryahata" wrote:
    Finally is there a way to run the DK2 in Direct HMD Access mode at 60 Hz?

    This doesn't seem to be possible in direct mode. But you can force it to 60Hz in extended mode. Note that DK2 has a hardware feature that disables low persistence by default when running at 60Hz. If that happens, you can still make it use low persistence if you toggle it twice after the app has started up.
  • ryahata's avatar
    ryahata
    Honored Guest
    Thanks for the reply vrdaveb.

    I did another framerate reduction pass on my scene and I think I'm getting 75 FPS during most of the experience. Had to sacrifice a few things but the end product is still acceptable.

    Thanks again for the help!