Windows 8 Has Scaling Issues On High-PPI Displays
crookedvulture writes "High-PPI displays are becoming increasingly popular on tablets and notebooks, but Windows 8 may not be ready for them. On a 13" notebook display with a 1080p resolution, the RTM version of Win8 scales up some desktop UI elements nicely. However, there are serious issues with Metro, which produces tiles and text that are either too small or too large depending on the PPI setting used. That setting, by the way, is a simple on/off switch that tells the OS to 'make everything bigger.' Web browsing is particularly problematic, with Internet Explorer 10 introducing ugly rendering artifacts when scaling pages in both Metro and desktop modes. Clearly, there's work to be done on the OS side to properly support higher pixel densities."
What? Haven't figured this one out, Ballmer?
Bet it renders just fine on the "Surface" tablets.
"Flyin' in just a sweet place,
Never been known to fail..."
Did the MS product mgmt, engineering and test orgs not think to try this out on a standard desktop machine with the high res monitors pretty much everyone uses these days? Incomprehensible!
...that MS has been one of the first to do the "device-independent drawing stuff" with GDI, and yet twenty years later, there's still no working device-independent UI from them.
Ezekiel 23:20
I once worked on hardware rendering with a webkit-based browser, and these kind of issues are very common when you're converting between floating-point layout coordinate and integer screen space.
Some rendering pipelines make it harder than others to deal with, especially if you can't control the behaviour of non-integer pixels at the edge of images. To fix it, you have to visit all the conversion sites and decide how you want to handle the conversion. It gets especially tricky if you're scaling and stitching images together that you've uploaded as multiple textures to get around maximum texture size issues. Concatenated transformations through composition layers can be tricky too depending on what your graphics API does.
I blame apple...if the wouldn't have released those retina displays high-PPI displays would have never come and windows 8 would have been a huge success. Apple can you not leave Microsoft in peace for one second?!
Good thing that Microsoft goes out of their way to force windows 8 users to use metro! You'll use it, and by Balmer's sweaty pit stains you'll like it!
One of the arguments to leave XP behind is that it can't work at all beyond 100 DPI or the apps will break. I assumed Windows 8 Modern UI took care of this? This issue alone made me weary of a macbook as 200 DPI will not run so great in bootcamp with Windows with most of the apps all misrendered.
100 DPI is so ancient and it is time to get rid of it. The fact that Windows 8 has mostly but not 100% got rid of it is problematic. Lets hope Windows 9 fixes this or at least a service pack in win 8.
Not a biggie in 2012 but in 2016 1080p will be the next 1024 x 768.
http://saveie6.com/
I don't know why it has taken Windows so long to handle high-ppi displays. I don't want the text and icons smaller, I want them the same size, only higher definition.
Releases of new operating systems come with a large number of bugs, and that goes with the territory. In general, users are understanding and patient.
But these seem like alpha level bugs that should have been stomped out ages ago.
1080p displays are hardly unusual or non-standard. This does not bode well...
------ The best brain training is now totally free : )
This is not a Windows issue but rather the way that developers support High DPI in their apps.
Way too many developers are still using MFC and Win32 for UI development, which has no concept of High-DPI and requires scaling to be done manually. If the app doesn't even poll for the current DPI of the OS then nothing is going to scale correctly using those antiquated API's.
WPF automatically adjusts controls to the DPI settings of the OS, however if you don't use vector paths to render UI elements you might see an ugly bitmap stretch here and there. Haven't fully investigated Windows RT (the framework, not the tablet), but I am sure DPI awareness is also a fundamental part of its presentation framework. If a developer throws a 16x16 icon into an app resource, you are going to get and ugly scale.
When it comes to web pages then its anyone's guess how the web designer will support high DPI. Web pages are still mostly a bunch of static jpg's so scaling up something that looks like a line on regular DPI settings, only to see it smear and blur into a bar as shown in the article is purely the fault of the web page designer.
I do agree that as a whole Microsoft needs to do a little better job supporting High DPI across their API's, but most of what this article mentions comes from poor app/web design more then anything.
I haven't thought of anything clever to put here, but then again most of you haven't either.
Windows has contained high-PPI support for YEARS already.
I come here to see stories about Australia! Don't the /. editors understand just how much my needy and fragile psyche depends upon believing that Americans are eagerly reading about my country?
I can't believe modern devices still don't support resolution independent layout, especially on tablets. All they would have to do is design displays to send their ppi as well as their resolution to the computer, then change the operating system to make that data available programs.
Honestly Android is the only OS I've seen that elegantly handles scaling to higher resolutions and varying aspect ratios. Hell, the SDK itself gives you many options to make sure your app scales well.
Owning an ipad 2 myself, I can say that iphone apps scale horribly to ipad, and apple themselves even had a blunder when they changed aspect ratios (lol letterbox phone.) It's no mystery why when they increased the resolution on the ipad 3, they had to evenly multiply from 1072x768.
Any competent mobile OS should be able to handle this. In todays world of very high resolution displays, desktop ones should as well. When microsoft decided "let's make windows work for mobile platforms" and created metro, they should have taken this into consideration, yet oddly enough, they didn't.
Linux isn't much better though, in fact its worse in some ways in my experience. For some reason I always run into major problems with font scaling in x11.
Careful with names containing L slashdot.org/~AiphaWolf_HK slashdot.org/~AlphaWoif_HK slashdot.org/~AiphaWoif_HK
there was only one true screen resolution: 640 x 480
Back then the only thing you had to worry about was whether to support 256 colors or stick with 16.
IMO MS needs to make windows 8 a great product to succeed as a corporation in the coming years. I don't think they get that.
My sig doesn't address Anons, sigs aren't visible to them.
No steenkin Windoze 8 in Retina iPads, iPhones or MacBook Pros!
Steve rests blissfully in peace.
The Metro APIs were designed for web front-end programmers, not people who write for real GUI toolkits. You can build quite competent Metro apps in HTML and Javascript, and if you reach any limits, your web shop could hire a third party to write a module in C# or C++ to work around it.
The API for web programmers includes also rules that that apps should be made for a finite set of fixed screen sizes. Not resolutions -- screen sizes. Metro was never designed to be scalable.
This is not only a Windows problem, though. MacOS X on Retina(tm) displays is just as bad, but there the OS draws everything twice as big to begin with and scales down if needed when compositing windows. Apple never cared about hinting anyway, so all controls and labels are just as fuzzy scaled to 125% as always.
"We mustn't be caught by surprise by our own advancing technology" -- Aldous Huxley
So Microsoft is being blamed for graphical limitations they had nothing to do with. From what I'm seeing the problem isn't that elements within the GUI are scaling poorly, it's that designers didn't account for the fact that some day someone might want to blow up their graphics on a much higher resolution display. It's ridiculous and unfair to blame Microsoft for this considering this would affect any high res display in any OS. What do you think happens when you run an iPhone 3 app on an iPad? By the logic displayed in this article that should also be Apple's fault.
Anyone with the most trivial experience in resizing photos will understand that this is an unavoidable problem. There's no practical way to fix it unless you rebuild the app to account for wildly varied resolutions. You could use vector art, but it's not a realistic solution for a lot of things. There's no elegant solution but hopefully the pixel density is high enough that these artifacts aren't all that obvious. This is one of those situations where it's on the third party developers can only fix the problem after it's arisen. Microsoft can't fix it for them.
Aside from the idea that I had a 1600x1200 display TWENTY YEARS AGO and since then WE'VE GONE BACKWARDS
You are so right there... I would not have believed 10 years ago that newer large monitors I bought would feature worse resolution. Yet that has been the case for years with monitors that align to 1080p...
Thankfully we are finally starting to break free and actually get more resolution at last, as with the Korean displays people have mentioned here... going to get one of those soon I think.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Owning an ipad 2 myself, I can say that iphone apps scale horribly to ipad
It's a simple 2x scaling, but it does have one redeeming aspect - if the images are larger than original size, you get more pixels.
It's no mystery why when they increased the resolution on the ipad 3, they had to evenly multiply from 1072x768.
They did not have to but it made everyone's life much simpler.
Apple themselves even had a blunder when they changed aspect ratios (lol letterbox phone.)
See? They didn't have to @2x new resolutions all the time. The iPhone 5 is proof of it. As for the aspect ratio changing, most apps needed only minor adjustments to auto-resizing rules. What people who claim iOS cannot handle different screen sizes well always forget is that the screen changes size every time you take a call, and the call status bar drops down... the iPhone 5 is just the display going the other direction in size, so the existing rules app developers already had in place mostly worked.
In iOS6 there is an amazing new API for Autolayout and a number of classes that let you do extremely complex non-linear layout, so to claim the OS cannot handle application scaling well is dramatically wrong.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
How is this described only as a Windows problem?
IE10 HAVE RENDER ISSUES ME NO BELIEVE.
I get that it's really hard to make a browser do everything right, but if you're going to push IE as such a major competitor to other browsers, maybe make it less of a steaming pile? The web browser is basically a commodity nowadays, drawing things right is just about the only thing that matters.
Ze Atomic Device! It iz Ztolen!
The issue comes into being most likely due to off-by-a-fraction errors when doing non-integer scaling of multiple elements.
One solution is just to get all your fractions right across the entire rendering pipeline. That is hard, and maybe impossible in some cases.
An easier solution is just to render to a canvas that is an integer multiple of the "base" or "expected" case, then finally apply a single scaling from that canvas to the display size at the last moment before the image is displayed.
For instance, let's say that software was developed for a 100 dpi display, and for a given device, that works out to a 1366x768 resolution (if its screen were 100 dpi). Now the screen is really 1920x1080, but that is not an integer multiple of 1366x768, so instead we render to a canvas that is 2x both dimensions: 2732x1536. The rendering here should be without any issues, since it's an integer multiple of 1366x768. From here, there are two paths to follow. If the display controller of the device can automatically scale 2732x1536 to 1920x1080, then let it do that. Otherwise, have the GPU scale the the canvas size to the display size, then display that. (Typically, the display controller can do a better job with multiple tap filters.)
Note that this requires extra rendering power and bandwidth vs. the first solution. However, that's what hardware is good at, right?
Note also that doing non-integer scaling will always result in what looks like "blurriness" around what would have otherwise been sharp pixel edges. This is not avoidable, really (unless you want really ugly results where some lines are fatter than others).
Large displays too. Look how much space Windows 8 wastes on a 20 inch monitor rendering overly large tiles. People with large monitors and mice and keyboards should be able to zoom out and see more tiles at once if they so wish.
Some things never seem to work right until Service Pack 3.
This latest version is still in alpha, right?
Windows 8 has worse problems to worry about than display. Take interoperability between architectures for example.
Bitmaps do not scale well and nothing can change that.
"However, there are serious issues with Metro" what a surprise that there's another reason not to like metro.
As the article mentions, scaling issues are in certain apps like Chrome or IE9. Windows 8 itself works great.
Press Win+D. Metro scaling problem solved.
In Windows 8 future I can see another Windows ME. :)
Half baked preemie that doesn't actually know what it wants to be when it grows older, if it grows older.