Forum Discussion

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

FPS capped at 37

I'm developing a program that uses so intensive graphics that it can't hit stable 75 FPS except in menus etc. My undestanding is that in that case the device's vsync causes it to render at 37 FPS which I'm observing. However, if I disable the device's vsync (ovrHmdCap_NoVSync) the FPS is still capped at 37 in performance intensive parts but hits 75 in menus etc. I'm using SDK 0.6.0.0, desktop computer with NVIDIA 970 and direct display mode. I'm wondering if this is a known problem or if I'm doing something wrong.

6 Replies

  • You need to be hitting 75 minimum for DK2, and you should be targeting 90 for CV1. The fact that it drops to the unacceptable level of 37 FPS is sort of good as it is a blatant warning that you need to keep optimizing. The days of occasional FPS drops are behind us; we need to maintain 75/90 all the time now.

    Good Luck with your project!
  • glaze's avatar
    glaze
    Honored Guest
    Ok, so I disabled rendering of most of the objects and post effects and got higher FPS so it's not a syncing problem as I assumed. Need to keep optimizing, then.
  • If you have not looked at your lighting, I would look there. It is really easy to drop an unoptimized light into your scene and watch your FPS drop.
  • Well the SDK does force VSync to be On, which results in either a locked 75fps or will drop to 37.5fps if you slightly miss the frame. However, I thought there was a way to disable VSync for debugging purposes (you should never ship a game with it off). Can I ask what engine/API you are using?
  • glaze's avatar
    glaze
    Honored Guest
    "cybereality" wrote:
    Well the SDK does force VSync to be On, which results in either a locked 75fps or will drop to 37.5fps if you slightly miss the frame. However, I thought there was a way to disable VSync for debugging purposes (you should never ship a game with it off). Can I ask what engine/API you are using?


    Custom engine running on D3D11 in Windows 7. As far as I know, I'm disabling VSync by initializing the SDK with these flags:
    ovrHmd_SetEnabledCaps(HMD, ovrHmdCap_LowPersistence | ovrHmdCap_DynamicPrediction | ovrHmdCap_NoVSync);
  • I would recommend using ETW or other tools to measure the render time instead of the frame rate. But you can currently turn off TimeWarp to force full-rate rendering. Use SetDistortionCaps, for example: ovrHmd_SetDistortionCaps, without ovrDistortionCap_TimeWarp and with ovrDistortionCap_ProfileNoSpinWait.