Announcement

Collapse
No announcement yet.

OK Newbie I've built a Cube based benchmark and been disappointed with performance!

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

    OK Newbie I've built a Cube based benchmark and been disappointed with performance!

    Hi, Here is a screenshot of my benchmark

    Click image for larger version

Name:	CubeMarkUnreal0.png
Views:	2
Size:	430.8 KB
ID:	1144646

    You can download the benchmark here http://arowx.itch.io/unity-cube-mark

    That's right Unreal on my PC only managed 534.0 cubes with a target FPS of 30fps, OK it looks great but!

    The benchmark, rotates a cube then while the FPS is above the target it adds another child cube within a random spherical distance from the root cube.

    This is my first attempt with Unreal of a simple project and I'm hoping to obtain some advice on how to improve the performance of this benchmark.

    I have a Unity based version of this benchmark and it can spin about 5,000 cubes with colliders on my PC. Now Unreal has PBR but I'm sure with your help and advice I will be able to improve on this.

    So what can I do to this default project using blueprint to improve performance?

    #2
    Well it's all apples and oranges. There is a lot you can do to improve performance, it just depends on how good you want things to look. I don't think you can (easily) come up with a baseline comparison between engines, unless you disable everything but simple geometry rendering. But then that's hardly representative of the engine's capabilities. Ultimately what matters is how fast the engines are at rendering the difficult stuff.

    Comment


      #3
      For engine comparison I thought that if I used the same basic model, textures, camera and algorithm then I would obtain a standard baseline for both engines.

      As all I am measuring is how many textured cubes Unreal and Unity can keep spinning at a given FPS or the engines CubeMark.

      In the Unity version I run 3 tests, cubes with colliders, cubes without and quads then combine the number of cubes/quads into a CubeMark. And you can test the CubeMark at 30 or 60fps.

      The idea was to give developers an insight into how many simple objects the game engine can move at a given frame rate.

      Also I used Unity's Quality settings so people could see the difference between settings.

      So does Unreal have a set of preset Quality settings?

      My plan is to have a Unreal version of CubeMark that is comparable to the Unity version.
      Last edited by Arowx; 02-22-2015, 01:18 PM.

      Comment


        #4
        OK Update the previous build was made with Unreal 4.1, I have upgraded to 4.6.1 and TADA doubled my Unreal Cube Mark now 1243.0 cubes @ 30fps on my PC.

        Click image for larger version

Name:	CubeMarkUnreal461a.png
Views:	1
Size:	690.2 KB
ID:	1066953
        Last edited by Arowx; 02-22-2015, 10:55 PM.

        Comment


          #5
          There's some graphical effects that UE4 has on by default that Unity doesn't, like Ambient Occlusion, Screen Space Reflections, stuff like that. That all slows down performance noticeably. Also, for things like cubes, you would want to batch them, which means that it would dynamically combine the cubes into a single object, that would reduce the number of draw calls and improve performance. In UE4 you have to do that manually, Unity has an automatic option for that, but it also has a polygon limit on how many things can be batched. For UE4 for instance, you could thousands of grass planes that are batched together and run very smoothly.

          Comment


            #6
            Hello Arowx!
            What are you trying to accomplish is a little bit... Impossible.
            The point of benchmarks is the running SAME operations on different hardware to understand how they are handle them. But you're actually giving different tasks to different engines and then comparing results, which is complete nonsense. UE4 and Unity Pro are complex engines and difference between seemingly to you same operations is incomparable. You can't run different tasks on different software with different rendering settings and then compare it, it is just wrong. You can turn off all AAA graphic features of UE4 and lower settings, change logic and etc and run "benchmark" extremely fast, but again - what the point?

            Simple example of my old experiments:
            My GPU could not handle this amount of hexagons with dynamic materials(Bright red color - dying gpu and 10 fps)

            Then I tinkered some stuff and achieved this

            And then this with even higher fps
            Last edited by zeOrb; 02-22-2015, 06:49 PM.
            SuperGrid: Marketplace Page | Feedback Thread | Demo | Website
            Level design and prototyping for newbies

            Comment


              #7
              The point is to get a basic idea of what the game engine can do at a given frame rate. Think of it as a basic heuristic or rule of thumb test.

              And I would like to include setting for Quality that affect speed, then developers using Unreal can get an idea of the performance impacts on their hardware of the settings.

              But it's just a simple idea for a simple test.

              Comment


                #8
                How did you manage to go from a few hexes to so many at a high FPS and do you have any tutorials?
                Last edited by Arowx; 02-23-2015, 12:14 PM.

                Comment


                  #9
                  OK I'm going to add quality settings based on the Scalability Reference -> https://docs.unrealengine.com/latest...nce/index.html

                  Is this a good starting point for basic Unreal game/benchmark quality settings?

                  Comment


                    #10
                    Click image for larger version

