Why is VR performance 3 times as slow 2D mode?

I have a strange performance issue. I have a performance test similar to the official UE guide (Performance Optimization for Environments | Inside Unreal - YouTube), where I iterate through 9 cameras in my scene an record the performance from each for 10 seconds.

I ran the performance test in the editor in 2D, in a build in 2D, and in a build on an HTC Vive with OpenXR. The results are shown in the table below:

Test Version (Resolution) | Median | Mean | Standard Deviation
Editor 2D (2560x1440) | 7.95 ms | 7.61 ms | 9.43 ms
Build 2D (2560x1440) | 8.53 ms | 7.72 ms | 2.77 ms
Build VR (2160x1200) | 22.28 ms | 20.80 ms | 5.66 ms

Why does the editor have better performance than my build version? And why is the VR version almost three times slower than the 2D version and doesn’t even render twice the number of pixels? I could run two 2D versions at the same time and have better performance than the VR version. What am I doing wrong?


Overview of my plane of an ocean planet surface with a 255 km volumetric cloud.

First VR renders usually at 1.5 its native resolution, see this guide on why before changing it.
I would also recommend RenderDoc or its native UE4 internal framecatpture and analysis tools to see what the engine wastes its time on while rendering.
I hope this helps the next person that gets confused like me.

Note that when profiling VR, frame synchronization is handled by the VR runtime. The runtime will always block the application for an additional frame every time it fails to present in time. Your frame time is 22ms, which translates to 45Hz, or half the Vive frame rate. This means it does not show the actual performance, only that it is not meeting the 90Hz target.

To get accurate values, use the SteamVR frame time graphs.

Thank you. You are correct. This guide explains the SteamVR tools to measure the actual perfromance (SteamVR Profiling & Performance | Unreal Engine Documentation).