iVRy Driver for SteamVR

iVRy Driver for SteamVR

Beta Test - 1.1.9.7 Driver 1.1.9.6 VisionOS Client - Maxed Out Settings Test
Wanted to test the upper bounds first

System Hardware
HMD: VisionPro M2
Controllers: PSVR2 Sense Controllers
CPU: Intel Ultra 9 285K
GPU: NVIDIA GeForce RTX 5090 32 GB on PCIE 5.0x16
RAM: 48GB DDR5-7200 CL34
Drive: Gen5 M.2 SSD on PCIE 5.0x4
Network: ASUS GT-98BE with 5GB ethernet connection to PC
HMD connection: Wi-Fi 6, 5 Ghz, 80 MHz channel width, set channel. Low interference environment.

iVry Settings
Encoder: H.265
Output Resolution: 3992x3490
Compositor Resolution: 5644x4931
Framerate: 90 Hz
Video Bitrate: 200 Mbps
Adaptable Bitrate: disabled
Fixed Foveated Rendering: disabled

SteamVR Settings
Motion Smoothing: Off
Render Resolution: 100% (3992x3490)
Advanced Supersampling Filtering: Off
Legacy Reproduction Mode: Off

Applications / Games
Half-Life: Alyx
Graphics Settings: High

Performance Data
HL:A
Play duration: 12 minutes

iVry Settings Framerate: Min 44 Hz - Max 90 Hz
iVry Settings Latency: Max 94 ms - Min 53 ms
iVry Settings Tracking: Min 45 Hz - Max 90 Hz
iVry Settings Throughput: Max 24 MB/s - Min 22.5 MB/s
iVry Settings Bandwidth: Min 62.5 MB/s - Max 67.1 MB/s
iVry Settings Bandwidth Latency: Min 4 ms - Max 5 ms
Note: Min / Max are not exact peak and valleys. They are the min/max values obtained from 5 tests performed over the course of 10 minutes. Only one test out of 5 showed the 45 Hz values. I would say it happened about 5-10% of the time.

fpsVR Avg Framerate: 89.8 fps
fpsVR GPU Frametime Median: 5.2 ms
fpsVR GPU Frametime 99th percentile: 8.2 ms
fpsVR GPU Frametime 99.9th percentile: 9.1 ms
fpsVR GPU Frametime < 11.1 ms: 99.998%
fpsVR CPU Frametime Median: 1.3 ms
fpsVR CPU Frametime 99th percentile: 2.4 ms
fpsVR CPU Frametime 99.9th percentile: 2.9 ms
fpsVR CPU Frametime < 11.1 ms: 99.986%

Comments / Issues
* Graphic quality is excellent
* Only iVry ever reports halved frame rates of ~ 45 Hz. fpsVR, OVR Toolkit, and SteamVR always report ~ 90 fps. fpsVR shows no re-projection value.
* When iVry reports 45 Hz, there is heavy stuttering in-game.
* It happens in both SteamVR Home and HL:A.
* At these max settings, even when iVry reports ~ 90 Hz and ~ 60-70 ms latency, there is still occasional stuttering during head movement. That is not the case at 3660x3200 resolution, which runs smoothly (will post results next), even though the stats look very similar except with 50-60 ms total latency.
* While iVry is running, I can’t ping the device from the PC.
* Once iVry turns to black and white after 5 minutes, I cannot load new VR games. However, if it turns B&W while in-game, there is no issue.
* Framerate seems to come down when the color turns B&W, but that could be coincidental. Need more tests to confirm.
* Running iVry’s bandwidth test while framerate is at 45 Hz typically crashes iVry and SteamVR
* When iVry / SteamVR crashes in this manner (and some other non-specific situations), re-starting SteamVR is not possible and I get a “Kill Process ? Unable to launch SteamVR. Port 27062 in use.” error. Clicking either “Yes” or “No” makes no difference. Often, SteamVR still shows as running in Steam, and it cannot be shut down from Steam. Shutting Steam down, ending Steam / Steam Client Webhelper / Steam Client Service also doesn’t do anything and they re-load automatically. Shutting down adb.exe and/or re-starting the PC fixes the issue.
* Sometimes, after a crash or shutting down the app normally, the VisionOS client doesn’t load on the first attempt. Instead it opens a large empty (grey) window. Closing this window and re-starting the iVry client always works the second time.
* Sometimes, loading iVry / SteamVR goes through the cycle 2-3 times. It loads to SteamVR, stays for a second, image freeze flat, shuts down, reloads, and then it works normally. No action is needed, it reloads on its own.
* The hands / controllers are a little shaky. I haven’t played with Tracking / Motion settings yet, maybe some adjustments will resolve it. Can’t say.
* Haven’t noticed much controller drift or floating.
* The haptics are a little trigger happy. It’s not clear yet what it correlates to.
* I haven’t tested these settings wired with the developer strap. Will try that next.
* When moving my head left to right very quickly (faster than I would in-game), there are white bars on the outer edges. It’s not dramatic, but it’s there and it’s consistent.
* These settings are ridiculous but I wanted to see how it plays at that resolution without FFR. It’s still somewhat playable about 50% of the time. Can’t see any difference visually over my 3660x3200 trial run.
< >
Showing 1-14 of 14 comments
Note: at 3160x2784, 100 Mbps, no FFR, I get low 50s latency, same 4-5 ms transport latency on 12-13 MB/s throughput, constant 90 fps (89.9 average), no stutter whatsoever, better sync’ed haptics. Only issue is the hands tremble when I grab things. Otherwise pretty clean. Still looks fine, though the diff is noticeable vs 3992x if you look carefully side by side. That’d be my lower bound.

