Getting Started w/ The Unity GPU Profiler for Oculus Quest and Go

Jian ZhangBlog Hero Image
Unity GPU Profiler is a great tool to help developers optimize app’s GPU performance. Now, given that we have even more control of our standalone devices, we can enable Unity’s GPU Profiler on Oculus Quest and Oculus Go thanks to our partners at Unity and Qualcomm.
The feature is available on all Unity versions since 2017.4.30f1 / 2018.4.2f1 / 2019.1.7f1 / 2019.2.0b5 / 2019.3.0a5.
To get started, we recommend that you start by visiting Unity’s profiler overview page⁠. While this article will provide a few quick notes to help you develop for the unique characteristics of our hardware, which can differ from developing traditional PC apps.
Accuracy
Due to profiling overhead, the absolute value of draw call timing is higher than the actual one, which is usually not a big issue on PC hardware. This is especially the case when you have a lot of smaller draws, in turn, we recommend using the number to do relative value comparisons, instead of putting too much attention on the absolute numbers.
Noise
Sometimes, you can see some noise in the profiling result, for example, a very simple piece of geometry can show an abnormally high GPU timing sometimes, which are mostly caused by VrRuntime GPU preemptions (Guardian / TimeWarp etc). When developing for Quest and Go, we recommend that you gather several samples and pick the smaller one if that happened, there are chances the collision between your draw call and TimeWarp can be avoided randomly.
Fairness
Mobile GPUs support dynamic clocking for battery optimization, as a result, GPU performance can be quite different under different clock levels and it will affect profiling results. We suggest you keep an eye on your app’s GPU level to make sure the comparison is apples to apples.
  • To get real time CPU / GPU levels and frequencies, you can run
  • adb logcat -s VrApi

  • You can also lock the CPU / GPU level by our debug setprops. For example:
  • adb shell setprop debug.oculus.gpuLevel 3
    or
  • adb shell setprop debug.oculus.cpuLevel 3
Gear VR
This feature is still not available on Gear VR due to legacy graphic driver issues.
Overall, GPU performance optimization can always be a challenge, but without a good profiling tool, it can be much more difficult. We are happy that the Unity GPU Profiler⁠ now effectively works with our products, guiding our developers to optimize their app more efficiently, while assuring the delivery of an even better VR game/application.
Mobile
Quest
Unity
Did you find this page helpful?
Explore more
Immersive Web SDK 1.0: Build for Quest and Meta VR Glasses with AI-Native Web Tools
Immersive Web SDK 1.0 is out now, with AI-native tools, a scene editor you share with your coding agent, and gaze + pinch for Meta VR Glasses.
All, Apps, Design, Entertainment, Games, Hand tracking, Marketing, Quest, Web VR
Build for Meta VR with v0 by Vercel
The new Meta template for v0 by Vercel takes a prompt to a deployed WebXR scene you can open on a headset. Try it today.
Design, Optimization, Quest, Web VR, WebXR
VR is Expanding. Start Building for Meta VR Glasses Today.
Meta VR Glasses unveiled at Meta Connect 2026, and the v207 SDK are available now. Start building for the next generation of Meta VR today.
All, Apps, Design, Entertainment, Games, Quest, Web VR

Get the latest updates from Meta VR.

Get access to highlights and announcements delivered to your inbox.