As the title says,
Frame: 18ms
Game: 11ms
Draw: 15ms
GPU: 15ms
I thought Frame was supposed to reflect the highest of the other three. What does it mean when Frame is higher than the other three?
As the title says,
Frame: 18ms
Game: 11ms
Draw: 15ms
GPU: 15ms
I thought Frame was supposed to reflect the highest of the other three. What does it mean when Frame is higher than the other three?
I notice that the higher the Draw goes, the higher that padding goes Frame. My framerate target being 60fps, 15ms is pretty close. With a draw of 16ms, Frame moves up to 19-20ms.
I had a theory that āFrameā meant the results of the Render thread but the numbers donāt seem to match either when I look into it using āstat startfile/stat stopfileā. Itās possible the stat commands add a bit to the render thread throwing it off and that extra amount is not recorded.
Definitely not the render thread. I got an instance of Frame being 24ms but the render thread was at 18ms. Thatās a pretty big gap. Not sure whatās the holdup when the Game, Draw, and GPU are all under the Frame time by several milliseconds.
Just a wild guess: You are probably running in the editor, and Slate is probably having fun with your timings.
with āprofilegpuā you should see an estimate on how long the SlateUI itself took, and i think its not counted into Draw/GPU time.
Try starting your game as standalone without the editor open and see what timings are then.
Not running it in editor, but Iāll look into how much Slate takes. I thought it was a CPU issue so I didnāt look at profilegpu. Iāll try that next, thanks.
I donāt think itās Slate. With only āstat unitā, slate on the GPU is small (0.1ms) and on the CPU itās about 0.6ms. With something like āstat scenerenderingā slate can go up 10ms, but thatās not what Iām doing. Doesnāt look like Slate alone accounts for the 3ms Iām losing somehow. This is one of those Heisenbugs where observing it changes its behavior. āstat startfileā, āstat unitā, etc will affect the very values that they are trying to calculate.
I saw another case where Frame was 5ms higher than any other value. If someone knew if the number is just artificially high and related to having āstat unitā on, thatād be great.
Itās possible āFrameā reflects āstat SceneRenderingā but itās hard to say because turning on SceneRendering makes the Frame shoot up > 10ms. If someone could confirm what āFrameā reflects, that would be great.
I might report this as a documentation bug. Why add stats like āFrameā and āDrawā and not explain what they mean? Draw moves up and down depending on occlusion, transparency layers, how many meshes are rendered, how many dynamic shadows are being generated, and other miscellaneous factors. It would be good to know exactly what is included in it. āFrameā is completely unexplained. The only pseudo-explanation I can find is in this document: How to improve game thread CPU performance in Unreal Engine - Unreal Engine
This was a hardware specific issue related to VR. If youāre near the framerate threshold of 60fps you might miss the window for rendering the new frame and instead the system will reproject the old data. This reprojection can add several ms to the process, depending on how badly you are missing frame. The fact the other stats displayed under 60fps but still getting this reprojection penalty was a symptom of spikes in fps that average out in the display.