High DPI and scaling: why remote desktop and old apps look blurry
How per-monitor DPI awareness works, why legacy apps blur at 150%, and the fixes that do and do not help.
- Build
- 26300.9457 / 26100.33650
- Edition
- Pro (26H2) / Server
- Architecture
- x64
- Support
- Documentation (E1)
- Evidence
- E1Official documentation
- Verified
- 2026-10-29
- Page type
- Troubleshoot
The short answer
Section titled “The short answer”Blurry text at 125–200% scaling is almost always an application that is not per-monitor DPI aware. Windows has two options for such an app:
- Bitmap stretch (System DPI aware): the app renders at 100% and Windows scales the bitmap → blurry.
- System scaling (DPI unaware): the app is rendered at a virtual 96 DPI and scaled → blurry, plus layout problems.
The fix is on the app’s side (DPI awareness) or in the compatibility override — not in a Windows tweak.
What “aware” means
Section titled “What “aware” means”| Mode | Behaviour |
|---|---|
| DPI unaware | Windows virtualises DPI; everything is bitmap-scaled |
| System DPI aware | renders at the primary monitor’s DPI; blurry on a different-DPI monitor |
| Per-monitor aware (v1) | re-renders when moved between monitors; may have layout bugs |
| Per-monitor v2 | full re-layout, correct non-client area |
Windows 10/11 defaults to per-monitor v2 for its own UI. Third-party apps vary wildly, and old line-of-business apps are often DPI unaware.
Diagnose one app
Section titled “Diagnose one app”- Move the window to the monitor whose scaling is different. Blur appears only after the move → system-DPI-aware or unaware.
- Right-click the app → Properties → Compatibility → Change high DPI settings.
- Try Override high DPI scaling behaviour → Application.
- If that fixes it, the app is DPI aware and Windows was overriding it.
- If it makes the UI tiny, the app is DPI unaware and there is no perfect fix.
The compatibility override is per-user and per-app; it is a workaround, not a repair.
Remote Desktop is a separate chain
Section titled “Remote Desktop is a separate chain”RDP blurring has different causes:
- Display scaling on the client vs session resolution;
- the Remote Desktop client’s “Optimise for low-speed connections” reducing quality;
- smart sizing stretching the session image;
- multi-monitor sessions where monitors have different DPI.
Fixes that actually work:
- set the session resolution to match the client’s native resolution;
- enable Use all my monitors where supported;
- use the modern Windows App client, which handles DPI better than the legacy MSTSC in mixed-DPI setups;
- disable bitmap caching/presentation quality reductions for LAN sessions.
Servers and console sessions
Section titled “Servers and console sessions”On Windows Server, DPI is usually irrelevant — but two cases matter:
- Remote administration tools scaled on a high-DPI laptop look tiny/blurry; set per-app compatibility rather than lowering the whole desktop’s scaling.
- Console session on a physical KVM with a 4K display may default to 100% and unreadable text. Set scaling for that session; it does not affect RDP users.
Check the current state
Section titled “Check the current state”# per-monitor DPI and resolutionGet-CimInstance Win32_VideoController | Select-Object Name,CurrentHorizontalResolution,CurrentVerticalResolutionGet-CimInstance -Namespace root\wmi -ClassName WmiMonitorBasicDisplayParams | Select-Object InstanceName,MaxHorizontalImageSize,MaxVerticalImageSizeWindows does not expose a supported “app X is DPI aware” field; the compatibility tab and the app’s manifest are the sources of truth.
When the app cannot be fixed
Section titled “When the app cannot be fixed”- Use the compatibility override and accept slightly soft text.
- Check whether the vendor has a newer build with DPI awareness.
- For internal tools, the manifest setting
dpiAwareness = PerMonitorV2is the real fix.
Related
Section titled “Related”Lab boundary
Section titled “Lab boundary”E1. DPI modes are documented by Microsoft. The lab’s virtual display runs at standard scaling, so no mixed-DPI reproduction was captured.