I'm had massive performance issues with my Quest 3, Virtual Desktop and DCS the past few weeks. Lag spikes, stutters, and drops in FPS. I have fixed this except for the F10 map FPS drop that I cannot for the life of me figure out how to solve.
Here's what I did and a compilation of all the researching I've done hoping to save anyone else the headaches I went through. I strongly recommend setting aside 2-3 hours to experiment and optimize your PC with the following tips:
In Windows network settings, right click on the adapter, properties, uncheck QOS (quality of service). This is a way for internet adapter to prioritize traffic. Most routers also have this setting and many won't allow you to change it. It is worth logging into your router/modems portal and see if you can tick this off. Or, if your router allows you to prioritize devices, be sure to put your VR headset as a high priority. This process varies so I don't have exact instructions. In my case, I use a COX internet gateway/router combo. Specifically the XB8. COX allows minimal settings changes and I've had to use a workaround to tweak to be allowed to tweak the settings. For me, I had to unplug the COAX fiber optic cable, hold the WPS button for 30 seconds to force my gateway to reset to factory defaults (this deletes all wifi SSIDs). I then waited for the Gateway to reboot. This forces the gateway to disconnect from my ISP. While still having the COAX disconnected, I logged into the router admin portal and tweaked the settings I wanted. This saves the settings. Then plugged the COAX in and rebooted. This reconnected my gateway to my ISP which then immidiately locked the settings. They cannot be changed unless I do this process. I'm leaving this part in for other people with strict ISPs and their monopoly on user-end control
*(putting a star here since this is what fixed my problems). If you are using wifi6E, make sure your router or gateway is in the same room with direct line of sight. This one fixed my stutters. Initially it was 7 meters away in the living room. Stutters and freezes every 5 seconds. Switching to wifi5 reduced this but the issue persisted. Switching back to 6E, I then set the router on the floor. Noticed big improvement but big hiccups here and there. Fine for DCS, bad for iracing. I then moved the router to the same room with direct line of sight to my rig and all the spikes completely disappeared. Wifi6E is faster and can transfer larger data, but it is very sensitive. Drywall will interfere. Angles matter. Height matters.
Experiment with different codecs (HEVC 10 bit and Av1 10 bit are often recommended for 40 series cards. I did not notice any difference however so I went back to H264+ @/500mbs
Experiment with turning off Hardware-accelerated GPU scheduling on or off
Make sure your router or gateway has split wifi bands. 2.4ghz,5ghz and 6ghz with their own SSIDs instead of just one. Then only connect your headset to the 6ghz SSID and nothing else. Everything else should use 5ghz or 2.4ghz. Routers/gateways prioritize bands to devices using an algorithm. This is why so many people see Virtual Desktop showing inconsistent bit rates at the top left when they boot the app in their headset. From~800mbs to ~1200mbs means the router is Switching between wifi 6 @ 5ghz (1200mbs) and wifi 5 at 5ghz(800mbs). You can click on the wifi section in your quest 3 for example and see wifi information to tell you what bandwidth and type your headset is connected to. Wifi 6E@ 6ghz will display ~2400mbs. All 3 are good enough for VR, 6ghz 6E being the best but you want consistency. This also helps narrow down your issues. Also they do differ in latency depending on location. 6E u/6ghz being the most sensitive
reboot your router. I know this sounds crazy and stupid, but properly power cycling your router and clearing the temp memory can often fix a lot of issues. Make sure you disconnect the power for at least 60 seconds before plugging back in.
experiment with turning off or on automatic/dynamic bitrate and buffering. These are two different settings in virtual desktop. One is on the desktop app interface. The other in the headset app. Try one at a time. Didn't fix my issues but worth a shot.
in virtual desktop, make sure ASW is turned off. Asynchronous spacewarp is a feature that cuts your frame rate in half if your PC cannot reach the indicated framerate. Example, if you run Virtual Desktop at 120fps, but your PC only manages to render ~103fps, ASW cuts the refresh rate to 60fps. This ensures no fluxation which can cause nausea or warping. At 90fps it cuts it down to 45fps. Etc. I set VD to 120fps target frame rate in Godlike settings and let jesus take the wheel.
Understanding channels Download wifi analyzer in Google play or App store (free app). It will show you which channels are active or congested. Tap different channels and wait for it to populate. Your neighbors and yourself are in an environment with tons of different radio frequencies happening at a time. They can overlap and cause interference. Find which channels are the least congested and use those. In my experimentation, I'm using wifi 6E (6ghz) the channels. (5, 21, 37, 53, 69, 85 etc) Your router automatically determines this, but I don't trust the algorithm. Use the analyzer and look for the least congested channel. Note: higher channels might take longer for your device to initially connect. I'm currently on 69 from 5 and seems good and stable. Understand the specific channels I listed use 160hz channel width which is what you want for wifi 6E. 80hz works too but don't go lower. Doubt you can anyways.
Experiment with forcing AC if using wifi 6 @ /5ghz) and not AX. Routers are backwards compatible with both usually. But they can be inconsistent. Try forcing 802.11 AC only. I think wifi 6e @ 6ghz only operates in AX mode so ignore if you're using that.
anti-virus and firewall. If you use windows defender/firewall or threat protection, make sure to exclude DCS, virtual desktop, steam folders. Look online for how to do it if you have your own 3rd party anti-virus (I use malware bytes). The entire folder for all 3.
GPU stuff to consider:
- Turn off nvidia shadowplay/overlay
- turn off steam overlay
- Experiment with VR pre-rendered frames from 1 to 3. (Didn't make much difference for me but depends on your hardware). What this does is tell the GPU to render 3 frames in advance. If there is a slight delay, you won't notice a stutter. This is my understanding, I could be completely wrong of course.
- if on an nvidia GPU, make sure prefer maximum performance for power settings
CPU stuff to consider: -HAGS (hardware-accelerated GPU scheduling) allows windows to use some of your GPU power to improve multitasking. This is usually always a net benefit. But many DCS players say the game engine isn't using this properly. Try turning it off or on. I mentioned this above already.
- In windows 11, in the same graphics settings menu, there is a box that says something like "optimize apps for windowed mode". You usually want this on. I believe it tells the OS not to deprioritize your processing power for apps in windowed mode when alt-tabbing. It ensures the game doesn't slow down. Right-clicking DCS.exe > properties > compatibility, there should be a check box for this option to set it on a per app basis. I have mine checked off. Didn't notice a difference.
- Process Lasso is free Download, install, and after launching DCS, it will populate on the active processes tab. Right click set affinity and only check physical cores/threads. If you have an Intel CPU like I do, there are E cores. E cores are dedicated threads that handle background non-intensive tasks in windows.
- using process lasso, you can also see if you have parked cores. Unpark them. Parked cores are cores not in use. They shouldn't be parked for dcs but you can check by looking at the bar graphs when clicking on DCS in process lasso. The parked cores will be grayed out.
- I believe the creator of process lasso has a dedicated parked cores app that can unpark your cores for you. But this is already handled by process lasso.
- in Process lasso, set cpu priority always highest (not real time). Do the same for memory or whatever else is there.
Other things to consider
- mouse polling rate to lowest setting. The process for this is different by manufacturer. For my razor artheris mouse, I had to download their software to do it. It then stores the settings in the mouses' memory.
- When launching DCS, after clicking, do not move the mouse at all. Not even a little bit. Until you are at the main menu. This fixed my issue with massive stuttering, desync when moving the mouse. Try it once or twice and it will work.
The F10 map This is the only issue I have left. And I'm 100% certain it has to do with GPU memory or windows page file. And I'm sorry, I'm not buying this idea that DCS needs more than 16gb of VRAM. This is something that has to get fixed by Eagle Dynamics. Whenever I open the F10 map, my frame rate drops to 30 sometimes 15 fps. Going back to the F1 cockpit view, the framerate never returns to 60fps. Alt-tabbing out of dcs waiting a few seconds, then alt-tabbing back did not work for me. What did work consistently for me was alt-tabbing. Then double clicking the menu button on my left quest 3 controller. This pulls you out of VR mode and into Desktop mode in virtual desktop. I then wait 5 seconds. Click the "Switch to Vr" button and alt-tab back in. Although this has made the game playable, I lose my aircraft workflow, situational awareness, and it is a massive pain. I've also noticed the issue happen randomly without hitting the F10map. I'm still trying to sort this out, I've recently changed my windows page file from 32GB on an SSD to 32GB min and 64GB max. I haven't tested yet and will report back if this fixes it. From my understanding and reading, when you open the F10 map, the game preloads that location into your VRAM. This includes terrain and 3d models. Even though you cannot see it by default (unless you change the map mode to sat). When switching back to your F1, the game tries to load your cockpit and it's surroundings but fails to flush the VRAM of all the info it loaded in the F10 map. When you alt tab or switch VR to Desktop mode, after a few seconds, a cue or query or task or whatever is sent to your GPU to flush the VRAM to load handle whatever you're now doing in the new window. DCS seems to not do that. This is my understanding, I could be wrong as I often am.
My specs I7 14700k RTX 4080 Founders Edition. 32GB DDR5 6200mhz
Hope this helps. Reason I made this post is that all this information I found while trying to troubleshoot was scattered all over in discord forums reddit with conflicting responses. So I wanted to help people find it all in one place if they do Google and stumble upon this.
If anyone solved the F10 memory leak issue, I'd appreciate some help in the comments.