Distribute and grow
Distribute and grow

Developer Tools for Meta Quest

Updated: Dec 17, 2024
When creating apps and experiences for Meta Quest headsets, tools are essential for debugging and optimizing apps that meet user expectations and Meta Horizon Store requirements. This topic contains information on recommended tools when developing apps for Meta Quest headsets.
Before anything else, it is strongly recommended that all developers install Meta Quest Developer Hub (MQDH). MQDH (Windows, macOS) is a one-stop tool for managing headsets, files, downloads, and app distribution, and it also includes the Performance Analyzer, Perfetto, and links to news and knowledge.
Other recommended tools can be broadly split into three categories:
  • Android Tools - In Unreal Engine and OpenXR Mobile development, these are installed with Android Studio when setting up your environment for Meta Quest development. In Unity development, they are installed as a module once Unity is installed. They tend to be foundational tools that developers must use during development.
  • Performance Monitoring and Profiling Tools - These allow developers to inspect various aspects of their app at a deeper level. They provide many metrics and access to low-level data that can be used for performance optimization and troubleshooting very specific issues.
  • Testing and Automation Tools - These are used when testing and debugging apps and to help facilitate automated testing.
The following tables show recommended tools for use during Meta Quest development.

Meta Quest Developer Hub

Meta Quest Developer Hub (Native, Unity, Unreal)
Meta Quest Developer Hub (MQDH) surfaces a collection of frequently used solutions for common tasks, such as capturing screenshots, recording video, casting the headset display to a computer, access to Performance Analyzer and Perfetto, and active notifications for updates. SDKs, tools, and other offerings can be downloaded and updated from MQDH. MQDH also makes it convenient to manage headsets, on-device apps and files, as well as build uploads.

Android tools

ToolDescription
Collect VrApi Logs with Logcat (Native, Unity, Unreal)
Logcat shows OS and app log messages, such as information on performance that can be used to identify performance problem areas and determine crash causes.
Configure Android System Properties (Native, Unity, Unreal)
Describes common Android system-level properties and how to use them for debugging and testing potential changes on a running headset.
Use ADB with Meta Quest Headsets (Native, Unity, Unreal)
Android Debug Bridge (ADB) is a general prerequisite to Meta Quest development that is installed when preparing your environment. It is also required to use many tools in this topic. ADB is used to establish a connection between a computer and a Meta Quest headset. It is used when installing builds and running commands on the headset.

Performance monitoring and profiling tools

The following diagram shows a recommended performance optimization workflow using the tools listed in the following table:
Optimization Workflow
ToolDescription
Get Started with Unreal Insights (Unreal)
Unreal Insights is a profiling and analysis tool that allows you to quickly find bottlenecks, performance spikes, and threading patterns.
Get Started with the Unity Profiler and the Unity Profile Analyzer (Unity)
Unity Profiler is a Unity-only performance profiler for apps. The Unity Profile Analyzer pulls a set of frames captured in the Unity Profiler trace and performs statistical analysis on them, generating info for each function, such as timing info and total call counts across the pulled frames, and the count mean.
Graphics Debugging and Profiling with RenderDoc Meta Fork (Native, Unity, Unreal)
In addition to RenderDoc’s normal graphics debugging capabilities, RenderDoc Meta Fork provides access to low-level GPU profiling data from Meta Quest headsets, including render stage and individual draw call data. For Vulkan apps, API validation and shader stats are also available.
Monitor Performance with OVR Metrics Tool (Native, Unity, Unreal)
OVR Metrics Tool provides a real-time onscreen graph overlay of configurable app and headset performance data, as well as exportable reports on collected metrics. Other features include remote headset management and a toolkit for native and Unity development that allows the integration of developer data into the overlay and CSV reports.
Take Perfetto Traces with MQDH (Native, Unity, Unreal)
Perfetto is an engine-agnostic performance tracing tool with some major advantages over built-in engine profilers, such as the inclusion of a wide view of system processes and additional metrics on the same timeline as the app’s performance profile. It maps functions calling into OVRPlugin to the OS directly and gets insight into various GPU counters and metrics at a high level to better isolate performance issues. It can also generate GPU render stage traces.
Track GPU Memory Info with gpumeminfo (Native, Unity, Unreal)
gpumeminfo tracks GPU memory usage on a process. It provides a more in-depth view of graphics memory than dumpsys meminfo.
Use Performance Analyzer to Monitor Apps from MQDH (Native, Unity, Unreal)
Performance Analyzer is a tool in MQDH that provides easily configurable metrics graphs, a searchable Logcat stream, and the ability to launch Perfetto traces.
Use ovrgpuprofiler for GPU Profiling (Native, Unity, Unreal)
ovrgpuprofiler provides access to real-time GPU pipeline metrics and render stage tracing. It is built to access real-time metrics and GPU profiling data in a convenient and low-friction manner.

Testing and automation tools

ToolDescription
Use Meta Quest Scriptable Testing Services to Enable E2E Testing (Native, Unity, Unreal)
Meta Quest Scriptable Testing services disable certain modal dialogs, auto-sleep, and boundary on Meta Quest headsets so automated testing can be better performed. Additionally, the number of manual steps required to configure a headset for testing, and resetting the headset for repeated testing, can be reduced and often eliminated.
Use Meta XR Simulator to Speed Up Unity OpenXR Development Iteration (Unity, Unreal, Native)
Meta XR Simulator is an OpenXR runtime that enables the simulation of Meta VR headsets and features on the API level. It makes the testing and debugging of apps easier by reducing the need to put on and take off a headset frequently and helps scale automation by simplifying testing environment setup.
Using AutoDriver to Record Inputs (Native, Unity, Unreal)
AutoDriver records headset, controller, and hand tracking inputs, as well as tracking data. This data can be played back so apps can reuse it for automated testing where user input is required.
Using Oculus Debugger for VS Code (Native, Unreal)
Oculus Debugger is a VS Code extension intended for the real-time debugging of Meta Quest apps.
Vulkan Validation Layers (Native, Unity, Unreal)
Vulkan validation layers measure whether a Vulkan app conforms to the Vulkan specification. Keeping track of these is critical, as spec violations can lead to behavior ranging from slightly undesirable to complete rendering corruption.
Did you find this page helpful?
Thumbs up icon
Thumbs down icon