This page has been translated automatically.
Video Tutorials
Interface
Essentials
Advanced
How To
Basics
Rendering
Professional (SIM)
UnigineEditor
Interface Overview
Assets Workflow
Version Control
Settings and Preferences
Working With Projects
Adjusting Node Parameters
Setting Up Materials
Setting Up Properties
Lighting
Sandworm
Using Editor Tools for Specific Tasks
Extending Editor Functionality
Built-in Node Types
Nodes
Objects
Effects
Decals
Light Sources
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
Programming
Fundamentals
Setting Up Development Environment
Usage Examples
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
Materials and Shaders
Rebuilding the Engine Tools
GUI
Double Precision Coordinates
API Reference
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
VR-Related Classes
Content Creation
Content Optimization
Materials
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials

Configuring SteamVR on Linux for Best Experience

This article contains the recommendations for SteamVR settings on Linux for a better performance of UNIGINE-based VR applications.

Checking Default Settings#

  1. Launch SteamVR.

  2. Enable Advanced Settings.

  3. Open SteamVR Settings and make sure that no scaling is applied to resolution:

    Settings -> General -> Render Resolution -> Resolution Per Eye = 100%

  4. Run the UNIGINE-based application in VR.

  5. Open the application settings in SteamVR and make sure that no scaling is applied to resolution and Legacy Reprojection is disabled:

    Settings -> Video -> PER-APPLICATION VIDEO SETTINGS

Enabling Asynchronous Reprojection#

Async reprojection helps stabilize the frame rate. Even if the engine reports only 45 FPS in the application, the headset will still display 90 FPS thanks to reprojection. However, if the application drops to 30 FPS, the headset will display 60 FPS.

Linux may fail to apply asynchronous reprojection even if the Legacy Reprojection Mode is disabled (Use Legacy Reprojection Mode = Off). To enable asynchronous reprojection, modify the file steamvr.vrsettings by adding "enableLinuxVulkanAsync" : true in two blocks:

1. In steamvr section:
  1. Close the SteamVR application.
  2. Open the file steamvr.vrsettings. The relative path to the file is: ~/.steam/steam/config/steamvr.vrsettings.
  3. In this file find the steamvr section and add the following:

    Source code (XML)
    "steamvr" : {
    		...
    		"enableLinuxVulkanAsync" : true,
    		...
    	}
  4. Save steamvr.vrsettings.
2. In UNIGINE-based application section:
  1. Launch the SteamVR application.
  2. Enable Advanced Settings.
  3. Run the UNIGINE-based application in VR.
  4. Open the application settings (Settings -> Video -> PER-APPLICATION VIDEO SETTINGS).
  5. Change any application setting. For example, you can move the Custom Resolution Multiplier toggle. This action automatically creates the application section in steamvr.vrsettings.

    Notice
    After restarting the UNIGINE application remember to reset the modified setting.
  6. Close the SteamVR application.
  7. Open the file steamvr.vrsettings.
  8. In this file find the section with the name of your application and add the following line:

    Source code (XML)
    "system.generated.APP_NAME.exe" : {
    		...
    		"enableLinuxVulkanAsync" : true,
    		...
    	}
  9. Save steamvr.vrsettings.

Monitor Reprojection Status#

You can verify that reprojection is active by using SteamVR's built-in frame timing tools: Settings -> Developer -> Advanced Frame Timing. A graph overlay will appear showing frame timings.

Look at the GPU graph (bottom part): if you see red spikes or a red line, that indicates reprojection is active:

No red indicators mean that reprojection is not working:

You can also check the file ~/.steam/steam/logs/vrcompositor.txt for the content that should look approximately like this:

Output
Tue May 13 2025 12:12:52.530 [Info] - Lost pipe connection from vr219_x64 (16216)
Tue May 13 2025 12:12:52.530 [Info] - ######################################################################
Tue May 13 2025 12:12:52.530 [Info] - Cumulative stats for pid: 16216
Tue May 13 2025 12:12:52.530 [Info] - Total..................241834 presents.  258 dropped. 57287 reprojected
Tue May 13 2025 12:12:52.530 [Info] - Startup................    73 presents.    0 dropped.   45 reprojected
Tue May 13 2025 12:12:52.530 [Info] - Loading...  0 total....     0 presents.    0 dropped.    0 reprojected
Tue May 13 2025 12:12:52.530 [Info] - Timed out.  0 total.... 26259 presents.   30 dropped. 3811 reprojected
Tue May 13 2025 12:12:52.530 [Info] - Compositor Time........CPU: 0.193ms / GPU: 0.560ms
Tue May 13 2025 12:12:52.530 [Info] - Game Info..............FPS Average Target 90  ApplicationTime CPU: 6.475ms / GPU: 10.412ms
Notice
Unfortunately, on some Linux distributions (such as Astra 1.8), there's a bug in SteamVR where it doesn't log the number of reprojected frames, even though the Advanced Frame Timing overlay clearly shows that reprojection is working.

The information on this page is valid for UNIGINE 2.20 SDK.

Last update: 2025-05-19
Build: ()