VR display hitches when taking a screenshot

I am currently working on a VR experience that allows the user to take a screenshot. To do this, we use the console command “HighResShot 1” through Blueprint, and use a Matinee fade to white to fake a flash bulb effect.

However, we’ve found that using any screenshot console command causes the engine to momentarily hitch, which causes the VR display (a Vive, in this case) to fade out to the blank, white room that Valve uses as a loading screen for approximately half a second. Does anyone know why this happens, or a way to fix it?

Note: we’re working with good graphics hardware (Titan graphics card), and have observed this issue on versions 4.10.2, 4.10.3, and 4.10.4

So it turns out that Unreal’s screenshot functionality is not asynchronous, so it temporarily stops sending new frames to the compositor which triggers its fade back to empty space logic. Via Epic, “there are some ways you could hack around it by pumping something to the Vive from another thread, but it would take some engineering. Basically, you’d have to manually send textures to the compositor while the screenshot is being saved off, and that would let you not have the compositor fade in.”

so what can I do?

Depending on how high your resolution needs to be, could you spawn a camera at the headset position, render it out to a 4k texture?