Name:	CubeMarkUnreal461b.png
Views:	2
Size:	377.9 KB
ID:	1067027

                    OK that's in the build size had doubled and it seems to be from the engine binaries, is it debug info???

                    And what is the ICU binaries folder as it's really big with lots of dlls?

                    Now I've only been using the rather nice blueprints system but how do I now:
                    1. Get system information - e.g. CPU, GPU, OS, Memory, GPU Memory specs, Unreal Version
                    2. Store data between levels and runs
                    3. Get available resolutions ideally in blueprints

                    I'll hunt around for these on my own but pointers would be nice.

                    Odd thing though even with the resolution scale set to really low 10% the CubeMark on my machine does not go up?
                    Last edited by Arowx; 02-24-2015, 12:58 AM.

                    Comment


                      #11
                      Funny; I've been running a (playable level) scene with more than 4 million polys on average 80~110fps in-editor.
                      Of course it runs even much more smoother on standalone build.
                      I would never be able to do that in Unity even without all the fancy Dx11 PBR effects UE4 gives.

                      If your hardware is not good to run Dx11 games that may be the problem.
                      | Finite State Machine | Savior | USQLite | Object-Pool | Sound-Occlusion | Property Transfer | Magic Nodes | MORE |

                      Comment


                        #12
                        Originally posted by BrUnO XaVIeR View Post
                        Funny; I've been running a (playable level) scene with more than 4 million polys on average 80~110fps in-editor.
                        Of course it runs even much more smoother on standalone build.
                        I would never be able to do that in Unity even without all the fancy Dx11 PBR effects UE4 gives.

                        If your hardware is not good to run Dx11 games that may be the problem.
                        Could you try the benchmark to see what cubeMark your hardware gets and to test if it's just my hardware not working well with Unreal 4.6.1?

                        http://arowx.itch.io/unity-cube-mark

                        The latest build is postfixed 461.zip but comes in at a staggering 100+ Mb zipped, previous 4.6.1 build zipped to 47 Mb and the original 4.1 version was only 28 Mb zipped.

                        Oh and what system specs?

                        My PC -> Windows 8.1, CPU AMD FX8320, 16 GB RAM, GPU AMD 7900 series 3GB RAM.
                        Last edited by Arowx; 02-24-2015, 11:12 AM.

                        Comment


                          #13
                          Got little more than 2100 cubes on this test.
                          The bottleneck is obviously PhysX and whatever code you're using to manipulate the cubes.

                          i7 4960X 3.60GHz, 32GB, Gtx 780.
                          | Finite State Machine | Savior | USQLite | Object-Pool | Sound-Occlusion | Property Transfer | Magic Nodes | MORE |

                          Comment


                            #14
                            Originally posted by BrUnO XaVIeR View Post
                            Got little more than 2100 cubes on this test.
                            The bottleneck is obviously PhysX and whatever code you're using to manipulate the cubes.

                            i7 4960X 3.60GHz, 32GB, Gtx 780.
                            I hope not it's just a simple blueprint rotation on the root cube, all new cubes are added as children.

                            I will be adding another test with a cube without colliders so hopefully that will test to see if it is PhysX.

                            Good news got the 4.7 preview and it upped my PC's Unreal CubeMark above the 2k mark.

                            But what's with Unreal including all these third party binaries when I'm not using them!

                            It pushes the build unzipped to over 200Mb.

                            And it looks like they've added a web browser framework and internationalisation framework (ICU) plus APEX (Cloth Physics?).

                            I've looked through the Build Config Settings and I can't see options for removing these modules?!

                            Comment


                              #15
                              Do you use instances for the cubes?

                              My PC is not really better than yours, but I get 1820 Cubes.

                              AMD Phenom II X6 1090T, AMD Radeon HD 7850, 16GB RAM @1333Mhz
                              Last edited by John Alcatraz; 02-24-2015, 02:21 PM.
                              Easy to use UMG Mini Map on the UE4 Marketplace.
                              Forum thread: https://forums.unrealengine.com/show...-Plug-and-Play

                              Comment

                              Working...
                              X