Right now “FrameRenderFinish” is the highest time consumer on my list, but I haven’t been able to find information on what it is (or a comprehensive explanation of other stats for that matter, just some).
It’s certainly not the time it took to render the whole frame, that’s above.
I looked it up in the source code, and it seems to be related to software raytracing? I’m not a programmer, so I can barely read it and this is just a guess.
However, my slowest thread is pretty consistently “Draw”, which as far as I know is mostly on CPU (and it would make sense, my CPU is pretty old, my GPU is pretty new).
When I place the camera somewhere where Draw goes down, the FrameRenderFinish also goes down. When Draw is faster than GPU the value is practically 0. So it’s almost like the opposite of what they said is happening.
I even found the main culprit, it’s shadow cascades on my directional light having to trace a lot of geometry. But what does this all mean in the end?
Based on what you described, it seems that the “Draw” thread is having a significant impact on your overall performance. When the Draw thread is slower, both FrameRenderFinish and Draw slow down as well. This suggests that the Draw thread is having a significant impact on the performance of your game.
The “shadow cascades on my directional light having to trace a lot of geometry” being the main culprit is likely causing the slowdowns in the Draw thread. This would mean that the CPU is struggling to process the amount of geometry required for the shadow cascades, leading to slower performance.
In conclusion, your performance issue seems to be more CPU-bound than GPU-bound, as the Draw thread is mostly CPU-based and the slowdown in performance is related to the amount of geometry the CPU has to process. Having meshes with fewer material elements or using fewer shaders can help improve this.
In my case, FrameRenderFinish was tied to a SceneCapture object with “Capture Every Frame” ON that I left in the scene. Removing that or even just turning the “Capture Every Frame” OFF sent the FrameRenderFinish to 0.
Hope this helps.