GPU performance tuning of "HZB SetupMips" (As seen in GPU Visualizer)

Hi Guys!

So, I did a bunch of digging, it appears this not actually a problem with generating HZB mipmaps, but is actually time spent in the FSlateApplication::DrawWindowAndChildren function leaking into spurious stat counters.

To figure this out, I turned off all the relevant parts for this Issue (HZB, SSAO, SSR), which caused a nearly identical amount of the time in the ClearTranslucentVolumeLighting GPUStat. When this happened, I decided to go to the CPU Profiler to find out what was going on. It was then I noticed a correlation between the CPU stat counter of the Slate drawing and the time of the ClearTranslucentVolumeLighting GPUStat.

The best way to check this is to take a Sequencer Recording of an Actor’s transform for at least 10 seconds, with it moving constantly, then opening the Recording in Sequencer.

The SSequencerObjectTrack::OnPaint causes a very significant performance impact, as it is seriously inefficient, and
renders very large quantities of Slate Elements.

It would be awesome if a few others could verify these findings.

Regards,

Gossy