Windows 8.1 DPI Scaling Enhancements

4K display technology is here, and if you haven’t seen a 4K display in-person prepare to be blown away! With products like the 32” Sharp PN-K321 4K Ultra-HD display now hitting the US market you can now experience this technology for yourself. These 4K displays aren’t inexpensive, but if your budget permits they offer an amazing picture for professional work or even entertainment.



Windows 8.1 tri-mon setup from left: Samsung 23” full-HD, Samsung 27” WQHD, Sharp PN-K321 32” Ultra-HD

While high-resolution displays are amazing they also present some practical challenges. When you increase resolution you inherently decrease the size of each pixel (assuming same display size). By decreasing the size of each pixel the content shown on the display appears smaller. When display Dots-Per-Inch (DPI) gets sufficiently dense this “shrinking effect” can make content hard to see and UI targets difficult to click/tap.

Another challenge that is presented with the introduction of ultra-high resolution displays is dealing with multi-mon configurations with non-uniform DPI values. For example if you are running two 27” displays with one at full-HD and one at WQHD the content will not appear at the same scale when an app is moved from one display to the other. This is not an ideal user experience.

With the recent proliferation of high-DPI tablets, notebooks, and external displays these high-DPI and DPI scaling issues became an important consideration for Windows 8.1.

Windows 8.1 DPI scaling improvements are primarily focused on:

  • Optimizing the usability and readability of high-DPI displays
  • Providing a uniform experience multi-display systems
  • Empowering developers to optimize app-specific scaling based on display DPI


Optimizing for High-DPI in Windows 8.1


Sometimes facts and figures need some interpretation before they can be understood. If you’re comparing display DPI values between a phone, a tablet, and a desktop display you need to factor in viewing distance. As a quick exercise I calculated the “effective display DPI” values for my Nokia 920 phone and each of the displays in the tri-mon setup shown above. Here’s what I came up with when I calculated a “normalized 1-foot DPI value”:


It’s interesting to note that my Nokia 920 (held at 9”) has the same effective DPI as the 32” Sharp 4K display (viewed at 22”). You can’t see the pixels in either display at these distances. On Windows 7 and Windows 8 I’ve noticed that some UI is hard to see at this effective DPI. In addition to being hard to see, it can also be challenging to interact with UI when using a mouse.

In order to address these scale/DPI issues, in Window 8.1 the maximum DPI scaling value was increased from 150% to 200%. This additional scaling capability provides two distinct advantages for high-DPI displays on Windows 8.1:

  1. UI can scale larger which makes readability better and touch/mouse interactions easier.
  2. 200% scaling enables pixel-doubling for up-scaling which provides a clear and crisp appearance for images, graphics, and text.

For comparison, here’s what you would see in Windows 8 in the Display control panel under “Appearance and Personalization”:



In Windows 8.1 you can see here that DPI scaling goes up to 200%:



So on Window 8.1 your apps will run better on 4K and other high resolution displays. This is good news for anyone running ultra-high resolution displays on Windows. But what if you have a multi-mon setup?


Optimizing Multi-Mon DPI Scaling in Windows 8.1

If you are running a screen resolution of 1366x768 on a tablet, chances are that UI will look good at 100% DPI settings. But what about when you connect that tablet to an external high resolution display? In Windows 8 you can choose either 100% to optimize the UI on the tablet display or up to 150% to optimize the UI on the external display. You have to compromise.

Windows 8.1 takes care of this issue by supporting per-display DPI scaling. By default, Windows 8.1 will choose the optimum DPI scaling value for each display based on the value chosen for overall scaling in the control panel:



In order to illustrate this feature, I adjusted the screen resolution for each of the three displays connected to my Windows 8.1 preview system to exaggerate DPI scaling. This resulted in the following physical display DPI values:

  • 23” display: 64 DPI
  • 27” display: 81 DPI
  • 32” display: 140 DPI (native)

To show you how UI scales with this demo configuration, here’s a side-by-side view of the Calculator app side-by-side on each display using 100% scaling in the control panel:


Side-by-side overlapping monitor configuration to show relative scale of UI


Relative scale of calculator app with 100% scaling on all displays (close-up)

This single scaling factor yields different physical scaling of the UI as you can see in the above photo. With only one scaling factor for all displays you have to make a compromise. With the new Windows 8.1 per-display DPI scaling turned on things look different:


Relative scale of calculator app with automatic per-display DPI scaling (close-up)

If we overlay screenshots of these calc.exe app instances, we can see how they are scaled differently at the pixel level:



This translates to a much better user experience when you are running multiple displays with non-uniform physical DPI values. This behavior is automatic for desktop apps on Windows 8.1, but there are some cases where an app will require knowledge of DPI scaling so that app-specific scaling optimizations can be implemented. Windows 8.1 has an answer for that too!


Enabling Custom DPI-Scaling for Apps in Windows 8.1

There are a lot of things apps can do to optimize the user experience for DPI scaling. If we take a photo editing app as an example, there are some very important considerations. A photo editing app may want to scale UI elements like buttons and checkboxes, but not scale other content. If we consider the image viewing area of the app it may be critically important that that portion of the UI not be scaled. If the image viewing area of the app was automatically scaled to 200% you’d never be able to see your photo at native resolution because it would be pixel doubled. This could be a problem if the reason you bought that 4K display was to see more of your images at native resolution!

