Forum Discussion
glaze
11 years agoHonored Guest
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
- andrewtekMemberYou 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! - glazeHonored GuestOk, 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.
- andrewtekMemberIf 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.
- cyberealityGrand ChampionWell 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?
- glazeHonored 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);
- cyberealityGrand ChampionI 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.
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 4 years ago
- 2 years ago
- 3 years ago