Suggestions on improving physics performance (Overlaps/FetchResults)

We’re currently working on optimizing our game towards that all-important 90 fps. With the current state of our game, a significant portion of the frame time is spent in physics. The biggest culprits being UpdateOverlaps, GeomOverlapMultiple, and FetchAndStart Time.

We’ve already made a pass to reduce the collision channels to the bare minimum, but it’s not enough. Does anyone have any suggestions on ways to improve this further?

Going to be captain obvious here but have you tried disabling the generate overlap events flag on actors that do not need it? How much stuff are you ticking (it might be engine side and this question irrelevant)?

This seems weird, as I am wrestling with completely different problems for hitting 90 and have messed around with an good amount of destructibles which, as far as I remember generate overlap events by default. What are the CPU’s and clocks the machines are running?

To be honest I have been mostly GPU bound until this time and have not really messed with CPU profiling that much.

The hardware we’re targeting is the minspec PC for the Rift. IIRC, it’s 8GB Ram, i5, and a 970.

The generate overlaps flag doesn’t help, but thanks for the suggestion.

For your problem, make sure you set all the render settings detailed here:
http://rowvr.co/2014/12/25/how-to-make-vr-games-with-unreal-engine-4-ue4/

Other than that, make sure that you’re not using dynamic lighting and that you’ve built lighting before running your performance tests. Hopefully that will help you.

Hmm, sorry, figured it would be like that.

Thanks for the link. I am a bit of a crazy duck when it comes to lighting (I do bake as much as possible) and quality so I might not adhere to the regular recommendations for the Rift. The settings outlined in the talk are over a year old now, which might make some of them irrelevant. I will most likely go over them one by one to see what works for me and what does not. I might end up writing something up when I have reached the both the quality and performance required, later of which is kinda thereish. As it is indeed very good advice to keep your game running at the required framerate during development and not leave optimizations until the end.

The settings are definitely still up to date. I spoke with Nick recently about it as we were trying to sort out a Vive build just before Christmas. Even on a 980ti, the default empty project does not run at 90 on the Vive.

Interesting considering both of them have the same res and refresh rate. Can’t really think that the FoV difference affects it that much. Though I have made it a habit to disable the default culprits beforehand. Disable motion blur and turn the screen percentage down to something like 110 and go on from there if needed.

Will keep this in mind!

And again sorry for not being more help with the actual issue of yours.

Only do overlaps when you absolutely have too. Reduce the tick frequency of components or actors that do them in updates. Simplify the extents to sphere’s when possible. Its hard to give more advice without more information.

so I have a radar that uses overlaps to find the actors and it’s causing lag.

If we can’t use overlaps what can we use