Getting Started w/ The Unity GPU Profiler for Oculus Quest and Go
Jian Zhang
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
Meet the Winners of the $1M Meta Horizon Creator Competition: Mobile Genre Showdown
After receiving hundreds of world submissions across 13 countries and several world genres, the results are finally in. Meet the winners of the $1M Mobile Genre Showdown creator competition.
Meta Horizon: New Tools & Incentives for Creators + More Mobile Worlds to Explore
Discover new generative AI tools that are helping creators accelerate the ecosystem and check out the results of our $1 million Meta Horizon mobile creator competition.
Creator Spotlight: How PinataMJ Built Palmfall Point in 24 Hours with GenAI
Learn how longtime creator and Meta Horizon Creator Program member PinataMJ built out his island-themed world Palfall Point in just 24 hours by using GenAI tools in the Worlds desktop editor.