Using MoviePlayer to cover hitches when changing Device Profiles?

Hi there,

Our title makes use of custom Device Profiles for purposes of configuring and applying dedicated “Performance” and “Fidelity” modes on select console platforms. We also use custom profiles for when the title has multiple local players, again for performance-related reasons.

We are experiencing some hitching when we switch device profiles, as outlined here:

[Content removed]

In order to counteract this, we had the idea of using the Movie Player so that we could show some Slate UI animation whilst the game thread is occupied. We have implemented a prototype - essentially a tweaked copy of FStreamingPauseRenderingModule - which based on some preliminary testing does appear to work (we see the throbber widget animating during this time, and no signs of subsequent stability issues, which is initially encouraging).

One slight drawback is that the frame rendered into the background view texture does not contain any Slate rendering, so we get some visual discontinuity when our Movie Player is active as any UI “pops off” during this time.

Can you provide any advice whether rendering the UI into the background texture is going to be feasible, and if so, how we might go about that?

[Attachment Removed]

Hi,

You might be able to leverage FWidgetRenderer here to cache a snapshot of your UI and composite it over the background texture you’re using. We use FWidgetRenderer to draw widgets to a render target, for things like Retainer Boxes and Widget Components, but it’s generalized enough that it should let you provide your own render target and push the root widget of your hierarchy to it. It sounds like just a snapshot should be fine here since you’re going to be displaying it under a loading screen and not actually interacting with it, so I’d recommend taking a look at that and seeing if it could meet your needs.

Best,

Cody

[Attachment Removed]

Thanks Cody, that’s helpful, We shall give that a try!

[Attachment Removed]