Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
burning01's avatar
burning01
Explorer
10 years ago

Question about framerate and CV1 release

Hello,

I couldnt find an adequate answer to this question anywhere but I would have expected it to have been asked already...

I am working with unity and I have a test machine running slightly above oculus recomended system requirements however I am using the DK2 which only needs 75fps (which it is currently running at).

Does that mean that when the public gets the CV1 my game will not work correctly because its not hitting 90fps? - (like what happens if you drop much below 75fps in DK2?) or if my game runs fine in DK2 @ 75fps will that mean it will run fine in CV1 @ 75fps?

If the CV1 does need my game to run at the full 90fps to stop it juddering out then somebody please tell me how it is possible that Unity can be used with the Oculus recomended system to obtain 90fps? - becase currently an empty scene in Unity on the recomended system runs at around 75fps.

What am I missing?

Thank you in advance for your time

8 Replies

Replies have been turned off for this discussion
  • By default vsync is enabled to hit the 75 fps mark, you can disable it to see what your potential framerate is. You'l have a lot of judder since the framerate wont be locked, but you should at least be able to see if you're hitting the 90+fps mark

    here's some sample code that worked with 0.6.0 release, not sure if it's changed since

    if(Input.GetKeyUp(KeyCode.N)){
    uint caps = OVRManager.capiHmd.GetEnabledCaps();
    caps ^= (uint)HmdCaps.NoVSync;
    OVRManager.capiHmd.SetEnabledCaps(caps);
    }
  • ooo, Ill have to try that..
    Iv been working with upping my rendered resolution to validate that I'm going to work on the CV1.
  • So, you won't be able to disable V-Sync any longer (and looking at FPS is not the most accurate performance indication anyhow). You can use the Oculus performance HUD or Unity profiler to show the frame times and hope they are less than 11ms per frame.

    Also keep in mind that the consumer Rift has a larger render buffer and higher refresh rate, so games that are just meeting the performance budget on DK2 will be stuttering on a consumer Rift. So you will have to optimize the game to account for this.
  • @cybereality

    I am using Unity 5.2 and Unities Native VR with DK2 (and Oculus recomended spec test machine)
    Which as far as I'm aware the V-sync cant be changed or at least everything Ive done it stays locked on - to every frame.
    I am rendering to the DK2 @ 2402x1464 (which is what the Oculus Utilities v1 prefab is set to by default)

    So on the Oculus performance HUD I should be looking at "Total GPU time" which should be lower than 11ms per frame?
    and if that is correct; then so long as I'm keeping the "total GPU time" lower than 11ms per frame it will work on the CV1 ?

    If thats not right then please let me know what it is I need to do to make sure that my game works on the CV1

    Is there no way to get hold of the CV1? - my game is fairly near compleation but I need to make sure it will work on the CV1 before I can call it done.
  • Please see viewtopic.php?t=26628. If you want to simulate the number of pixels per second required by CV1, try setting your render scale (native texture scale) to 1.25. Of course, that won't account for the 2ms decrease in frame time, which will affect the number of vertices and draw calls as well as the CPU headroom you have for scripts, physics, and animation.
  • "vrdaveb" wrote:
    Of course, that won't account for the 2ms decrease in frame time, which will affect the number of vertices and draw calls as well as the CPU headroom you have for scripts, physics, and animation.

    Would it help testing to just add a loop that waits for 2ms, once per frame?
  • Sure, that could help a little. Also make sure that in the Perf HUD's Render Timings view, the App Render CPU and GPU times are both under 11ms. The Unity profiler's CPU and GPU Usage views will probably continue to report 13.3ms, but you should see at least 2ms of the time spent in "Other", which counts vsync and other overhead.