How to See DPI Awareness of Running Apps in Task Manager in Windows 10


Dots per inch (DPI) is the physical measurement of number of pixels in a linear inch of a display. DPI is a function of display resolution and size; a higher resolution or a smaller size will lead to higher DPI, and a lower resolution or a larger size will lead to lower DPI. When a display has a higher DPI, pixels are smaller and closer together, so that the user interface (UI) and other displayed content appears smaller than intended.

Starting with Windows 10 build 18262, Microsoft added a new optional DPI Awareness column to the Details tab of Task Manager to know which of your running apps is DPI Aware.

High DPI Desktop Application Development on Windows | Microsoft Docs

One of the first concepts to be aware of when updating a desktop application to properly DPI scale is that desktop applications must tell Windows what level of DPI scaling they support. Desktop applications can run under multiple DPI awareness modes (by default, desktop applications are completely DPI unaware and are bitmap-stretched by Windows). By running under these modes, applications tell Windows how they do or not handle DPI scaling. When the display scale factor of the display that a desktop application is rendering on changes, the behavior that the application exhibits depends on the DPI awareness mode that the application is running under.

Below is a list of the different DPI awareness modes that Windows supports:

DPI Unaware
DPI unaware applications render as if the screen that they are on has a DPI value of 96. Whenever these applications are run on a screen with a display scale greater than 100% (> 96 DPI), Windows will stretch the application bitmap to the expected physical size, although this results in the application being blurry.

System DPI Awareness
Desktop applications that are system DPI aware typically detect the DPI of the primary connected monitor on startup. During initialization, they layout their UI appropriately (sizing controls, choosing font sizes, loading assets, etc.) for that single DPI. System DPI-aware applications are not DPI scaled by Windows (bitmap stretched) on the primary display (unless the display scale factor changes while the application is running). When the application is moved to a display with a different scale factor (or the display scale factor otherwise changes), Windows will bitmap stretch the application bitmap, which can result in it being blurry. Effectively, System-DPI-aware desktop applications only render correctly at a single display scale factor and become blurry whenever the DPI changes.

Per-Monitor and Per-Monitor (V2) DPI Awareness
It is recommended that desktop applications are updated to use per-monitor DPI awareness mode in order to render correctly whenever the DPI of the display that they re running on changes. When an application reports to Windows that it wants to run in this mode, Windows will step out of the way and not bitmap stretch the application when the DPI changes. It is completely the application s responsibility to handle resizing itself for the new DPI. The reason that work is required here, by the application, is that most UI frameworks that desktop application use (Windows common controls (comctl32), Windows Forms, Windows Presentation Framework, etc.) do not support automatic DPI scaling by default.

There are two versions of Per-Monitor awareness that an application can register itself as: version 1 and version 2 (PMv2). Registering a process as running in PMv2 awareness mode results in:
  1. The application being notified when the DPI changes (both the top-level and child HWNDs)
  2. The application seeing the raw pixels of each display
  3. The application never being DPI scaled by Windows
  4. Non-client area (caption bar, scroll bars, etc.) automatically being DPI scaled by Windows
  5. Win32 dialogs (from CreateDialog) automatically DPI scaled by Windows
  6. Theme-drawn bitmap assets in common controls (checkboxes, button backgrounds, etc.) being automatically rendered at the appropriate DPI scale factor

When running in Per-Monitor V2 Awareness mode, applications are notified when their DPI has changed. If an application does not resize itself for the new DPI, the application UI will appear too small or too large (depending on the difference in the previous and new DPI values).

This tutorial will show you how find out the DPI Awareness per process in Task Manager to know which of your running apps is DPI Aware in Windows 10.



Here's How:

1. Open Task Manager in more details view.

2. Click/tap on the Details tab. (see screenshots below)

3. If you haven't already, you will need to add the DPI Awareness column. (see screenshots below)

A) Right click or press and hold on a column detail name, and click/tap on Select columns.

B) Check the DPI Awareness box, and click/tap on OK.

Name:  Task_Manager_DPI_Awareness-1.jpg
Views: 610
Size:  97.8 KB Name:  Task_Manager_DPI_Awareness-2.png
Views: 594
Size:  20.2 KB

4. You will now see the DPI Awareness mode of all your running apps. (see screenshots below)

The table below shows how applications will render under different scenarios:

DPI Awareness Mode Windows Version Introduced Application's view of DPI Behavior on DPI change
Unaware N/A All displays are 96 DPI Bitmap-stretching (blurry)
System Vista All displays have the same DPI (the DPI of the primary display at the time the Windows session was started) Bitmap-stretching (blurry)
Per-Monitor 8.1 The DPI of the display that the application window is primarily located on
  • Top-level HWND is notified of DPI change
  • No DPI scaling of any UI elements.
Per-Monitor V2 Windows 10 Creators Update (1703) The DPI of the display that the application window is primarily located on
  • Top-level and child HWNDs are notified of DPI change

Automatic DPI scaling of:
  • Non-client area
  • Theme-drawn bitmaps in common controls (comctl32 V6)
  • Dialogs (CreateDialog*)

Name:  Task_Manager_DPI_Awareness-3.jpg
Views: 638
Size:  134.6 KB Name:  Task_Manager_DPI_Awareness-4.jpg
Views: 602
Size:  104.4 KB


That's it,
Shawn