debug rendering artifact when paused engine

I have just updated to 5.7 from 5.6 and noticed that some of our debug renderers are showing visual artifacts when the engine is paused. This is also noticeable when using the VisualLogger.

I have narrowed it down to the AntiAliasingMethod being used, using r.AntiAliasingMethod 4 (default, TSR) it shows the artifacts when the engine is paused whereas using r.AntiAliasingMethod 1 (FXAA) the debug sphere renders completely fine, see attached screenshots.

Using the Debug PDI on FDebugRenderSceneProxy::GetDynamicMeshElementsForView fixes it and I was wondering if that is a sensible fix because I am far from a render expert, or if there is a preferred alternative.

Thanks, Alvaro.

[Attachment Removed]

Steps to Reproduce
Use UE_VLOG_WIRESPHERE somewhere in code. Launch VLog, pause engine and select a new item in Visual Logger.

[Attachment Removed]

Hi Alvaro

Thanks for providing the information and repro steps.

I wasn’t able to reproduce the issue in either 5.7 or the latest version on my end.

Would you be able to provide a minimal sample project that reproduces the issue? It’s possible that the issue is influenced by specific project settings or content.

Best regards,

Henry Liu

[Attachment Removed]

Submitted a test project. It is essentially the third person project with a UE_VLOG_WIRESPHERE on the tick of the character at the character position.

[Attachment Removed]

hmm ok that is interesting. Just to confirm, with the engine paused you were scrolling in the VLOG to select different items right?

[Attachment Removed]

I have tried uploading gfx drivers to latest with no luck. I am currently using 5.7.1 with no engine changes, my gfx card is gtx 2070 SUPER.

I have also uploaded a video of the exact repro steps I am following in case I am doing something different to what you were doing. As you can see, with TSR I dont really see the wire sphere when the engine is paused, as soon as I resume it the sphere displays correctly, also changing the antialiasing method fixes it.

[Attachment Removed]

Hi Alvaro,

I also tested using the provided project and wasn’t able to reproduce the issue there either. With TSR enabled and the engine paused, the debug rendering appears correct on my end when using VisualLogger.

[Image Removed]At this point I don’t have a reliable repro locally. If the problem is still occurring for you, it may be graphc config or platform-specific. Additional details such as hardware, driver version, or any local engine modifications might help narrow it down.

Please let me know if you’re able to provide further information or repro steps that demonstrates the issue.

Best regrads,

Henry Liu

[Attachment Removed]

Thank you for the repro video.

I could reproduce the issue on my end in both 5.7 and 5.6.

What you’re seeing is expected with TSR. TSR relies heavily on history, motion vectors, and reprojection. When the engine is paused, motion vectors stop updating but TSR still attempts to resolve using stale history. Which is the reason I failed to reproduce before. Debug primitives (especially those drawn via scene proxies and not part of the main mesh pass) don’t provide valid velocity or history data, so TSR ends up shows up as shimmering or breakup. VisualLogger uses the same debug draw, so it exhibits the same artifacts.

FXAA doesn’t rely on temporal history, which is why switching to r.AntiAliasingMethod 1 makes the issue disappear.

Using the Debug PDI is a sensible fix. The Debug PDI effectively opts those primitives out of temporal processing, which is exactly what you want for debug visualization. Debug geometry generally shouldn’t participate in TSR accumulation anyway. I don’t think there is a “more correct” solution unless Epic adds a dedicated non-temporal debug pass for TSR in the future.

Hope this helps clarify things. Let me know if you want expand it into a bug report suggestion to Epic.

Best regards,

Henry Liu

[Attachment Removed]