Huge hit to Editor/Game performance while SteamVR is Running

With 4.9 I switched over from using the Oculus runtime and headset to running SteamVR and the Vive. Since switching I’ve noticed a large hit to my performance when SteamVR is running and my headset is turned on.

Here are my findings and associated workflow:
(note: this is NOT in a default unreal project but the Map I’m profiling is basically empty)

UE4 Editor
**(~120fps) **
Work flow Order:
Start UE4 via Visual Studio
Open Combat Test Map

UE4 Editor + SteamVR running (Headset USB Hub is turned off)
(~110fps)
Work Flow Order:
Make sure Vive Headset is not connected (turn off USB Hub)
Start SteamVR,
Start UE4 via Visual Studio
Open Combat Test Map

UE4 Editor + Vive Headset Connected + Unreal AutoStarted HMD Window (No SteamVR running)
(~120fps)
Work Flow Order:
Turn on Headset hub, let computer recognize new display
Start UE4 via Visual Studio
(Unreal automatically opens/creates the HMD Window)
Open Combat Test Map

UE4 Editor + Vive Headset Connected + SteamVR Running
(~40-60fps)
Work Flow Order:
Turn on Headset hub, let computer recognize new display,
Start SteamVR,
Start UE4 via Visual Studio
Open Combat Test Map

Is anyone else seeing a similar perf hit?

My Specs:
GTX 970
16gb Ram
Intel i7-4790

With the new update I’ve been able to capture the Frame Timings for two cases:

1.) Running the SteamVR Longbow Demo.
2.) Running vanilla Unreal 4.9.1 in VR Preview with a completely empty level

Here are the results:
855c2ec8c51e4005d0ab04e2770b2c33d3004ff0.jpeg

Is this expected? It seems pretty heavy on the GPU for an empty level. Compositor doing that much work?

Well… we found the issue. My cpu fan was being blocked by a loose wire (/sigh). Looks like the CPU was throttling itself to save it from certain death. Here is a screenshot of both the Longbow and the Unreal PIE empty level:

For reference, here are my previous timings:

Note that SteamVR is trying to “race the beam” in figuring out when to actually render frames. This is a highly complex process.
It could be that you’re not keeping up with the desired frame rate, and thus end up at half-frame-rate because it interlocks with the “vsync” of the headset.

If you have AO enabled in your Post Processing **disable **it by setting its intensity to 0 or disabling it in the project settings. There was a regression on it in 4.9 that causes it to cost way more than it should and it is choking out VR performance.