[BUG] Claude Desktop (Windows): Bursty frame delivery triggers G-Sync flicker (119Hz → ~40Hz) at end of response streaming and while typing
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Claude Desktop's UI updates in irregular bursts (idle, then a sudden repaint) rather than steady frame delivery. On a G-Sync display, this bursty pattern causes the display to repeatedly chase/re-negotiate refresh rate, producing a visible flicker and frame rate drops as low as ~40Hz. Confirmed via isolation testing that this is specifically a G-Sync interaction issue, not a GPU-compositing issue.
Setup:
Monitor: LG OLED42C2 (TV used as PC monitor), 4K
Refresh rate: locked to ~119Hz with G-Sync (Nvidia) enabled
GPU: RTX 5090
OS: Windows 11
Observed behavior:
During response streaming itself, refresh rate holds steady — no visible issue.
At the moment a response finishes generating, frame rate visibly drops — as low as ~40Hz — accompanied by a flicker.
Typing in the chat input box sometimes triggers the same kind of flicker.
Both symptoms are consistent with the display's G-Sync module hitting its low-framerate compensation (LFC) range and re-negotiating refresh rate in response to Claude's irregular/bursty frame output (idle → sudden repaint burst at response-completion or on certain keystrokes).
Isolation testing performed:
--disable-gpu-compositing (forces CPU/software compositing instead of GPU compositing) — did not resolve the issue. At most a negligible improvement. This rules out the Electron/DWM GPU-compositing conflict that explains other reported Windows flicker issues — this bug is mechanistically different.
Disabled G-Sync entirely (Nvidia Control Panel → Set up G-SYNC → unchecked "Enable G-SYNC, G-SYNC Compatible") — fully resolved the issue. With G-Sync off and the display running at a fixed refresh rate, no flicker occurred during either typing or response completion, across repeated testing.
This strongly indicates the root cause is Claude's irregular/bursty frame delivery pattern interacting poorly with G-Sync's variable refresh negotiation, rather than a GPU compositing or driver-level rendering bug.
What Should Happen?
Claude Desktop's UI repaints (especially at response-stream completion and on input box keystrokes) should be paced more smoothly, rather than firing as a single large burst, so as not to trigger G-Sync range-switching/flicker on VRR-enabled displays.
Error Messages/Logs
Steps to Reproduce
Steps to Reproduce
- Connect a G-Sync-capable display (LG OLED42C2) at ~119Hz with G-Sync enabled, RTX 5090.
- Open Claude Desktop.
- Type in the chat input box — flicker occurs intermittently.
- Send a message that generates a multi-paragraph response; watch refresh rate (e.g. Nvidia overlay, Alt+R) during streaming and at completion — refresh rate drops sharply (to ~40Hz) with a visible flicker right as the response finishes.
- Relaunch with --disable-gpu-compositing — flicker persists (no meaningful change).
- Disable G-Sync globally in Nvidia Control Panel — flicker is completely gone for both triggers.
- Re-enable G-Sync — flicker returns.
Workaround: Disabling G-Sync (Nvidia Control Panel → Set up G-SYNC) eliminates the issue entirely, at the cost of losing G-Sync's adaptive refresh benefits while using the app.
Claude Desktop version: 1.15962.1 (1e236d), built 2026-06-26
Operating System: Windows 11
GPU: Nvidia RTX 5090
Display: LG OLED42C2, ~119Hz, G-Sync enabled (issue reproduces); G-Sync disabled (issue resolved)
Claude Model
N/A — Claude Desktop app (not applicable, this is a UI rendering bug unrelated to model choice)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
Claude Desktop version: 1.15962.1 (1e236d), built 2026-06-26
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Other
Additional Information
_No response_
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