microsoft / microsoft/terminal

Windows Terminal on Intel-driven high-refresh monitor causes DWM to halve refresh rate across all monitors after prolonged Codex CLI usage

Open
#20,589 3 comments 0 reactions 0 assignees View on GitHub
Issue-Bug Needs-Attention Needs-Triage
Dominant language
C++
Stars
105k
Forks
9.6k
Avg merge
3d 17h
Merged PRs (30d)
29

Description

### Windows Terminal version

1.24.11911.0

### Windows build number

10.0.26200.0

### Other Software

- codex cli 0.149.1

### Steps to reproduce

Hardware / display setup:

- Laptop with NVIDIA GeForce RTX 5070 + Intel integrated graphics.
- The laptop has only one display output wired to the NVIDIA GPU and one display output wired to the Intel iGPU.
- Three external displays:
- Display A: 2560×1600 @ 240 Hz, connected to NVIDIA RTX 5070.
- Display B: 2560×1440 @ 180 Hz, connected to NVIDIA RTX 5070.
- Display C: 1440×2560 @ 200 Hz, portrait orientation, connected to Intel integrated graphics.
- Display C is mainly used for a fullscreen Windows Terminal window split into four panes, with Codex CLI running in the panes.
- Display B is the primary display.

Reproduction:

1. Start Windows Terminal normally.
2. Move a Windows Terminal window to Display C.
3. Maximize/fullscreen it on Display C.
4. Split the Terminal into four panes.
5. Run Codex CLI in the panes and use it normally for an extended period.
- The panes continuously update due to streamed text, status output, cursor updates, etc.
6. After some time, motion across all three displays becomes noticeably less smooth.
7. The system still reports the configured refresh rates for the displays, but the effective desktop/DWM refresh behavior appears to be reduced.
8. Disconnect the cable for Display C.
9. Displays A and B immediately return to normal high-refresh smoothness.
10. Reconnect Display C.
11. The reduced-refresh / frame-dropping behavior immediately returns.
12. Logging out or rebooting Windows restores normal behavior temporarily.

I also tested the following:

- Changed the three displays to refresh rates with integer relationships, for example:
- A = 240 Hz
- B = 120 Hz
- C = 120 Hz
- The issue still occurs.
- Lowering Display C's refresh rate does not solve the problem. The effective refresh rate still appears to be halved relative to Display C's configured refresh rate.
- Set Windows Terminal to the Windows "Power saving" GPU preference so that it should prefer the Intel GPU.
- This did not resolve the issue.

One possible complication is that Windows Terminal is also used on the NVIDIA-driven primary display for other work, so it may still involve both GPUs during the session rather than staying entirely on the Intel GPU.

### Expected Behavior

Windows Terminal should be able to run continuously on Display C, including a fullscreen four-pane Codex CLI workload, without affecting DWM presentation or the effective refresh rate of other displays.

Each display should continue operating smoothly at its configured refresh rate:

- Display A: 240 Hz
- Display B: 180 Hz
- Display C: 200 Hz

A continuously updating Terminal window on an Intel-driven display should not cause the NVIDIA-driven displays to become limited by the Intel display's presentation cadence.

### Actual Behavior

After Windows Terminal has been running on Display C for some time, all three displays begin to exhibit obvious frame dropping / reduced desktop smoothness.

The behavior appears to be tied specifically to Display C, which is driven by the Intel iGPU.

In the original configuration:

- Display A = 240 Hz
- Display B = 180 Hz
- Display C = 200 Hz

the effective DWM / desktop presentation rate appears to become approximately 100 Hz across the system — exactly half of Display C's 200 Hz refresh rate.

Lowering Display C's refresh rate does not solve the issue; the resulting effective presentation rate still appears to be approximately half of Display C's configured refresh rate.

The problem does not appear to be caused by GPU, CPU, RAM, or VRAM exhaustion. There is significant performance headroom when the issue occurs.

The strongest indication that Display C / the Intel display path is involved is:

- Disconnect Display C → Displays A and B immediately become smooth again.
- Reconnect Display C → frame dropping immediately returns.
- Logging out or rebooting Windows → temporarily restores normal behavior.

Because Windows Terminal is GPU accelerated and the Terminal window is displayed on a monitor physically driven by the Intel iGPU while other displays are driven by the RTX 5070, I suspect this may involve DWM cross-adapter presentation/composition between NVIDIA and Intel.

The four-pane Codex CLI workload may make the problem easier to trigger because multiple panes continuously generate text, cursor, status, and other redraw activity.

Unfortunately, this laptop only exposes one NVIDIA-driven display output and one Intel-driven output. Using an MST hub on the NVIDIA output might avoid the Intel display path entirely, but that requires additional hardware and I am looking for a software/driver/Terminal-side workaround or diagnosis if possible.

Contributor guide

Open the contributing guide

Research direction

The issue names no repository files, tests, or code entry points. Start by reproducing the multi-GPU setup with Windows Terminal and the four-pane Codex CLI workload, then compare presentation behavior with Display C disconnected and reconnected. Done means identifying whether the cause is in Terminal or the Windows display/driver path, or documenting a verified workaround.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop, operating-systems, performance
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.