Framerate/ Refresh Rate mismatch causes microstuttering on Linux and maybe Windows.
SteamVR/VRChat/Beat Saber are the only ones I've tested
Description
I discovered that when messing with the sidequest desktop app if I changed the refresh rate of the headset and its apps to not match what ALVR streamer is set to it will cause micro stuttering like this. I think forcing the android/meta app to sync with the set refresh rate of the ALVR streamer will help make the client run better but you might have a idea on how to fix this then me.
https://github.com/user-attachments/assets/c7098e29-267d-4eeb-9acd-580f61eecaa4
I was able to fix it by change the refresh settings in the side quest desktop app to match my ALVR settings and the micro stuttering is reduced if not gone in my case.
General Troubleshooting
- [x] I carefully followed the instructions in the README and successfully completed the setup wizard
- [x] I read the ALVR GitHub Wiki
Environment
LIBVA_DRIVER_NAME=radeonsi VDPAU_DRIVER=radeonsi
Hardware
Note: for Linux, an upload to the hw-probe database is preferred: hw-probe -all -upload
https://linux-hardware.org/?probe=a061c15130
CPU:
AMD Ryzen 9 7900X3D
GPU:
AMD RX 7800 XT
GPU Driver Version:
Mesa 24.3.0 vulkan-radeon 24.2.7
Audio:
pipewire
Compiled with libpipewire 1.2.7
Linked with libpipewire 1.2.7
Installation
ALVR Version: 20.11.1 ALVR Settings File: session.json
SteamVR Version: SteamVR beta 2.9.2 Install Type: Arch AUR alvr-bin
OS Name and Version (winver on Windows or grep PRETTY_NAME /etc/os-release on most Linux distributions):
CachyOS
It happens if I force it to a refresh rate that doesn't match my ALVR streamer settings. I believe it can happen even if I haven't messed with SideQuest.
I don't think there is synchronization of framerates and refresh rates between the streamer and the headset, and this mismatch is causing the framerates to jump. For example, the Quest 3 runs at 120Hz by default, and you can't change that without using an app like SideQuest. It could be that the app on the headset is running at a refresh rate that doesn't match the ALVR streamer's refresh rate, causing it to flash or jump between refresh rates at a very high speed, resulting in a micro-stuttering effect.
The only way to fix something like this is by enabling client sync or providing options to adjust the client refresh rate on the headset. However, this needs to be researched further.
ALVR choses the framerate you set in the ALVR dashboard. If you use sidequest it will mess up and you will get stuttering. if the framerate doesn't reset back to the setting in the dashboard, try to restart the headset
I think there might be fault in how it works because when I set the refresh rate to 90hz in sidequest to match the ALVR dashboard it makes existing stutters go away
I am going to close the issue I still think refresh rate mismatches can happen even without messing with sidequest but as of right now I can't prove that on my end. I just wanted to help people and thought maybe the reason my thing was micro stuttering like that was because of a refresh rate mismatch and something wasn't being checked correctly but sure enough resetting the headset had the same effect as doing that. I feel like a fool and will stop posting bug reports
Well you're right. Meta has a feature of framerate scaling for throttling. Currently we are not handling that case. So if your headset ends up throttling then using sidequest for force the framerate would remove the stutter. We are planning on a fix but unfortunately this is delayed a lot. We are moving towards the v21 stable release, but this fix cannot land until v22, so most probably it will take a year or more.
would including my temp fix in the wiki be a good idea? the thing is I don't know if it will help Windows users all that much my testing on Windows was inconclusive
I am going to close the issue I still think refresh rate mismatches can happen even without messing with sidequest but as of right now I can't prove that on my end. I just wanted to help people and thought maybe the reason my thing was micro stuttering like that was because of a refresh rate mismatch and something wasn't being checked correctly but sure enough resetting the headset had the same effect as doing that. I feel like a fool and will stop posting bug reports
Nah bug report like this are completely fine you'll never be considered a fool.
I just thought I was making noise about nothing again and feel like a fool for that
In fact this is a perfect example on how bug reports should be written
would including my temp fix in the wiki be a good idea? the thing is I don't know if it will help Windows users all that much my testing on Windows was inconclusive
I'm conflicted on this. because setting the framerate on sidequest would break all other framerates until you restart the headset. this should be stated very clearly, maybe even in bold. I can accept a PR for the wiki
This isn't noise, it may not have gotten all the details right but its definitely not noise this is noise, for example https://github.com/alvr-org/ALVR/issues/2494 It wouldve been better to join the discord server or at a bare minimum some text.
would including my temp fix in the wiki be a good idea? the thing is I don't know if it will help Windows users all that much my testing on Windows was inconclusive
I'm conflicted on this. because setting the framerate on sidequest would break all other framerates until you restart the headset. this should be stated very clearly, maybe even in bold. I can accept a PR for the wiki
I am conflicted myself the thing I am doing is using sidequest to set the framerates to match the streamer overriding framerate scaling for throttling feature at least that is what I think is happening
I am also having a frametime issue and I believe this is related. I am using windows 11, quest 2. I have this constant staircase latency with (client system (not alvr latency)), when this rises fps jumps between 80/40/26.5, once this latency falls ALVR indicates smooth 40fps, until this latency rises again. I have ALVR set to 80hz and im forcing the game to a 40fps cap with RTSS, also scanline sync at 80 in RTSS as that seems to help a little. Im using this for msfs2024, there is no hitting 80 or even 72hz, so half rate is required for smoothness. I have tried Optimized game latency ON and OFF, usb connection vs. wireless , codec changes, etc.
This photo is with a game 40fps cap
This is with no fps cap (computer running ~45-50 fps avg here), you can still see the staircase latency, and of course the constant jumping between 40 and 80 fps.
This is 72hz mode with a 36fps cap, also confirmed with sidequest 72hz mode on quest side after a fresh reboot.
Running steam Home at 80hz and 80fps still has the staircase latency but not the frametime jumps
I am also having a frametime issue and I believe this is related. I am using windows 11, quest 2. I have this constant staircase latency with (client system (not alvr latency)), when this rises fps jumps between 80/40/26.5, once this latency falls ALVR indicates smooth 40fps, until this latency rises again. I have ALVR set to 80hz and im forcing the game to a 40fps cap with RTSS, also scanline sync at 80 in RTSS as that seems to help a little. Im using this for msfs2024, there is no hitting 80 or even 72hz, so half rate is required for smoothness. I have tried Optimized game latency ON and OFF, usb connection vs. wireless , codec changes, etc.
This photo is with a game 40fps cap
This is with no fps cap (computer running ~45-50 fps avg here), you can still see the staircase latency, and of course the constant jumping between 40 and 80 fps.
This is 72hz mode with a 36fps cap, also confirmed with sidequest 72hz mode on quest side after a fresh reboot.
Running steam Home at 80hz and 80fps still has the staircase latency but not the frametime jumps
I would recommend using sidequest to change the fps to match ALVR
the thing is I discovered this issue on Linux I have no idea if changing the fps affects Windows or not
Just wanted to let you guys know that I encountered the same jumping FPS issue (between the target FPS and target FPS/2) and nothing mentioned in this issue helped me. Windows 11, Intel Arc B580, Quest 3S, firmware v74. Stuttering constantly and everything seems to lag just a tiny bit behind my head movement. Really quite dizzying. :(
Can confirm the same ghost frames issue with "Blade and Sorcery" and "Hot Dogs, Horseshoes & Hand Grenades" on Windows 10, Pico 4, RX 7900XTX. In my case, after switching from old nvidia to new amd gpu and updating alvr. If I can help with testing (for example with logs), let me know.
I have encountered the same issue on Linux with Quest 3 and RX6800xt. Tested on No mans Sky, Subnautica, Half Life Alyx, The Forest, all the same result. ALVR v20.13.0
I've been struggling with this issue for the past seven months. I even sent my headset back to Meta and received a replacement, but the new one has the exact same problem. At some point, this flickering began affecting both my Quest 2 and Quest 3 in passthrough mode, and the issue carries over into SteamVR and VRChat as well. I even upgraded my CPU thinking it might be the cause, but it made no difference. Adjusting the headset's refresh rate through SideQuest changes the nature of the flickering, but doesn't eliminate it. I suspect a firmware update may have introduced this bug. Meta told me they forwarded the issue to their developers, but no one could explain what’s going on. If anyone has found a way to stop the flickering, I’d really appreciate any help!
@Ben-Auwerx Use SteamLink or Virtual Desktop if you're on Windows. Use WiVRn (and Wlx-Overlay-S) if you're on Linux.
I know this might not be the right place for it, but I’m just desperate to find a solution. I’m using Virtual Desktop. This video shows what the issue looks like, it was recorded 7 months ago with my old CPU: https://youtu.be/mxGUB9q8y94. Frametimes have improved with my new CPU, but the stuttering remains exactly the same. I also used to use body tracking to emulate Vive trackers through Virtual Desktop, but those now jitter in the same way: https://www.youtube.com/watch?v=0u5mfpATlfs. It’s such a strange issue, and no one seems to be able to figure out what’s causing it. It feels like there’s some kind of framerate mismatch between the tracking data and the video stream.
@Ben-Auwerx What is your setup? OS, CPU, Graphics Card, RAM, tried streamers/settings, headset, games, wifi setup, and anything else relevant.
@EpicGazel Sure! Here’s my setup:
OS: Windows 11, fully updated
CPU: Upgraded yesterday from Ryzen 3900XT to Ryzen 5700X3D
Graphics Card: NVIDIA RTX 3090
RAM: 32GB DDR4 3200MHz
Headset: Meta Quest 3 (also tested with Quest 2, same issue)
Streaming method: Quest Link (USB), Airlink, Steamlink, main streamer is Virtual Desktop over Wifi 5.
Games tested: mostly noticeable in VRChat, but phasmophobia, Golf It and Alyx also jitter from time to time.
Settings tried: Optimized Nvidia settings, turned off/on HAGS, Tested cpu core affinity settings, tried LatencyMon and optimized driver latency, changed bios settings to maximize cpu power (Turn off c-states), Adjusted frame rates in SideQuest (72 Hz, 90 Hz, 120 Hz), tried different Virtual Desktop codecs and bitrates. Those are the changes i can remember but i'm sure i've tried much more.
Frametimes are great, easily hitting 90 and 120 fps in my homeworld, yet the jitter continues. I even notice the jitter in native quest apps sometimes.
Happy to share more logs or screenshots if helpful!
@Ben-Auwerx
- Give OpenComposite a shot. This will remove SteamVR as a variable. I use WiVRn on Linux but I think you'd have to use Airlink.
- Try disabling async in steamvr's debug settings.
- Try wired with ALVR (or anything else that still supports that?), would help to isolate any network issues.
- Check your power plan is "High Performance".
@EpicGazel OpenComposite doesn’t seem to work with VRChat, so I set up a test using ALVR and took a few screenshots. I started in my VRChat homeworld alone, there were occasional spikes which I captured. Then, when I opened the SteamVR desktop view to take another screenshot, the intense stuttering kicked in. This stutter looks identical to what I see in the Quest’s passthrough view. I don't know if this issue is related to the original post but It really feels like the two are connected, almost as if there’s a mismatch between tracking data and frame rate.
I’m already using the High Performance power plan, and disabling async in SteamVR’s debug settings had no effect.
Well I have a similar issue
SteamVR REFUSES to launch by itself (Wayland), and instantly crashes when launched via alvr (both Wayland and X11).
It FAILS to detect hardware on an X11 setup unless I explicitly tell it to use xcb via environment variables
It flickers and seems like crazy no matter what I do to fix it
I use alvr-bin as well
I have tried EVERYTHING I can to fix it.
Well I have a similar issue
SteamVR REFUSES to launch by itself (Wayland), and instantly crashes when launched via alvr (both Wayland and X11).
It FAILS to detect hardware on an X11 setup unless I explicitly tell it to use xcb via environment variables
It flickers and seems like crazy no matter what I do to fix it
I use alvr-bin as well
I have tried EVERYTHING I can to fix it.
the solution for me was to use these launch options for Steam
QT_QPA_PLATFORM=xcb steam
Well I have a similar issue SteamVR REFUSES to launch by itself (Wayland), and instantly crashes when launched via alvr (both Wayland and X11). It FAILS to detect hardware on an X11 setup unless I explicitly tell it to use xcb via environment variables It flickers and seems like crazy no matter what I do to fix it I use alvr-bin as well I have tried EVERYTHING I can to fix it.
the solution for me was to use these launch options for Steam
QT_QPA_PLATFORM=xcb steam
steam itself refuses to work with vulkan. So that in itself is not an option for me. (I have tried)
This problem is happening on Windows too, so I don't think it's a Linux Exclusive bug.
I also have these issues with frame stuttering and ghosting and I found something that prevents stuttering for me. In the SteamVR settings, go to Video and then Per-Application Settings, then find your app. Scroll down if needed and change Throttling Behavior from Auto to Fixed and pick the refresh rate your headset is running at. Additional prediction can be left on the default of 0.00
Edit: never mind, after more testing the stuttering comes back - I relaunched all of the apps I had closed for testing.
Headset: Quest 3 Operating System: Bazzite 42 KDE Plasma Version: 6.4.5 KDE Frameworks Version: 6.18.0 Qt Version: 6.9.2 Kernel Version: 6.16.4-114.bazzite.fc42.x86_64 (64-bit) Graphics Platform: Wayland Processors: 16 × AMD Ryzen 7 7800X3D 8-Core Processor Memory: 64 GiB of RAM (61.9 GiB usable) Graphics Processor 1: NVIDIA GeForce RTX 4060 Ti Graphics Processor 2: AMD Radeon Graphics Manufacturer: Gigabyte Technology Co., Ltd. Product Name: B650M AORUS ELITE AX



