Final Words

Windows has always had the burden of bringing forward legacy APIs and code to allow applications designed for previous versions to continue to operate on newer releases. It also supports a huge number of display sizes, screen resolutions, and form factors. Because of this, it often struggles when major changes are introduced. One such change was the new security model in Windows Vista where (finally) users were no longer administrators by default, and another such change is ultra-high resolution displays with the different goal of improving image quality rather than just increasing usable real estate on the desktop.

Windows 8.1 now officially has three different states for applications: DPI-Unaware, System DPI-Aware, and Per-Monitor DPI-Aware, and solutions are in place to handle all three. It also has a fourth unofficial state: DPI-Unaware masquerading as DPI-Aware applications. Unfortunately there is no current solution for these unofficial applications.

One interim solution would be to have a way to force such applications to scale up, and therefore ignore the DPI-aware flag set in the executable. This would allow DPI Virtualization to scale the applications as needed. This is certainly not ideal, but when you are dealing with a product like Windows with such an enormous catalog of applications, it’s necessary because many of these applications will never be updated to correct scaling issues. The correct solution is to have applications updated to take advantage of the High DPI systems to provide a better user experience, but again this doesn’t really work for legacy applications.

One of the problems holding developers back is that there have been few high resolution devices on the market, meaning few developers would even bother taking the time to correct these issues. Now that there are finally devices from virtually every single computer maker with high PPI panels, there is a market force that will hopefully pressure developers into using best coding practices for scaling DPI.

But what about the current state of things –is it worth avoiding High DPI devices until more applications work properly? My personal experience is no, it’s not worth avoiding them. This will of course depend on what applications you use, but the advantage of a high resolution display is that you can always set the resolution lower if necessary as a workaround on applications like Photoshop. The advantage is that in other applications, you can get very crisp, clear text and a fantastic display for media. Within the next year, I would imagine most major Win32 applications that are actively being developed will have to address these issues. When Apple launched the Retina MacBooks, its catalog of applications took some time to be updated; as that happens for Windows applications, the investment in a High DPI system will make even more sense.

The final piece of the puzzle is the next iteration of Windows. Already shown at BUILD were Modern apps running in a windowed mode on the desktop. These apps will of course have no issues scaling with DPI, providing the ideal “one size fits all” approach to DPI scaling. Figuring out a similar solution for legacy applications on the desktop may be a bit more difficult, but it’s certainly something Microsoft is working to address. Time will tell how well they manage to do so.

Sources:

http://blogs.windows.com/windows/b/extremewindows/archive/2013/07/15/windows-8-1-dpi-scaling-enhancements.aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/dd464659(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/dn469266(v=vs.85).aspx

Windows 8.1 DPI Changes
POST A COMMENT

114 Comments

View All Comments

  • inighthawki - Tuesday, April 15, 2014 - link

    I take it you're not a developer? Or else you'd understand at large companies you have a set of tasks, a time limit, and you have to cut certain features and prioritize them to customer needs. In Adobe's case, maybe, despite what you may think, their research showed that few people needed a high DPI UI, so resources were spent on other features first. Reply
  • npaladin2000 - Tuesday, April 15, 2014 - link

    Yes I am a developer, working for a large multinational ecommerce provider. And I just said exactly what you did only I was much coarser and simpler in my language in the hopes that it will penetrate some of the thicker skulls out there. But the bottom line is that you apply hours to the features that are either functionally required, contractually required, or will actually be used. If something's unlikely to be used or isn't a specifically requested feature, it's not going to get resources spent on it. Why would you? That would essentially be throwing away money. Those hours could be spent on something else that will actually generate revenue instead. Reply
  • Murloc - Tuesday, April 15, 2014 - link

    he was answering to eddman, not you, look at the comment indentation. Reply
  • inighthawki - Tuesday, April 15, 2014 - link

    I was replying to eddman. Anandtech's comments section could use a small upgrade. After like 4 levels of replies it's impossible to tell who is replying to whom. Reply
  • JDG1980 - Tuesday, April 15, 2014 - link

    You're missing the point. You have to *actively do something wrong* for DPI scaling to not work properly. The standard guidelines for Windows API programming have included support for HiDPI for years. If you don't have time to program your own custom controls that support HiDPI, then use the standard controls. If you have time to reinvent the wheel for your project, then you have time to do it right. Reply
  • Gigaplex - Wednesday, April 16, 2014 - link

    "If you have time to reinvent the wheel for your project, then you have time to do it right."

    I wish this was true, however it's not. As deadlines loom, you do whatever you need to in order to get it to work. It would be nice to use standard controls for everything, but they aren't flexible enough for that.
    Reply
  • darthrevan13 - Wednesday, April 16, 2014 - link

    Then why set the flag to true? So that there would be more problems? Reply
  • Zoomer - Monday, April 21, 2014 - link

    Same issue with VLC - fidelity in rendering the work is essential. Small UI vs your artwork rendered wrong - not hard to see what customers will choose. Many pros already memorized the keyboard shortcuts anyway. Reply
  • twtech - Tuesday, April 15, 2014 - link

    If you are ever involved with software development, one of the things you will learn is that there is always more to do, and there will always be more to do than you can ever get done. So you must prioritize what you're going to work on.

    If you want to devote the time to DPI scaling, that means something else that you could be doing is not going to get done. When most displays were all roughly around the same PPI, it just didn't make sense to prioritize DPI scaling highly relative to other work.
    Reply
  • phoenix_rizzen - Tuesday, April 15, 2014 - link

    Yeah. Everyone seems to forget that before LCDs took over and relegated us to a wasteland of 720p and 1080p panels, hi-resolution and hi-dpi monitors were commonplace. 1600x1200 was common in the 90s, and usually under/around 20". 1280x1024 was even more common at 14-17".

    Don't feel like doing the math on those, but they should be over 100 DPI.
    Reply

Log in

Don't have an account? Sign up now