⁠[SU6] Severe DX12 Presentation Queue Latency Stall in VR (~50ms Queue Buildup / Desync)⁠

Description of the Issue

Since Sim Update 6 (SU6), VR mode exhibits a severe DX12 swapchain / presentation queue latency stall. While raw engine rendering performance is optimal (~20–25 ms render time), the presentation pipeline buffers 2 to 3 frames ahead, leading to an artificially inflated total latency of 80–100 ms.

This latency desync causes severe positional tracking judder and micro-stutters, which becomes unplayable especially when looking sideways out of the cockpit at the ground during low flight or taxiing, due to the broken pose prediction.

The issue occurs on both standalone streaming runtimes (VDXR / Quest 3) and native DisplayPort runtimes (WMR / HP Reverb G2), confirming an internal MSFS 2024 DX12 render-to-OpenXR sync regression introduced with SU6.

System Specs & Hardware

  • GPU: NVIDIA GeForce RTX 4090
  • Headsets tested:
    • Meta Quest 3 (via VDXR / Virtual Desktop Beta – tested on 2400 Mbps Wi-Fi and 5 Gbps USB-3 link)
    • HP Reverb G2 (Native DisplayPort / Windows Mixed Reality OpenXR runtime)
  • DirectX Version: DX12

Observed Metrics

  • Game Render Time: ~20–25 ms (consistent 40–50+ FPS headroom)
  • Encode / Transfer / Decode: ~12–15 ms
  • Actual Total Latency: 80–100 ms (showing a persistent ~45–50 ms queue stall)

Steps to Reproduce

  1. Launch MSFS 2024 (SU6) in DX12.
  2. Enter VR mode in any aircraft/location.
  3. Look sideways out of the cockpit at the ground or scenery while taxiing or in low-altitude flight.
  4. Observe severe judder and frametime metrics: frame generation completes in ~20–25 ms, but output to the OpenXR compositor is delayed by an internal 2–3 frame queue.

Exhaustive Troubleshooting Performed (No Effect)

  • Graphics Settings: Set to absolute minimum + Bing Photogrammetry/Data disabled (render times drop to <15 ms, queue delay remains locked at ~50 ms).
  • Cache Purge: Full wipe of %localappdata%\NVIDIA\DXCache, D3DSCache, and complete deletion of MSFS Rolling Cache.
  • Low Latency & Sync Settings: NVIDIA Reflex toggled across Off / On / On+Boost; NVIDIA Control Panel Low Latency Mode (Ultra); HAGS toggled On/Off.
  • Cross-Hardware Isolation: Switched from wireless streaming to direct 5 Gbps USB link, and subsequently to a native DisplayPort headset (HP Reverb G2 on WMR). The exact same presentation stall persists across all runtimes.

What are you using to measure this 50ms queue stall exactly? I have both the quest 3 and a reverb g2 and have not noticed any stutter issues recently. VD does have a hitch every 10 seconds or so but I believe that is a know issue with the new meta update in the way the connection is being routed. Do you have any logs or graphs showing this queue stall?

The measurement is based directly on the Virtual Desktop Performance Overlay breakdown and verified via the OpenXR Developer Overlay / OpenXR Toolkit:

  1. How the ~50ms queue stall is calculated (VD Overlay):
  • Game Render: ~22–25 ms
  • Encoding (NVENC): ~3–4 ms
  • Networking (5 Gbps USB / 2400 Mbps Wi-Fi): ~2–3 ms
  • Decoding (XR2 Gen 2): ~6–7 ms
    → Pure hardware/pipeline processing sum = ~35 ms.
    → However, the reported “Total Latency” in the overlay stays pegged at 85–100 ms.
    The missing ~50 ms delta is the time frames spend buffered in the DX12 swapchain / presentation queue before being released to the compositor.
  1. On the HP Reverb G2 (Native WMR):
    The OpenXR Developer Tools / OpenXR Toolkit overlay shows the identical frame-pacing behavior: app GPU frametimes are steady at ~20–25 ms, but motion-to-photon / display pose timing exhibits an artificial 2–3 frame delay, resulting in severe positional judder when looking 90° sideways out of the cockpit at moving ground textures.

  2. Note on the 10-second hitch:
    This is not related to the Meta Wi-Fi background scanning hiccup. The issue described here is a permanent, constant ~50ms baseline latency queue that persists 100% of the time, even over direct USB-3 link and on DisplayPort.

I will attach a screenshot of the VD Performance Overlay showing this metric breakdown shortly.