Repository navigation
Description
TITLE:
24H2+: Screen capture of a fullscreen "Hardware: Legacy Flip" game breaks with 2+ monitors in Extended mode (capture ~3 FPS, game memory grows) — works on 23H2
SUMMARY
Since Windows 11 24H2, capturing a monitor on which a fullscreen game presents in "Hardware: Legacy Flip" no longer works when 2 or more monitors are in Extended mode. Discord screen share of that monitor drops to ~3 FPS, recording does not work, and the captured game's process memory keeps growing while the capture runs. The game itself keeps rendering normally. On Windows 11 23H2, the same scenario works.
The bug requires ALL 6 of the following at the same time. Remove any single one and it disappears:
- Windows 11 24H2 or any later version (24H2, 25H2 and 26H2 all affected)
- 2 or more monitors
- Monitors in Extended mode (not Duplicate)
- Game in fullscreen
- Game presenting in "Hardware: Legacy Flip" (PresentMon)
- An active capture of the monitor the game is on
WHAT DOES NOT TRIGGER IT (all tested)
- Windows 11 23H2 (condition 1 missing): works.
- Only 1 monitor connected/active (condition 2 missing): capture smooth, no memory growth (game is still in Hardware: Legacy Flip).
- 2 monitors in Duplicate mode (condition 3 missing): capture smooth, no memory growth (game becomes Composed: Copy with GPU GDI).
- Game not in fullscreen (condition 4 missing): capture smooth.
- Game forced into composition, Composed: Copy with GPU GDI (condition 5 missing): capture smooth.
- Capturing the OTHER monitor, the one without the fullscreen game (condition 6 missing): smooth.
WHAT DOES NOT CHANGE THE RESULT
- Same or different refresh rates on the two monitors.
- G-SYNC off.
- Hardware-accelerated GPU scheduling on.
- "Optimizations for windowed games" on.
- Windows edition: Home, Pro and IoT Enterprise LTSC all affected.
- NVIDIA GPU generation: RTX 2080 Ti, RTX 3060 Ti, RTX 4060 Ti all affected.
- NVIDIA driver: latest or previous release on all machines.
- Clean OS installs and different system tunings: same result.
- OpenGL and Vulkan games are both affected. All tested native-fullscreen games behave the same way.
SYMPTOMS (NVIDIA)
- Discord full-monitor screen share of the game's monitor: ~3 FPS on the viewer side. The game itself stays fluid.
- Recording of that monitor does not work.
- The game process memory grows continuously while the capture runs (~100 MB/s with Vulkan, less with OpenGL). It stops growing when any of the 6 conditions above is removed.
- With the NVIDIA "Vulkan/OpenGL present method = Prefer layered on DXGI swapchain" setting, the capture is still not smooth, but the memory growth does not occur.
PRESENTMON MEASUREMENTS (PresentMon 2.x console, game process, 20 s each)
Windows 11 25H2, RTX 2080 Ti, Vulkan game, borderless fullscreen window covering the monitor, unlimited FPS, no VSync:
- 2 monitors Extended + capture: Hardware: Legacy Flip, ~2000 FPS, present-to-display ~0.12 ms → capture BROKEN + memory growth
- 1 monitor + capture: Hardware: Legacy Flip, ~2160 FPS, present-to-display ~0.13 ms → capture OK
- 2 monitors Duplicate + capture: Composed: Copy with GPU GDI, ~1750 FPS, displayed at 60 Hz → capture OK
The same Legacy Flip mode captures correctly with a single monitor and fails only with 2+ monitors in Extended mode. The regression seems to be in how 24H2+ captures a monitor owned by a Legacy Flip presenter in a multi-monitor Extended topology.
POSSIBLY RELATED: AMD (observed, not fully investigated)
- On AMD Radeon RX 6000 and RX 7000 series GPUs, on Windows 11 24H2 and every later version (never before 24H2), Discord screen share of a fullscreen game flickers heavily and continuously shows frames jumping back (rollbacks). The result is close to unwatchable (strobing).
- Observed by several users. Other Radeon generations were not observed (no affected user encountered).
- Presentation mode and the exact conditions were not measured on AMD. It is believed to be the same issue with a different symptom, and the same mitigations are believed to apply, but this is not verified.
DEVELOPER-SIDE TESTS (OpenGL and Vulkan application, NVIDIA) — confirm the cause, but are not acceptable fixes
- Vulkan: VK_EXT_full_screen_exclusive = APPLICATION_CONTROLLED, never acquired → game stays composed, captures work on 24H2+.
- Vulkan: VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT → captures work, but -35% FPS and added latency on NVIDIA.
- OpenGL: removing WS_POPUP from the fullscreen window → Composed: Copy with GPU GDI, captures work, -10% FPS, present-to-display 0.29 → 3.98 ms.
Forcing composition costs a GPU copy per frame and a wait for the next DWM refresh. Fullscreen Legacy Flip should remain capturable, as it is on 23H2 and as it is on 24H2+ with a single monitor.
STEPS TO REPRODUCE
- Windows 11 24H2 or later, NVIDIA GPU, 2 monitors in Extended mode.
- Run an OpenGL or Vulkan game in fullscreen on the primary monitor, unlimited FPS. Confirm with PresentMon that it presents in "Hardware: Legacy Flip".
- Start a Discord full-monitor screen share (or a recording) of that monitor.
- Observe: viewer sees ~3 FPS, recording fails, game process memory grows in Task Manager.
- Switch to Duplicate mode (Win+P) or disconnect the second monitor: capture becomes smooth immediately and memory growth stops.
EXPECTED
Capture of a monitor with a fullscreen Legacy Flip game works with multiple monitors in Extended mode, as on Windows 11 23H2 and as on 24H2+ with a single monitor.
ACTUAL
Capture runs at ~3 FPS or fails, and the captured game's memory grows, only on 24H2+ with 2+ monitors in Extended mode.
RELATED PUBLIC REPORTS (same symptoms, no resolution)
- https://learn.microsoft.com/en-us/answers/questions/3958680/dual-monitor-problems-24h2 (Oct 2024: dual monitor only, Discord/Parsec/AnyDesk, 23H2 clean install works)
- https://learn.microsoft.com/en-us/answers/questions/3873228/full-screen-applications-capture-and-screen-share (Jun 2025: Discord <1 FPS on Minecraft/Geometry Dash, Extended mode only)
- Fullscreen recording issue with extended display sskodje/ScreenRecorderLib#330 (fullscreen OpenGL + Extended display: Desktop Duplication returns 0x887A0026 / black frames, WGC returns a static image)
Activity