How to Know Whether Your CPU or GPU is the Bottleneck for VR

If you know whether your CPU or GPU is the performance bottleneck, you can diagnose problems or plan your next PC upgrade accordingly. For developers, you need to know where more optimization is required. This guide will show you how to use free tools to check.

Monitoring Tools

Windows Resource Monitor and TechPowerUp GPU-Z are two free tools for monitoring your CPU and GPU resources, respectively (both are free).

skitch
Running Resource Monitor

  1. Press CTRL+ALT+DELETE and then click “Task Manager”
  2. Or press WINDOWS+S and search for “Task Manager”
  3. Click on the “Performance” tab
  4. Click on “Open Resource Monitor”
  5. Click on the “CPU” tab
  6. Resize the window so you can see all your CPU cores (HyperThreading will double the number of physical cores)

Running GPU-Z

  1. Press WINDOWS+S and search for “gpu-z”
  2. Click the “Sensors” tab

skitch
Note that while running these programs does use some system resources, it’s negligible. Typically for VR games, your CPU usage will be highest on a single CPU core so just watch for the one with the highest neon “mountain”. It’s perfectly normal for the mountain to shift CPU cores. Your GPU usage will likely not go above 50-60% most of the time–this is also normal. To ensure low latency, the HMD software sometimes limits the GPU utilization. What you’re looking for is a CPU core in Resource Monitor that is locked at 95%+ or a “GPU Load” in GPU-Z that is locked at 95%+. Either of these would indicate that your hitting a bottleneck.

Direct Mode, Extended Mode, and Development

Monitoring is easiest in Direct Mode. Run the demo, turn on mirroring using “hmd mirror on” if necessary, and manually move your HMD around with your hands while watching the resource usage. You may want to go to a “hotspot” in the level (somewhere with a lot of objects, fancy lighting or effects) to get a good reading. In Extended Mode, you’ll want to use Open Broadcaster Software (OBS, free) so you can see on your monitor what’s going on in your HMD. Otherwise, the process is the same. In development in either Unity3D (Unity) or Unreal Engine (UE4), you can use the same tools and process but it’s recommended that you minimize or close your editor window(s) as those can hog resources as well.

skitch

For UE4, you can use the “stat unit” command to look at your high-level performance breakdown whether in VR or not. If you look at Game (CPU), Draw (CPU), and GPU. If Game or Draw (render) threads is highest, then you’re CPU-bound. Otherwise, it’s your GPU. So next time your VR experience is judder, check for a bottleneck. You may need to close those other browser windows, disable HyperThreading, or perhaps even upgrade your PC.

Posted in All.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s