Auto Viewport Scale — Adaptive VR Resolution​

Keep your VR smooth, even when your scenes get heavy.

Auto Viewport Scale is a lightweight Session Plugin for Virt-A-Mate that automatically adjusts VR rendering resolution based on performance.

When your FPS drops, the plugin gradually reduces the rendering scale to ease GPU load. When performance improves, it carefully increases the scale again to restore image quality.

The goal is simple: maintain your desired frame rate while preserving as much visual detail as possible.

Unlike changing the standard render resolution setting, the plugin uses Unity's XRSettings.renderViewportScale to make small, smooth adjustments without repeatedly recreating the VR eye textures.

Features​

  • Automatic adaptive resolution — dynamically responds to FPS changes.
  • Smooth scaling — small resolution adjustments that are usually barely noticeable.
  • Configurable FPS target — choose the frame rate you want to maintain.
  • Adjustable resolution range — set minimum and maximum viewport scales.
  • Response presets — Smooth, Balanced, Fast and fully customizable settings.
  • Intelligent recovery — cautiously tests higher resolutions and rolls back when performance is insufficient.
  • UI protection — pauses adaptation while using VaM menus, Atom controls or BrowserAssist.
  • UI readability — prevents the viewport scale from becoming too low while interacting with protected menus.
  • Scene loading protection — suspends resolution changes during detected scene and resource loading, with an adjustable cooldown.
  • Live diagnostics — monitor FPS, viewport scale, controller status and recent actions.
  • Restore original scale — stop the controller and return to the initial viewport scale.
No additional plugins are required.

Getting Started​

  1. Install the package and add Auto Viewport Scale as a Session Plugin.
  2. Open the plugin interface.
  3. Click AUTO viewport resolution to enable automatic scaling.
  4. Set your desired Target FPS, Minimum viewport scale and Maximum viewport scale.
  5. Choose a response preset if you want to change how quickly the controller reacts.
That's it! The plugin will automatically adjust the rendering scale as performance changes.

Recommended Starting Settings​

The default configuration was developed and tested with a 90 Hz VR setup using spacewarp:

  • Target FPS: 45
  • Reduce below FPS: 42
  • Minimum viewport scale: 0.50
  • Maximum viewport scale: 1.00
  • Response preset: Balanced
These settings are only a starting point. Experiment to find what works best with your headset, GPU and preferred frame rate.

Settings​

General

Enable or disable automatic resolution, configure the viewport scale range and FPS targets, and view live performance statistics.

Presets

Choose between Smooth, Balanced and Fast response profiles, or customize the sampling intervals, resolution steps and recovery timings.

Protection

Configure protection for VaM's main UI, Atom UI, BrowserAssist and scene loading. You can also adjust the minimum UI scale and recovery delays.

Compatibility​

Tested and working:

  • Virt-A-Mate 1.22.0.13
  • Meta Quest 3
  • Virtual Desktop, running VaM without SteamVR
  • NVIDIA GeForce RTX 3060 12 GB
SteamVR is currently unsupported.

During testing, viewport scale changes were detected, but they did not provide the expected FPS improvement during active scene playback. SteamVR users should not expect the plugin to work as intended.

Desktop Mode: The plugin loads without errors, but adaptive resolution requires an active VR device and does not optimize ordinary desktop rendering.

Other VR configurations have not yet been verified. Community feedback is welcome!

Known Issues and Limitations​

Some effects that depend on screen-space rendering may not work correctly when the viewport scale changes.

Known compatibility problems include:

  • Bloom: May produce visual artifacts.
  • UncleBurrito DLSS: Not recommended for simultaneous use with adaptive viewport scaling.
  • TiSeb Colortone / TonemapOnly.unity: Can cause visible image cropping or an incorrectly scaled view.
Additional notes:

  • The plugin is designed primarily to reduce GPU rendering load. It cannot resolve FPS limitations caused by CPU-heavy physics or other non-rendering bottlenecks.
  • Scene loading protection relies on VaM's loading signals and may not detect every background operation.
  • This plugin does not perform upscaling, frame generation or supersampling above the original resolution.
  • Avoid running multiple plugins that control XRSettings.renderViewportScale simultaneously.

About This Release​

This is the first public beta release of Auto Viewport Scale.

The plugin has been tested extensively on the author's VR setup, but compatibility with other systems is still being explored.

If you encounter a problem, please share your headset, VR runtime, GPU, VaM version and a description of the issue.

Feedback and suggestions are appreciated!

Created by Vumbrix.
Images and attachments
  • Live Performance Monitoring.jpg
    Live Performance Monitoring.jpg
    158.7 KB · Views: 0
  • Response Presets.png
    Response Presets.png
    99 KB · Views: 0
  • UI & Loading Protection.png
    UI & Loading Protection.png
    93.9 KB · Views: 0
React to this content...

Share this resource

Back
Top Bottom