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