[BUG] Claude Desktop renders on iGPU at 99% during streaming on hybrid laptops, Per-App GPU preference ignored
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?
Environment
- Claude Desktop: 1.4758.0.0 (MSIX/Microsoft Store install)
- OS: Windows 11 26100.8246
- Hardware: Razer Blade 15 Advanced 2020 (RZ09-0330x), hybrid graphics
- iGPU: Intel UHD 630 (driver 31.0.101.2141)
- dGPU: NVIDIA RTX 2070 Super Max-Q (driver 572.83)
- Display physically wired to iGPU (typical for laptops)
Symptom
- During answer streaming: Intel iGPU 3D at 99% sustained
- Renderer process + GPU process at ~50% CPU each (~100% of one core combined)
- In idle: still 4% with peaks (after empty chat)
- Persists after full Claude restart
Investigation
A/B-tested with two Intel driver versions:
- 27.20.100.8476 (2020 Razer-OEM): 99% during streaming
- 31.0.101.2141 (April 2026): 99% during streaming
→ Driver is not the cause.
Per-app GPU preference attempts — all ineffective:
- Windows Settings → Graphics → Höchstleistung (NVIDIA)
- NVIDIA Control Panel → Program profile
- nvidia-smi confirms claude.exe never appears on dGPU,
P8 idle state, 0% utilization
Suspected root cause
Electron/Chromium picks GPU adapter based on window-surface LUID.
Display is bound to iGPU on this laptop, so the renderer surface
defaults to Intel. The MSIX/Store packaging likely also blocks
the per-app preference from reaching the renderer process.
Suggested fix candidates
- Export
NvOptimusEnablement = 0x00000001symbol in the
Electron main binary so Optimus laptops route the process to dGPU
- Provide an in-app Hardware Acceleration toggle (currently absent
in Settings)
- Investigate whether the streaming markdown re-render can be
throttled / batched to reduce per-token compositor work
What Should Happen?
On hybrid-graphics laptops where the display is physically wired to the iGPU,
Claude Desktop should not pin one full CPU core to the renderer/GPU process
during answer streaming, and Intel iGPU 3D utilization should not stay at
sustained 99% during streaming.
Concretely, any of the following would resolve the issue:
- Export the NvOptimusEnablement = 0x00000001 symbol in the Electron main
binary so Windows Optimus routes Claude Desktop to the discrete NVIDIA GPU
on hybrid laptops where one is available.
- Add an in-app "Hardware Acceleration" toggle under Settings, so users
on platforms where GPU rendering misbehaves can fall back to CPU rendering
without external workarounds.
- Throttle or batch the streaming markdown re-render so that per-token
updates do not trigger a full layout/composite pass — for example by
coalescing updates within an animation frame, or rendering only a sliding
window of recent content while the response is still streaming.
- Honor the Windows per-app GPU preference and the NVIDIA Control Panel
program profile when set on the MSIX-installed Claude executable.
Expected end-user effect: streaming a long answer should produce the same
GPU/CPU profile as an equivalent web-based chat (e.g. claude.ai in Chrome),
which on the same machine stays well below 30% iGPU 3D utilization.
Error Messages/Logs
Steps to Reproduce
- Use a Windows 11 hybrid-graphics laptop where the internal display is
wired to the integrated GPU (typical for most modern laptops with both
Intel/AMD iGPU and NVIDIA/AMD dGPU). Tested on a Razer Blade 15
Advanced 2020 (RZ09-0330x) with Intel UHD 630 + NVIDIA RTX 2070 Super
Max-Q.
- Install Claude Desktop 1.4758.0.0 from the Microsoft Store
(MSIX package).
- Open Task Manager → Performance tab → select the integrated GPU
(Intel UHD Graphics in this case). Keep the 3D-utilization graph
visible during the next steps.
- Start Claude Desktop, open any chat (existing or new — both reproduce).
- Send any prompt that produces a longer reply with mixed content
(markdown, code blocks, tables). E.g. "Write a 500-word explanation
of how PostgreSQL handles MVCC, with a code example".
- Observe during streaming:
- Intel UHD GPU 3D-utilization climbs to ~99% and stays there for the
duration of the streaming.
- Task Manager → Details: claude.exe renderer process at ~50% CPU
and claude.exe gpu-process at ~50% CPU.
- In nvidia-smi, claude.exe never appears, NVIDIA stays in P8 idle.
- After the answer finishes, observe:
- Intel UHD GPU 3D drops to ~4% with occasional peaks.
- CPU usage of renderer + gpu-process drops back to single-digit %.
Reproduces consistently on every streaming response.
Things tried that did NOT change the behavior:
- Setting Claude.exe to "Höchstleistung / High performance (NVIDIA)" in
Windows Settings → System → Display → Graphics
- Adding Claude.exe as program profile in NVIDIA Control Panel with
"High-performance NVIDIA processor" preferred
- Full app restart (kill all claude.exe + tray icon + cowork-svc.exe,
then relaunch)
- Rolling back Intel UHD driver from 31.0.101.2141 (April 2026) to
the OEM version 27.20.100.8476 (mid 2020), and re-applying the
newer driver — both behave identically.
The only state change that does help is closing Claude Desktop entirely,
since iGPU load only spikes during active rendering.
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
Not applicable — this issue concerns Claude Desktop (MSIX, version 1.4758.0.0).
Platform
Other
Operating System
Windows
Terminal/Shell
PowerShell
Additional Information
_No response_
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