There’s a few videos and web pages by Epic but those haven’t helped much. The web pages only contain general information about app. The videos often feature people who are very smart and knowledgeable, but with very thick and hard to understand accents and apparently also suffer from some breathing conditions making them talk and breathe out of their mouths making it harder to watch and understand.
That said, if I click on a performance spike, and I see the resulting Callers and Callees information, and zoom in on the track view to see in more detail, it almost never leads to a point where I can see what the problem is.
I clicked on a spike and it says the Engine Loop / Frame took 65ms, and I see no track or info on the app that tells me why that frame took 65ms. Adding up all the stuff in the Callees list still leaves 44ms unaccounted for. In the track view under UWorld_Tick I see an about 44ms gap that matches what’s missing from the Callee panel, but what’s happening during that gap? Why is that gap there? It doesn’t look like it’s waiting on the GPU or the Render thread either.
On some other spikes (not in the image posted) I see the Frame track say “Waiting for tasks” for a long time. How do I figure out what exactly is it waiting for?
I needed more options in my command line. I ran the game with “-trace=default,assetloadtime,tasks -statnamedevents” and got more info.
The AssetLoadTime channel will enable blueprint and asset names and “-statnamedevents” adds more profiler events from the old stats profiler.
The tasks channel gives you more info when hovering over the “Waiting for Tasks” events.
It should show additional info per task and it will draw colored arrows to the tasks that are being waited on.
That works only for the tasks that are run through the built in tasks system, though, so some waits won’t have additional info from this channel.
2 Likes