How do I actually use Unreal Insights to efficiently find blueprints and functions that are slowing down my game thread?

Zarrar2802
Fri, 15 Dec 2023 18:14:16 +0000
Programming & Scripting

Right, so at this point I have gone through several hours long videos on Unreal Insights from Epic and other Youtubers and I just can’t seem to be able to use Unreal Insights properly.

I use RenderDoc for GPU profiling and it’s so easy to locate EXACTLY the blueprint/function/material/texture/pixel that’s causing latency. The GPU Visualiser also helped me alot in profiling the GPU.

But for CPU profiling, I haven’t been able to find a tool that is similar in simplicity. I have been trying to learn Unreal Insights to profile my CPU game thread but it’s so ■■■■ complex. I’ve gone through multiple hours long videos and they all seem to be showcasing its features rather than showing me how to locate which function on the game thread is causing a delay.

I’m trying to use the City Sample Crowds pack in a marketplace crowd spawning system and I know the City Sample is too heavy for game development, that’s why I chose it so I can learn CPU profiling.

I spawn my vehicle pawn (80-90 fps, game thread 11.02ms yay)

I go towards the crowd spawner, it spawns some characters from the very heavy City Sample Crowds pack (~40 fps hmm)

I go even further into the crowd and have more people spawned (~20-30 fps, game thread 34.26ms boo)

So I go to my Editor Preferences, Standalone launch parameters and put in the CPU Profile Trace parameters “-cpuprofilertrace -loadtimetrace -trace=default,memory,metadata,assetmetadata”

And I launch Unreal Insights and my game in a standalone instance. Unreal Insights starts collecting data, I close all other tracks except Game Thread and I immediately see where the issues are.

This function takes 15 seconds when loading the crowd characters for the first time. (See I even learned to use Trace Bookmarks!)

Sometime during the game where my FPS hit a low of 13, I focused on that frame and all I see is this jumble of lots of events

That’s as far as I understood, afterwards, I just don’t know how to locate these functions, it just has generic names on everything like Function, Blueprint, ComponentTick, etc.

How do I actually profile my game thread? Is there any simpler method so that I can identify my bottlenecking functions, fix them and get on with my development? I’ve been stuck here for the past 3 days

10 posts - 4 participants