9

See Video Demo at: vimeo.com/155636855

I've grappled with this issue for too long--now I would love some outside help.

* This has nothing to do with VM technology--see added note at end of post *

The attached image contains a side-by-side image of a WordPad file with text representing all letters in the alphabet, lower- and upper-case. The image on the left was taken from a Windows 10 virtual machine (the "guest" OS)running on a Windows 10 host (the "host" OS); the image on the right was taken from the Windows host:

enter image description here

Enlarge the image and take a good look at the differences around the edges of each letter: The left is much smoother than the right--and in case you are tempted to jump to a quick conclusion, CLEARTYPE IS NOT THE ISSUE (see points below), at least not from an "on" versus "off" perspective (in other words, a registry setting related to ClearType might be involved, but nothing on the Windows UI related to ClearType is causing this because both machines are calibrated for ClearType and ClearType is ON on both host and guest machines).

Facts:


Both OS's are using the same Myriad font TrueType (TTF) font file

Both OS's are set to the same screen resolution.

I thought this was a Windows video-driver issue, but I have the latest nVidia driver and I'm running a relatively high-end GeForce GTX 560 card with DirectX 12 on both host and guest.

Both WordPad files are using the same font, font size, font style, and zoom (100%).

Both Windows 10 OS's are fully updated using Windows Update.

ClearType is active (on) on both the Windows host as well as in the virtual machine. I've tried various combinations of ClearType (turning it off on the host and turning it off on the guest, and all other combinations) and there is no change to the rough-edge artifact displayed on the host compared to the guest.

I am not aware of any DPI differences between the guest and host. Other fonts, such as the Windows-included Arial font, show similar rough-edge issues only on the host--I just chose Myriad Pro to illustrate the problem.

The color of both fonts is 100% BLACK (#000).

This issue appears in ALL applications that can render TrueType fonts. I used WordPad just as an example, but it happens in Microsoft PowerPoint and TechSmith's Camtasia as well.

This issue is not related to TrueType fonts; it happens for OTF fonts as well.

And, for what it's worth, it doesn't matter if I view the host from another computer through a remote-desktop session (RDP) or using something like TeamViewer; also, the behavior of the guest doesn't change when I use RDP or TeamViewer.


Clearly something is awry with the font-rendering subsystem on the host. Interestingly, the host was a Windows 7 Ultimate machine until about a week ago (early Feb 2016), when I upgraded it by installing Windows 10 Enterprise. I had hoped that doing such an upgrade from Windows 7 to Windows 10 would fix the font-rendering issue especially because I already saw that Windows 10 running in a virtual machine on the same host did not have the font-rendering issue. Unfortunately, the update to Windows 10 did not fix the font-rendering (I did not do a fresh Windows 10 install--I did the update that preserves the previous OS files and settings).

Due to everything I wrote above, I suspect there is some corrupted, missing, or incorrect value in the registry related to font-rendering for the host OS--but what could that be?

* Added 2/12/2016 * I took a brand-new hard drive and installed a clean Windows 10 instance onto the same hardware on which the "host" I refer to above is running. The new Windows 10 instance has smooth fonts, just like the virtual machine (VM) instance of Windows 10. This tells me that the hardware of the machine is not causing the problem to generate the image on the right and that the VM (or virtualization technology) is not the reason for the disparity. I now have hard drive A with Windows 10 on a physical machine I can boot into and see the image on the right; I have a second hard drive B with Windows 10 on the same machine I can boot into to show the image on the left.

I then wiped that new hard drive and installed Windows 7 Ultimate from Microsoft source Setup DVD. It also renders the image at the LEFT (the correct, smooth fonts). So the problem is not that Windows 7 has the issue on my hardware and that Windows 10 doesn't correct it--it's clear to me now that Windows 7 does not show the font issue on my hardware if I reinstall Windows 7.

So, virtualization aside--it appears that I am witnessing some sort of corruption in the font-rendering subsystem between my existing host machine and a "normal" Windows 7/10 machine (remember, my existing host machine was upgraded from Windows 7 Ultimate to Windows 10 Enterprise and the problem did exist in Windows 7 Ultimate before I did the upgrade; in fact, I was hoping the upgrade would fix this issue--alas, it did not).

I will try to look/compare key registry entries for disparities in my free time but I'm still eager to hear from any experts who might help me zero-in on the root cause.

  • what VM software? – Yorik Feb 11 '16 at 22:52
  • 1
    The guest is a VMWare 12 Workstation virtual machine but I have also run it under HyperV. – Jazimov Feb 11 '16 at 23:09
  • I know that Word renders at about 300dpi internally and then down-samples for display. The host version in your image looks like it was rendered at a lower DPI setting. Not sure why. I don't know a ton about the font rendering in Windows 10, but it looks to me like they did away with subpixel rendering in favor of greyscale AA, since subpixel rendering has an orientation and that is not useful for mobile, rotatable devices. If I had to guess, I would say that the problem rests in how the Guest VM virtual video hardware presents to the OS. – Yorik Feb 12 '16 at 15:27
  • This is not a VM issue (see my added notes), but that was a reasonable guess. You might be on to something when you speak of DPI, but your ideas/theories unfortunately don't apply to my setup. Also, this is not a "new Windows 10 way of doing things" issue either. Note that both machines are Windows 10 machines--and my new comment proves that Windows 10 behaves differently even on the same physical machine... When I said I've been grappling with this, I meant that! :) – Jazimov Feb 12 '16 at 17:25
  • are you connected via HDMI? Check your video card setting for an overdraw adjustment and disable? IIRC Radeon cards default to this enabled over HDMI and it scales away from native – Yorik Feb 12 '16 at 17:58
