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

Don’t know, try it out. Do all the Unity cubes work as valid PhysX colliders?

Do you still have motion blur and stuff like that enabled?

Really there are a lot of things that can cause a slow down, and things that can hugely speed up things.

Just so you know your benchmarks seem broken. Regardless of what I do I get less than 30 FPS and most of the time doesn’t even spawn anything. Tried the 47 and 46 versions.

I also noticed that the initial screen seemed very jumpy as well.

@Arowx:

As others have already pointed out, Unity and Unreal are different engines and with different rendering pipelines. So comparing them for performance wont give you a meaningful result. For instance one engine might perform better with more static meshes while the other could render more skeletal meshes…

Also keep in mind that Unreal by default does a lot of additional processing which are quite heavy (viz: Screen space reflection, Ambient occlusion, Post process effects…). So try disabling all those and then run the test. Also try to make use of instancing which will reduce the draw calls and in turn improve performance.

You should also be careful with the material you apply on the cube. Try to make it as simple as possible. Check the different material options, there are several options in there that affect performance.

I thought the PostProcessing settings would disable them, I’m using the execute console command sg.PostProcessQuality 0 to 3 in the blueprint.

OK I think I might have slipped up and not used the delta time value to set the rate of rotation. Also I’ll slow it down a bit.

What spec is your PC?
Any issues with other demos?

I thought the Quality settings would work for postprocessing I’m using the ones mentioned in the Scalability Reference ->

OK I will see about adding more Quality settings.

The idea is CubeMark will give you an idea of what the engine can throw around on your hardware.

I’m attempting to add Instancing using Add Instance Static Mesh Component, but no cubes are showing up?

I’m new to Unreal, this is a learning experience for me.

Yes they have colliders but are static (they don’t bounce). But I run two tests with and without colliders, the without colliders one is faster. I’ve tried spawning a cube without a collider in Unreal but no difference in performance.

Trying to get Instancing to work!

Cheers

You only add one single InstancedStaticMeshComponent where you manually set the cube as the mesh and then in blueprint you add new cubes with “Add Instance” at the InstancedStaticMeshComponent. So even if there are 3000 cubes you will only have one single InstancedStaticMeshComponent.

Good explanation as it’s not obvious that you need one already in the ViewPort of the blueprint before you can instance more, in the docs they just use the term ‘Template’.

Wow new problem it takes ages to get down to 30fps in this mode in editor (hitting build issues) it got to 14k cubes and was still counting up!

Got a few problems now I’ve got 3 levels and I’ve started to get odd External Reference errors, and things are crashing a lot!!!

Hope to get it a stable and working build with two runnable tests Spawning Cubes and Instancing Cubes.

You can read my old thread
It’s about progress from glitched version to the latest + some tips

Handy tips thanks.

May have a running version (fingers crossed) kept getting external resource errors. Tried lots of things but what appeared to work was re-naming my project folder?! The project was a copy of my 4.6 version so renamed both project folders and it broke a couple of things but it did look as though the projects had gotten tangled!??

Thinking of adding different target FPS’s 30 / 60 / 90 / 120 but it’s getting there!

Does going to the released source and compiling and building the engine help with bugs, as in does Unreal release to source builds with bug fixes before they become preview builds?

Glad to help!
It’s double-edged sword actually. In preview releases/source you get bug fixes earlier, but on top of that you can get new bugs due to implementing new features :smiley: So it’s more for experienced people who now how to handle this so I would not recommend to use preview releases as a weapon vs. bugs.

So I decided to give the latest version another go to see if I could get it to work and I did. Only once though. I think it has something to do with the settings not being set correctly on the menu. Hard to say though. However here’s what I got, not sure you suppose to be able to move. :stuck_out_tongue:

Looking into blackness while the cubes spawned got me to 3449 cubes. Turning around makes my FPS do a back flip haha. The settings I used was a mix of high and medium with full res. Not bad for a 4 year old laptop. :smiley:



Operating System: Windows 7 Home Premium 64-bit (6.1, Build 7601) Service Pack 1 (7601.win7sp1_gdr.150113-1808)
System Manufacturer: Hewlett-Packard
System Model: HP Pavilion dv7 Notebook PC
BIOS: Default System BIOS
Processor: Intel(R) Core(TM) i7 CPU Q 720  @ 1.60GHz (8 CPUs), ~1.6GHz
Memory: 8192MB RAM

Card name: AMD Mobility Radeon HD 5000 Series
Manufacturer: Advanced Micro Devices, Inc.
Chip type: AMD Radeon Graphics Processor (0x68C1)
Display Memory: 4095 MB
Dedicated Memory: 1013 MB
Shared Memory: 3082 MB

Wow that looks like a galactic cluster, can’t zoom on the image so what was your score!

3 yr old laptop it’s an i7 with a 4Gb GPU!

Actually i’m wondering if older cards will get higher scores as Unreal will probably have to reduce the level of effects.

Good call on the controller, new here so just happy to get something working, I will look into locking it down.

Just adding a new software cursor to the WIP version, it’s bigger than the default system one so should be easier to see with all those cubes spinning.

Wait until you try the instancing version, cube tastic!

First time I tried, I forgot to turn off second monitor; This time I shut it down and dedicated second GPU to run PhysX only.
Then it got close to 6k on the 4.7 version, but now something is wrong with the motion blur effect, you’ve done something that makes it distort image too much:

You might have turned down the resolution scale and the post processing quality should affect the blur.

New update the 470 version has now got a locked cameras, selectable FPS targets (10 - 120) and Instancing.

Spent ages looking for how to lock the camera using Blueprint only to find it has a checkbox for moving with the player!

Word of warning the instancing benchmark takes a very long time to settle down to 30fps.

So next up preset resolutions to test at, a combined CubeMark Spawning + Instancing + Paper 2D(?), record previous marks on menu screen and speed up the instancing mark!

Breaking news Unreal CubeMark ‘working’ on Firefox Nightly 64bit :cool:

Don’t change the anti-aliasing settings it just crashes!

So point your 64 bit WebGL browser here and give it a spin http://dl.dropboxusercontent.com/u/19148487/CubeMark/Unreal4.1/CubeMarkUnreal470/CubeMark470.html

It’s a bit wobbly but it works!

Note it does create about 70Mb of data so it might be slow to load.

In instancing mode some of the cubes vanish!??

I get a Spawing CubeMark of 1343 and an instancing one of possibly 3500 then it crashed!

It’s ‘working’ on Chrome 64 bit latest version.

Why do you make 2 individual benchmarks out of this? You only need the instancing version since it looks exactly the same but has a lot better performance. And just increase the “new cubes per frame” speed so it does not take 20 minutes to reach the fps limit :wink:

Nope, everything was on max.

Just had a realisation, I’m benchmarking the ability to create new cubes on top of an existing scene of cubes. :rolleyes:

Maybe I should add a GPU benchmarking mode that adds cubes then next frame checks the fps and adds more to the scene until the scenes frame rate is under the target!

The concept is to combine CubeMarks for Instanced / Spawned / 2D / 3D objects into a total Unreal CubeMark.

Checking it looks like I have managed to lose the camera effects on the Test Levels???

Why benchmarking the bad way of doing something? If you would want to benchmark the CPU utilization you also would not do a delay with a while(time less than x) because that would just be a very bad way of doing a delay.

So I should keep the tests separate as well as providing a GPU test version and totals for people to boast about?