Apple’s Subpixel Font Rendering is Bugged in Mac OS X

On September 20, 2006 I submitted the following Mac OS X bug report to Apple via the ADC Bug Reporter. The bug has to do with OS X’s subpixel font rendering, which is activated if the font smoothing style (in the Appearance prefs pane) is set to “Medium – best for Flat Panel.”

    The ATI X1900 XT video card supports screen rotation in the OS X Displays control panel. A Mac Pro was setup with an X1900, a 30″ Apple Cinema Display, and a rotated Samsung 1600×1200 DVI display.

    See a similar setup:

    http://pix.blakespot.com/view/computers/macpro/IMG_8822.JPG.html

    ‘Font smoothing style’ in the Appearance prefs pane is set to “Medium – best for Flat Panel.” This setting uses subpixeling, providing up to 3x the horizontal resolution of the screen’s native pixel width, etc. (More about sub-pixeling here: http://www.grc.com/cleartype.htm )

    Sub-pixeling depends upon the orientation of the RGB elements of each sub-pixel cluster that makes up a pixel. When a screen is rotated 90-degrees, the RGB “stripes” run horizontal, not vertical. As can be seen from the below images, where the first image (“broken”) shows the rotated Samsung and the second image (“proper”) shows the standard orientation Apple Cinema 30″, OS X’s sub-pixeling does NOT take into account the new orientation of the sub-pixel clusters, resulting in a rather bold and crude rendering of text on the rotated first (“broken”) image:

    http://pix.blakespot.com/view/computers/screenshots/osx_subpixel_bug/broken.jpg.html

    http://pix.blakespot.com/view/computers/screenshots/osx_subpixel_bug/proper.jpg.html

    Apple needs to correct this so that people don’t have to abandon sub-pixeling and use ‘Standard’ (greyscale) anti-aliasing. Microsoft takes sub-pixel cluster orientation into account with Windows Mobile (CE) on the Pocket PC’s. Surely Apple can get this working with rotated screens under OS X.

    Thanks. I’ve encountered, so far, one other user complaining about this issue.

I just checked the status of the big report (Problem ID 4740732, for any Mac OS X core developers at Apple reading this) and I find it’s still “Open,” which means it’s unlikely to be addressed in Leopard – the initial release, anyway. Even just the option of selecting a different font smoothing method for each screen would be a win, here.

Apple, please address this.

This entry was posted in Macintosh. Bookmark the permalink.

13 Responses to Apple’s Subpixel Font Rendering is Bugged in Mac OS X

  1. Sandy says:

    With the iPhone supporting screen rotation “on the fly”, it seems to me that they should look into that asap!

  2. DWalla says:

    Yeah….. they need to fix this for all 9 users that actually rotate their screens.

  3. Chris says:

    That doesn’t necessarily mean they haven’t addressed it for Leopard. It could, instead, mean one of two things:

    1. They are ignoring your version of the bug entirely, but have another bug. This happens on occasion. The low-level Unix groups within Apple seem to be worse at managing their bugs than other groups. I don’t know if the graphics group also has that problem.

    2. You are not a developer and/or do not have a legal Leopard seed, and therefore they won’t send the bug back to you to verify until Leopard is actually available. Apple has a policy of leaving bugs open until you are able to verify the fix. (If you do have the latest seed Leopard, they still might have it fixed internally in a later internal version.)

    Or, yes, it could still be unfixed.

    To be clear, I’m _not_ saying you shouldn’t call attention to the problem. More sunshine is almost always better. I’m just saying you can’t jump to the conclusion that Leopard doesn’t have it fixed based on the evidence you’re presenting here. Apple’s bug fixing process is not sufficiently transparent to permit you that luxury.

  4. Chris says:

    Clarification, I should have used preview:

    “Apple has a policy of leaving bugs open until you are able to verify the fix.” should read “Apple has a policy of leaving bugs open until you have the version of the software you need to verify the fix.” Whether they leave the bug open or not until you _do_ verify the bug appears to differ between the different implementation groups, in my recent experience.

  5. Terry says:

    How is this a bug? Has Apple said they support screen rotation? Just because your monitor does this doesn’t mean Apple supports it. By the way I use “Strong” on my iMac as Apples Font rendering is the one thing inferior to Windows.

  6. Nate says:

    While Windows CE can deal with this you fail to mention that both XP and Vista have this same problem.

  7. blakespot says:

    Terry, it is a bug in that OS X does support screen rotation but with “best for Flat Panel” font smoothing selected, the fonts rendered on the rotated screen are obscured with a haze of colored pixels. This makes the characters hard to read, as opposed to easier to reaad. Given this, Apple’s support of screen rotation or of font smoothing (call it which you like) is “broken.”

    Nate, yes, I noted font smoothing working fine with screen rotation on my old Compaq iPaq Pocket PC under CE. I had assumed that XP and Vista handled rotation properly, given CE’s correct functionality. I was unaware that they didn’t handle it correctly, either.

  8. Gerard says:

    “How is this a bug?”

    Yes, Apple said they support screen rotation in two ways:

    1. The Display preference panel has an option for rotating your display without, as I recall, installing 3rd party software.

    2. Apple’s Aperture program directly supports rotates screens for portrait oriented images.

  9. blakespot says:

    Indeed, I’ve just verified here in XP that rotating the screen (using NVRotate, part of my the drivers for my GeForce 6600 in the PC at my office desk) with ClearType on does indeed exhibit the same problem that I’ve found in OS X.

  10. Alex Dawson says:

    And how do you propose Apple fix it? It looks weird because the “sub pixel” rendering is done by chosing a color that matches up to having the sub-pixels set to the right values.. If you rotate, the sub-pixels are in a different order, top to bottom, instead of side to side..

    If you physically rotate the screen, without rotating it in software, it’ll look similarly bad. I’d long written this off as an unsolvable problem.

  11. blakespot says:

    Alex, I would suggest they address it the same way that Windows CE addressed it on the Pocket PCs: perform the subpixel smoothing on each character vertically, rather than horizontally.

    With standard (non-rotated) subpixeling, when rendering fonts on a 1024×768 screen, the effective font resolution is tripled horizontally to 3072×768. That same screen rotated would have a resolution of 768×1024. With subpixel smoothing, the effective font resolution would be 768×3072 – triple on the vertical.

    I feel that letters smoothed in this rotated fashion would appear to the eye less smooth than in the non-rotated fashion (I think we benefit more from smoothing along the horizontal), but at least it _would_ provide smoothing and would _not_ obscure the characters in a pointless haze of colored pixels.

  12. ssp says:

    What may make this difficult to fix is that you can only have a single way of smoothing fonts for all screens. (Because you can potentially have a window that displays on two screens at the same time or you can move a window between screens and its contents aren’t redrawn when doing that)

    So I am not sure you can really fix this and in case you are using two displays with different pixel orientations, you will have to settle for a compromise (most likely text rendering which doesn’t use a subpixel technique). [Any idea how Windows CE handles situations where multiple screens of varying orientations are attached? It can’t? Ah well…]

    It might be interesting to test what happens when you attach the rotated display _only_. In that case it should be easier to fix the problem. And you could pinpoint the bug more clearly in that situation because the excuse of having to keep in mind the screen spanning setup doesn’t exist anymore.

  13. blakespot says:

    I have just verified that Mac OS X Leopard does not fix this bug. How about just dropping to “greyscale” anti-aliasing on any rotated display when “best for LCD” is selected, Apple? How ’bout it?

    Argh!

Leave a Reply

Your email address will not be published. Required fields are marked *