Develop
Develop
Select your platform

Meta Quest Runtime Optimizer

Updated: Feb 17, 2026
This tool is currently in its experimental phase. Meta is actively gathering feedback from users to shape its future.
The Meta Quest Runtime Optimizer helps developers identify and resolve performance bottlenecks in Meta Quest applications. This tool provides real-time analysis and actionable insights to optimize application performance, and runs without additional dependencies.

Requirements

Installation

  1. Download the Meta Quest Runtime Optimizer package from the Unity Asset Store.
  2. In Unity, select Window > Package Manager > + > My Assets and add the Meta Quest Runtime Optimizer package.
Package Manager tarball entrypoint

Setup and configuration

Step 1: Open the Meta Quest Runtime Optimizer

Navigate to Meta > Tools > Runtime Optimizer in Unity.
Runtime Optimizer Entrypoint

Step 2: Enable the Meta Quest Runtime Optimizer

Toggle Runtime Optimizer Enabled on. This updates your project to include all necessary configurations.
Disable this option when submitting your application for release candidate (RC) builds.
Enable toggle for Runtime Optimizer

Step 3: Build your APK

Build your APK in development mode.

Step 4: Verify the APK path

Ensure that your APK’s Executable path looks correct. For example: com.unity.template.vr/com.unity3d.player.UnityPlayerGameActivity

Step 5: Connect the tool

Click Launch to start your application. The tool will automatically connect to your device. Note: If you start the application a different way, connect to the tool by clicking Connect.
You should see the “Connected” status message if it successfully starts.
Connected State

Step 6: Freeze the frame to start the analysis

Click Freeze Frame to freeze the current frame. This allows the tool to pause the current state of the application and a snapshot of the current frame is taken.
Freeze Frame
Once successfully frozen, you should see the Freeze Frame button update to Unpause and the Analyze button will be enabled.
Unpause and Analyze buttons enabled

Using the Meta Quest Runtime Optimizer

Runtime Optimizer Overview
The Runtime Optimizer offers two analysis modes:
  • Bottleneck analysis
  • What if? analysis

1. Bottleneck analysis

This mode parses captured runtime data, highlights potential bottlenecks, and provides suggestions for improvement.
Ensure your headset remains active during the analysis. If the device enters sleep mode during capture, the analysis will be interrupted and you'll need to restart the capture.
Use the dropdown menu and select Bottleneck analysis. Then, click Analyze to start the analysis. Once the analysis is complete, click the capture in the Captured Frames section to view the data in the Analysis section.
Bottleneck Analysis

Analysis sections

  • Insights: Provides a summary of the captured metrics with actionable items for developers to further experiment with and reduce performance bottlenecks.
  • Render Breakdown: Organizes different runtime data (Mesh, Texture, Material) as Unity Entities and ranks their cost. This process integrates several different types of real-time metrics to create actionable suggestions.
The tool also allows developers to add custom rules catered to their specific needs, providing flexibility and customization.

2. What if? analysis

The “What if?” analysis helps you understand the cost of all game objects in your frustum at a high level of accuracy. This is achieved by performing a sweeping A/B experiment, which mimics a flow where developers manually disable an object and rebuild their APK to figure out its impact.
Use the dropdown menu and select What if? analysis then click Analyze to open the Select Game Objects to Test window.
The window displays all game objects in your frustum. You can select multiple game objects to test at once and use Search with keywords to filter the list.
What if? Analysis
Once you’ve selected the game objects you want to test, click Scan Selected Game Objects to begin the analysis. The result will be shown in the Analysis section.
What if? Analysis search results

How it works

  1. When starting the analysis by clicking Freeze Frame, the optimizer freezes the headset to guarantee experiment reproducibility.
  2. Measures the baseline cost of what’s in view.
  3. Iteratively disables all game objects in the frustum while measuring the before and after of a frame’s GPU time.
  4. Ranks all GameObjects by their cost in descending order.
The tool takes measurements over several frames and later averages them. The test takes approximately 200ms per GameObject in your frustum.

Material and shader analysis

Enabling Adreno Offline Compiler
For more advanced usage, download and enable the Qualcomm Adreno Offline Compiler tool. This tool displays detailed material and shader analysis, enabling deeper discovery of graphics bottlenecks.

Known issues

  • OS V78:
    • Very rare kernel panics after What if? analysis
    • Dynamic objects are not supported and do not show up in What if? analysis or Bottleneck analysis
Did you find this page helpful?