Shaky hands and the white bars on rapid head movement are the biggest annoyances.
Apr 26 @ 12:48am 
Thanks for the feedback! When tracking reads 45Hz, that is the AVP throttling. It seems to do that after a while when you pound the M2 with high-res textures. I don't think there is any way around that, but it would probably do with a warning message to let the user know.
Apr 26 @ 1:12am 
Please clarify these items:
- "Compositor Resolution: 5644x4931", what is this referring to?
- "Only issue is the hands tremble when I grab things" - controllers or hand-tracking?
- Please retest this, as the only thing that changes here is a saturation filter on the output: "Once iVry turns to black and white after 5 minutes, I cannot load new VR games. However, if it turns B&W while in-game, there is no issue."

To use the Developer Strap, you'll need a 1Gbps+ USB-C ethernet connection, as the strap's USB protocol isn't known. You may need to disable Wifi to force the PC to connect via the ethernet connection, as this hasn't been tested extensively.
Originally posted by iVRy:
Please clarify these items:
- "Compositor Resolution: 5644x4931", what is this referring to? (...)

I'm not sure exactly where is originates. At first I thought it was your scaling for barrel distortion correction, But it could be just how SteamVR automatically scales the rendering resolution based on its assessment of your GPU's power if there's extra headroom

Actually in this run it was 5988x5232.

I guess ? You'll know better than I.

It's seen in SteamVR logs for example under steam.vr.settings:
"gpuSpeedRenderTargetScale" : 1.5,