Windows 8.1 provides APIs for apps to know what the optimal scaling value is. If you were developing that photo editing app, you could scale the toolbars and chrome based on the optimal scaling value and leave the image viewing area at 100% scale. Perfect!

One example of an app that responds to DPI scaling in the Windows 8.1 Preview is IE 11. IE 11 uses the API to determine the optimal zoom level and adjusts it automatically.

Here’s a side by side view of IE 11 using the automatic zoom across the 3 displays used for this article:


IE auto-zoom at 100% zoom (left), 150% zoom (middle), 300% zoom (right)

Notice how IE fills with width of the browser when maximized on each display. If we view a screenshot of all displays we can see how differently IE is scaled at a pixel level:


Screenshot showing IE at 100% zoom (left), 150% zoom (middle), 300% zoom (right)

If you are running a high resolution display or an extreme multi-mon setup Windows 8.1 has some great improvements to look forward to. I hope you’ll try it out!Find me on twitter here: @GavinGear

aggbug.aspx

More...


See also: How to Change DPI Scaling Size for Displays in Windows 8.1
 
Now am I getting this right. . .you can change the DPI for each monitor not all of them at the same time as it is now. That would be great if you can.

It would be really nice if you were able to go smaller for some of the larger monitors, albeit you would probably need the Monitor's manufacture to issue new drivers. . .oh well we can dream.

Thanks Shawn. . .:geek:
 

My Computer

System One

  • OS
    Win 8, (VM win7, XP, Vista)
    Computer type
    PC/Desktop
    System Manufacturer/Model
    HP Pavilion p1423w
    CPU
    Intel Core i5 3330 Ivy Bridge
    Motherboard
    Foxconn - 2ADA Ivy Brige
    Memory
    16 GB 1066MHz DDR3
    Graphics Card(s)
    ATI Radeon HD 5450
    Sound Card
    HD Realteck (Onboard)
    Monitor(s) Displays
    Mitsubishi LED TV/Montior HD, Dell 23 HD, Hanspree 25" HD
    Screen Resolution
    Mit. 1980-1080, Dell 2048-115, Hanspree 1920-10802
    Hard Drives
    1 SanDisk 240Gig SSD, 2 Samsung 512Gig SSDs
    Case
    Tower
    Cooling
    Original (Fans)
    Keyboard
    Microsoft Keyboard 2000
    Mouse
    Microsoft Optical Mouse 5000
    Internet Speed
    1.3 (350 to 1024 if lucky)
    Browser
    Firefox 19.1
    Antivirus
    MSE-Defender
Hello Lee,

Sort of, but not like you are thinking. By default, Windows 8.1 will choose the optimum DPI scaling value for each display based on the value chosen for overall scaling in the control panel.

An example they give for per-display DPI is:

If you are running a screen resolution of 1366x768 on a tablet, chances are that UI will look good at 100% DPI settings. But what about when you connect that tablet to an external high resolution display? In Windows 8 you can choose either 100% to optimize the UI on the tablet display or up to 150% to optimize the UI on the external display. You have to compromise.

If you have say two identical displays, then the DPI will be the same anyways with per-display. Per-display is good for when you have multiple displays of different sizes to have their DPI scaled at the pixel level so that you won't have the same DPI size that looks good on one display, but not on the other. The per-display basically makes your different size displays align.
 

My Computer

System One

  • OS
    64-bit Windows 10
    Computer type
    PC/Desktop
    System Manufacturer/Model
    Custom self built
    CPU
    Intel i7-8700K OC'd to 5 GHz
    Motherboard
    ASUS ROG Maximus XI Formula Z390
    Memory
    64 GB (4x16GB) G.SKILL TridentZ RGB DDR4 3600 MHz (F4-3600C18D-32GTZR)
    Graphics Card(s)
    ASUS ROG-STRIX-GTX1080TI-O11G-GAMING
    Sound Card
    Integrated Digital Audio (S/PDIF)
    Monitor(s) Displays
    2 x Samsung Odyssey G7 27"
    Screen Resolution
    2560x1440
    Hard Drives
    1TB Samsung 990 PRO M.2,
    4TB Samsung 990 PRO PRO M.2,
    8TB WD MyCloudEX2Ultra NAS
    PSU
    OCZ Series Gold OCZZ1000M 1000W
    Case
    Thermaltake Core P3
    Cooling
    Corsair Hydro H115i
    Keyboard
    Logitech wireless K800
    Mouse
    Logitech MX Master 3
    Internet Speed
    1 Gb/s Download and 35 Mb/s Upload
    Browser
    Internet Explorer 11
    Antivirus
    Malwarebyte Anti-Malware Premium
    Other Info
    Logitech Z625 speaker system,
    Logitech BRIO 4K Pro webcam,
    HP Color LaserJet Pro MFP M477fdn,
    APC SMART-UPS RT 1000 XL - SURT1000XLI,
    Galaxy S23 Plus phone
Back
Top