For entry-level VR setups, the primary goal is maintaining a consistent 72Hz or 80Hz refresh rate to avoid motion sickness. Half-Life: Alyx’s automated “Fidelity Level” system often overestimates hardware capabilities, causing sudden frame drops in physics-heavy scenes. By manually configuring the vr_settings.ini, we can disable high-cost post-processing effects and stabilize the rendering resolution, ensuring a smoother journey through City 17.
File Path
To optimize the VR experience, you must edit the VR configuration file located in the game’s settings folder:
\Steam\steamapps\common\Half-Life Alyx\game\hlvr\cfg\vr_settings.ini
Note: If the file is empty or does not exist, you can create it manually. Always ensure you have a backup of your cfg folder before making deep engine changes.
vr_settings.ini Configuration Block
Add or update the following parameters to reduce the load on your CPU and GPU:
[VRSettings]
// Disable dynamic resolution to prevent stutter
vr_fidelity_level_auto=0
vr_fidelity_level=3
[Graphics]
// Optimize shadows and lighting for low-end VRAM
shadow_map_size=1024
sun_shadow_map_size=1024
indirect_lighting_quality=0
character_shadows=0
[Performance]
// Multithreading and memory management
r_texture_stream_max_resolution=1024
r_gpu_mem_limit_mb=4096
r_threaded_particles=1
Technical Breakdown and Performance Analysis
The following settings are critical for optimizing the Source 2 VR pipeline on limited hardware:
| Parameter | Recommended Value | Technical Impact |
vr_fidelity_level_auto | 0 | Disables the game’s automatic resolution scaling, which is the main cause of “blur-to-sharp” stuttering. |
vr_fidelity_level | 3 | Sets a fixed resolution multiplier. “3” is roughly 100% native resolution; lower this to “1” or “2” for even weaker GPUs. |
shadow_map_size | 1024 | Reduces shadow resolution, significantly lowering VRAM usage in outdoor areas. |
character_shadows | 0 | Disables dynamic shadows for NPCs, which saves considerable CPU cycles during combat. |
r_threaded_particles | 1 | Ensures smoke and sparks are handled by multiple CPU cores, preventing hitches during explosions. |
HowTo: Implementing the Entry-Level VR Setup
Follow these steps to stabilize Half-Life: Alyx for your hardware on GameEngineer.net:
- Backup: Duplicate your
cfgfolder before editing. - Launch Options: Right-click Half-Life: Alyx in Steam, go to Properties, and add the following to Launch Options:
-novid -console -vconsole +vr_fidelity_level_auto 0 +vr_fidelity_level 3. - SteamVR Resolution: Open SteamVR settings while the game is running and set “Resolution Per Eye” to Manual (100%). Do not use “Auto” as it will conflict with your
.inisettings. - Save & Read-Only: Save the
vr_settings.inifile and set it to Read-only to prevent Steam from resetting your fidelity overrides. - Spectator Window: Minimize the game window on your desktop monitor. Rendering the game twice (on the headset and the monitor) consumes unnecessary GPU power.
Technical Explanation: Understanding Dynamic Fidelity Desync
Source 2 uses a Fidelity Level system that ranges from 0 to 16. On low-end gear, the engine constantly shifts between these levels (e.g., jumping from level 3 to level 1) to maintain the target refresh rate. This “shifting” triggers a texture reload and resolution buffer resize, causing a visible micro-stutter. By setting vr_fidelity_level_auto=0, we lock the buffer size. This allows the GPU to maintain a steady frametime, as it no longer has to constantly reallocate memory for varying pixel counts, which is vital for preventing the “wobble” effect (reprojection) in VR.