Ref:
steam.vr.vrsettings
"GpuSpeed" : {
"gpuSpeed0" : 9066,
"gpuSpeed1" : 9019,
"gpuSpeed2" : 9002,
"gpuSpeed3" : 8994,
"gpuSpeed4" : 8994,
"gpuSpeed5" : 8924,
"gpuSpeed6" : 9018,
"gpuSpeed7" : 8940,
"gpuSpeed8" : 8940,
"gpuSpeed9" : 8915,
"gpuSpeedCount" : 10,
"gpuSpeedDriver" : "32.0.15.9186",
"gpuSpeedHorsepower" : 8981,
"gpuSpeedRenderTargetScale" : 1.5,
"gpuSpeedVendor" : "NVIDIA GeForce RTX 5090",
"gpuSpeedVersion" : 2

It also logs in vrcompositor.txt:
"Clamping render target scale to 1.5x total area."
"Creating systemlayer textures (w=5988,h=5232)"

Ref:
Sat Apr 25 2026 20:34:29.610 [Info] - ****************************************** Begin GPU speed ******************************************
Sat Apr 25 2026 20:34:29.628 [Info] - GPU Vendor: "NVIDIA GeForce RTX 5090" GPU Driver: "32.0.15.9186"
Sat Apr 25 2026 20:34:29.628 [Info] - Loading shaders
Sat Apr 25 2026 20:34:29.639 [Info] - Shaders loaded in 0.010788 seconds
Sat Apr 25 2026 20:34:29.669 [Info] - MeasureGpuMegaPixelsPerSecond(0): Returning 8915 MP/sec. Total CPU time 0.04 seconds.
Sat Apr 25 2026 20:34:29.669 [Info] - GPU speed from average of 6 median samples: 8981
Sat Apr 25 2026 20:34:29.670 [Info] - ******************************************* End GPU speed *******************************************
Sat Apr 25 2026 20:34:29.670 [Info] - HMD driver recommended: 3992x3490 90.0Hz HiddenArea(0.00%) = 2507 MP/sec
Sat Apr 25 2026 20:34:29.670 [Info] - Raw ideal render target scale = 3.58
Sat Apr 25 2026 20:34:29.670 [Info] - Clamping render target scale to 1.5x total area.
Sat Apr 25 2026 20:34:29.670 [Info] - New result of GetRecommendedRenderTargetSize for current app: 3992x3488
Sat Apr 25 2026 20:34:29.670 [Info] - Loading fonts/debug.spritefont
Sat Apr 25 2026 20:34:29.670 [Info] - Creating samplers
Sat Apr 25 2026 20:34:29.670 [Info] - Creating util resources
Sat Apr 25 2026 20:34:29.670 [Info] - Creating constant buffers
Sat Apr 25 2026 20:34:29.671 [Info] - Creating systemlayer textures (w=5988,h=5232)
Sat Apr 25 2026 20:34:29.672 [Info] - Creating/Updating distortion surfaces (mesh resolution 49)
Sat Apr 25 2026 20:34:29.676 [Info] - Warp mesh (left eye) covers 99.96% of its viewport (shrink wrap saved 0.00%)
Sat Apr 25 2026 20:34:29.681 [Info] - Warp mesh (right eye) covers 99.96% of its viewport (shrink wrap saved 0.00%)
Sat Apr 25 2026 20:34:29.686 [Info] - Initializing timing resources
Sat Apr 25 2026 20:34:29.686 [Info] - Initializing camera
Sat Apr 25 2026 20:34:29.686 [Info] - Done initializing CGraphicsDevice resources

And it shows if you "Detect Resolution" in fpsVR:

https://steamcommunity.com/sharedfiles/filedetails/?id=3714714264

https://steamcommunity.com/sharedfiles/filedetails/?id=3714714526
Originally posted by iVRy:
Please clarify these items:
- "Only issue is the hands tremble when I grab things" - controllers or hand-tracking?. (...)"

Specifically, when holding unto something, for example while climbing a ladder in HLA. It's the hands in-game.

Another related thing I just noticed is I can't throw things far. Hand velocity in game seems to be behind (slower) controller movement. Makes for limpy throws.

See vid:
https://steamcommunity.com/sharedfiles/filedetails/?id=3714772432

https://youtu.be/kNzHAyRaSE8?si=azTviW4vQpRxafkN


Originally posted by iVRy:
Thanks for the feedback! When tracking reads 45Hz, that is the AVP throttling. It seems to do that after a while when you pound the M2 with high-res textures. I don't think there is any way around that, but it would probably do with a warning message to let the user know.

Right, I've heard that before. Thermal throttling ? I'm curious why SteamVR, fpsVR, OVR toolkit don't report it.

Can you monitor the async reprojection on the AVP side ? My understanding from reading Apple documentation is that it's automatic but I've never actually "seen" it tested/measured.
Apr 26 @ 12:12pm 
The iVRy app samples tracking in the render loop (AVP needs tracking and rendering tightly coupled), and renders a frame (or reprojection) on every frame interval. Whatever you're seeing as the tracking rate is the frame rate Vision OS is using. SteamVR may be rendering and transmitting 90Hz, but the app can only render 45Hz.

So the iVRy frame rate (actually the rate that new frames get displayed on the device after decoding) will be 45Hz in that instance. SteamVR could also be frame-doubling in some instances, in that case you'd see the frame rate at 45Hz and the tracking at 90Hz.

VisionOS could also throttle if it saw the app not giving it frames quickly enough (stalling). However, that can't happen in this app, as a frame (either new or old) is given at every frame interval, ie. SteamVR render cadence does not affect VisionOS' render cadence.

An app could time how often its render loop executes to determine whether VisionOS is throttling, which would only really work in a streaming app, where the rendering complexity is negligible.
May 5 @ 1:42am 
Originally posted by Spyder Jerusalem:
Specifically, when holding unto something, for example while climbing a ladder in HLA. It's the hands in-game.

Another related thing I just noticed is I can't throw things far. Hand velocity in game seems to be behind (slower) controller movement. Makes for limpy throws.

These issues should be resolved in the latest app beta (1.1.9.8).
May 5 @ 1:45am 
Originally posted by Spyder Jerusalem:
Can you monitor the async reprojection on the AVP side ? My understanding from reading Apple documentation is that it's automatic but I've never actually "seen" it tested/measured.

The latest app version (1.1.9.8) shows a notification when possible throttling is detected.
< >
Showing 1-14 of 14 comments
Per page: 1530 50