Announcement

Collapse
No announcement yet.

Theoretical Performance

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Theoretical Performance

    Recently I've been trying to get the highest framerate possible because DK2 has ~75 hz refresh rate and maintaing 60-75FPS is very important. Using 4.2 And to a little bit better success (on 4.3 source, because update SDK and nice rendering changes). I have not been able to get above ~40 fps no matter the settings, configurations. I've tried Using most of the suggestions from ( https://docs.unrealengine.com/latest...nce/index.html ). I only bring this up cause i can get the game to have really nice performance increased with 120-150FPS without VR mode. But as soon as stereo is turned on its almost as if vsync is set for ~30 (doesn't get higher or lower).

    Current Setup:
    GTX 680 SLI (i know sli is not supported but boy i wish it was ._.)

    I'm mainly looking for the designers/render team to weigh in on what they utilize to maximize performance and what settings are almost required for a good VR experience (Ex: what settings or best practices were used for Couch Knights). Will we see this get better without making scene look terrible/unrealistic?

    I would hope to think that a GTX 680 would have enough horsepower to easily run in stereo with a bare minimal scene at atleast 60-75 fps
    Last edited by KRushin; 06-24-2014, 03:18 PM.
    Twitter - @TheKRushin

    Feel free to ask questions and come learn to be an #UnrealDev

    How to report a Bug

    #2
    I'll ping the designer from Couch Knights to come in and talk about how we got such a high framerate with that, but thought I'd chime in to talk about why there's a bigger drop going to stereoscopic.

    The biggest frame rate killer is that when the VR headsets are enabled, we flush the current frame at the end of rendering, instead of letting the driver buffer up frames. This does wonders for reducing latency, but it does cost framerate. In practice, this costs about 30% - 40% of your total frames. Additionally, depending on what you have your screen percentage set to, this can cost frames in exchange for graphical fidelity. To play with that, you can use "hmd sp 100" in the console. Using a higher number will use a bigger buffer and slow things down, and using a lower number will speed things up but make them appear lower quality.

    Your best friend with this stuff is the graphics profiler, which you can use by hitting Ctrl + Shift + Comma. That will let you see what's costing you lots of frame time, and hopefully point you towards some easy things to fix in your scene.

    Finally, when you go into stereo mode with the HMD, it automatically turns vsync on. So, it may very well be locking your framerate to 30. You can try turning it off with r.vsync 0 to see if you get more frames. When you plug in the DK2, the vsynced framerate should be at 75.

    Comment


      #3
      Originally posted by Nick Whiting View Post
      The biggest frame rate killer is that when the VR headsets are enabled, we flush the current frame at the end of rendering, instead of letting the driver buffer up frames. This does wonders for reducing latency, but it does cost framerate. In practice, this costs about 30% - 40% of your total frames. Additionally, depending on what you have your screen percentage set to, this can cost frames in exchange for graphical fidelity. To play with that, you can use "hmd sp 100" in the console. Using a higher number will use a bigger buffer and slow things down, and using a lower number will speed things up but make them appear lower quality.
      HMD SP 100 is what i was looking for, as soon as i used "hmd sp 100" fps instantly jumped to ~90-100 fps and like you said the fidelity went down (which is perfectly fine till i can tune the settings/scene look at the profiler and get a nice balance). But It would be good to see how the Couch Knight people got "the best of both worlds" to maximize the user experience. I know it was briefly discussed about maybe releasing it as far a "best practices" for vr template/demo (with regards to UE4).

      For those who also may be visiting this, this is also helpful: https://www.youtube.com/watch?v=2aVJWIrvunM

      Originally posted by Nick Whiting View Post
      Your best friend with this stuff is the graphics profiler, which you can use by hitting Ctrl + Shift + Comma. That will let you see what's costing you lots of frame time, and hopefully point you towards some easy things to fix in your scene.
      Ahh yes! Thanks Nick this is what i was looking for, the graphics profiler (google failed me!). This helps a bunch! Possible Suggestion: It would be a little helpful for this to be added as a quick link or embed in that documentation page (since its about many of the graphical scaling configs, which usually goes hand in hand with performance/profiling).

      Originally posted by Nick Whiting View Post
      Finally, when you go into stereo mode with the HMD, it automatically turns vsync on. So, it may very well be locking your framerate to 30. You can try turning it off with r.vsync 0 to see if you get more frames. When you plug in the DK2, the vsynced framerate should be at 75.
      It seems like its disabled by default, or i turned it off a while back and it saved.
      Last edited by KRushin; 06-24-2014, 04:30 PM.
      Twitter - @TheKRushin

      Feel free to ask questions and come learn to be an #UnrealDev

      How to report a Bug

      Comment


        #4
        Subscribing to this thread. Should be some performance tuning coming up with the release of DK2.
        Running a 780Ti but still concerned about potential dips below 75hz. TimeWarp implementation will be helpful.

        Comment


          #5
          Originally posted by Wollan View Post
          Subscribing to this thread. Should be some performance tuning coming up with the release of DK2.
          Running a 780Ti but still concerned about potential dips below 75hz. TimeWarp implementation will be helpful.
          Currently 4.3 Github source is using the latest SDK (3.2 preview). It looks and "feels" better, and that includes timewarp (i think they are still working on a couple things in regard to timewarp). But 4.3 will be a nice release for VR, and Rendering in general for UE4.

          After the release of 4.3, I'll be sure to try to create a quick guide with a good guidelines for developers working with VR. Mainly focusing on the UE4 specific aspects of VR development.

          Note: HMDwarp has been changed/removed so it won't work for those that try it.
          Last edited by KRushin; 06-24-2014, 05:25 PM.
          Twitter - @TheKRushin

          Feel free to ask questions and come learn to be an #UnrealDev

          How to report a Bug

          Comment


            #6
            Originally posted by Nick Whiting View Post
            I'll ping the designer from Couch Knights
            Is Couch Knights going to become a Marketplace example per chance?
            Storyteller - An immersive VR audiobook player

            Dungeon Survival - WIP First person dungeon crawler with a focus on survival and environmental gameplay ala roguelikes

            Comment


              #7
              Glad those tips helped out! I just realized that the content guy from Couch Knights is on out of the office at the moment, so it might be a week or two before he chimes in

              Is Couch Knights going to become a Marketplace example per chance?
              Yes! We're going to make sure to release this soon for you guys as a free content example. Look for it in a few weeks!

              Note: HMDwarp has been changed/removed so it won't work for those that try it.
              Correct, the 4.3 preview does not currently include time warping, because of some integration changes we're making to the engine to better enable the functionality. However, if you're really interested, you can get the code directly from Oculus as a patch. However, that patch is likely to change with the official integration of timewarping into main, so please only do that if you're confident you can handle the code merging

              Comment


                #8
                A friend has a different approach to creating 3D than in the vanilla UE4, which coincidently was something Carmack was experimenting with a few years back (although it's not clear if he continued using it. Rather than drawing the two different view one at a time he uses the geometry shaders to draw each object twice with minimal CPU overhead and no extra draw calls.

                He ported the technique to UE4 a few months back and released a playable demo & code (you'll need Visual Basic so you can compile the Code) for anyone to download.

                https://developer.oculusvr.com/forum...pic.php?t=8032

                It's worth grabbing this demo seeing if his method has significant gains for you.

                Comment


                  #9
                  Very useful document on optimizing the engine for high framerate, by our very own Joe Conley:

                  https://docs.google.com/document/d/1...9jT5zH3I/edit#
                  Last edited by Nick Whiting; 07-16-2014, 03:01 PM.

                  Comment


                    #10
                    Thanks for that Nick (and Joe!)

                    Will study for sure!

                    Comment


                      #11
                      Would be interesting to know how fast one could expect to get UE4 going if one were to strip it down as much as possible (without resorting to digging into the source.) Would anything close to UT99/Q3 be possible, or is there simply too much unavoidable overhead in the more modern engine pipeline to get anything like that.

                      Comment


                        #12
                        Originally posted by Nick Whiting View Post
                        Glad those tips helped out! I just realized that the content guy from Couch Knights is on out of the office at the moment, so it might be a week or two before he chimes in
                        Nick, any chance the Couch Knights designer is available to chime in on this topic? My team is considering whether to use UE4 for an upcoming two year VR project and a big sticking point is the engine's performance for high frame rate applications.

                        Couch Knights is holding a solid 120 FPS+ on our dev machines, and so far we think it's due to some kind of black magic

                        Any guidance would be much appreciated.

                        Comment


                          #13
                          120 fps? may I ask what kind of system you have? I can only get a very unstable mayb if the sun and the stars are aligned correctly 15 to 30 fps... with all kind of tricks I tried from lots of different forum posts... really slowly i'm beginning to think UE4 engine is not going to work for me.

                          I can play really all kind of demo's with enough fps (non UE4) but with UE4 I can't do anything, a simple box with a 256pixel texture is already way to demanding on dk2

                          Comment


                            #14
                            UE4 seems not the best engine for stereo mode (like Unity or other modern engine) but if you get 15-30fps in couch knights what do you need its new graphic card.
                            pd: excuse my english.

                            lfw/paid modeling, painting, texturing.

                            Comment


                              #15
                              Originally posted by Nick Whiting View Post
                              Correct, the 4.3 preview does not currently include time warping, because of some integration changes we're making to the engine to better enable the functionality. However, if you're really interested, you can get the code directly from Oculus as a patch. However, that patch is likely to change with the official integration of timewarping into main, so please only do that if you're confident you can handle the code merging
                              Do you know if/when the HMDwarp command will be returning to the engine? Because it seems all HMD commands, including hmd sp, no longer work in 4.4

                              Comment

                              Working...
                              X