2
+50

I never noticed that ClearType fonts rendering works so bad on big font size... but on my Win10 it's the same as on your computer.

The behavior you describe, in my opinion, it's not a bug... it's a feature :-)

Take a look at the following images:

Image 1: ClearType rendering is ON (click on image to see it better)

ClearType rendering ON

When ClearType is ON, Windows font rendering engine try to optimize the font rendering by taking advantace of the LCD R/G/B subpixel. If you check the magnified image on the left, you can see that each font have bluish/reddish smoothing, this is due to the LCD subpixel structure (more info on subpixel rendering here).
But, as you noted, this works bad on big font size.
But it still works very good on small font size.

Image 2: ClearType rendering is OFF (click on image to see it better) enter image description here

If you turn off ClearType rendering, then Windows font rendering engine will stop taking advantage of the LCD subpixel structure, and now the font will have a simple gray smoothing (instead that the bluish/reddish smoothing).
This works better on big font size... but works very bad on small fonts size, as you can check by looking at filename rendering, menu renderng and so on...

Now, the fact that on your guest PC the font rendering seem better, is probably due to the fact that the ClearType subpixel font rendering is enabled only when Windows detect a physical LCD screen. If the virtual pc don't detect a physical LCD, it will probably use the "standard" (grayscale) font smoothing.

Now you could try to force Windows to use the "standard/grayscale" font smoothing, instead that the Cleartype/subpixel smoothing, but on my computer it didn't make any difference: force the grayscale smoothing give the same result as disabling Cleartype from control panel. (More info here on registry hacks to try to tweak Cleartype rendering)

  • Great feedback--and possibly the right answer. Before accepting, I'm admittedly perplexed as to why a new instance of Windows 10 on my host did not detect the LCD and then use subpixel antialiasing (unless the default video driver Microsoft selects for a new Windows 10 instance does something different from the driver I installed for my Windows 7 instance that I later upgraded to Windows 10)... I will experiment with the VM to see if I can force subpixel versus grayscale rendering--and I'll also experiment with the host and I'll post again soon. – Jazimov Feb 18 '16 at 22:36
  • @Jazimov monitor detection is made by Windows trough the video card, so the video card driver could surely have an impact about how the monitor is detected by Windows. – Max Feb 18 '16 at 22:44
  • So what is the "right" way to run a system when using LCD displays? If ClearType is off, you lose small-font rendering improvements; if it's on, you lose large-font rendering improvements... What to do? – Jazimov Feb 18 '16 at 22:44
  • @Jazimov probably there is no solution... I keep cleartype ebabled because I usually work with small fonts, but it's just me. I never noticed the cleartype rendering issue on big fonts before reading your post 2 hours ago (I'm a software developer, and I spend at least 11/12 hours at PC each day... ) – Max Feb 18 '16 at 22:55
  • I'll still do some tweaking to see what I come up with. Many people think you need to keep ClearType on in order to get acceptable smaller text, but even if you uncheck it using the ClearType tuner's first page, you still can go through the tune-up process to calibrate your display. That might be the best solution: ClearType OFF, displays calibrated. – Jazimov Feb 18 '16 at 23:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.