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.

Jazimov
  • 337
  • 2
  • 6
  • 17
  • 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
  • No, I'm using DVI and I have an nVidia driver. Also, I just tried and the same thing appears when using a VGA connection. – Jazimov Feb 12 '16 at 18:18
  • Did you use the [ClearType Text Tuner](http://windows.microsoft.com/en-us/windows7/what-is-the-cleartype-text-tuner) in the old Windows 7, by any chance? You may have obsolete/wrong leftovers under `HKCU\Software\Microsoft\Avalon.Graphics`. – dxiv Feb 13 '16 at 23:44
  • Yes, but remember, the image on the right appeared in Windows 7 and Windows 10. Have ClearType registry values changed between Windows 7 and 10? – Jazimov Feb 13 '16 at 23:54
  • On the contrary, I think they may have _not_ changed, so the Windows 10 upgrade inherited some wrong setting which the fresh install doesn't have. Try to compare that registry key between the "good" and "bad" Windows 10 installs. – dxiv Feb 14 '16 at 00:19
  • OK, I did. VM version of Windows 10 had no keys for Avalon.Graphics (other than key); host version had four keys under Avalon.Graphics--one DISPLAY1 through DISPLAY4. I renamed the Avalon.Graphics key then created a new Avalon.Graphics key with no child keys, rebooted, and see same issue even though host now has an empty Avalon.Graphics key under HKCU\Software\Microsoft. – Jazimov Feb 14 '16 at 00:31
  • Well, at least that eliminates it as a possible cause. – dxiv Feb 14 '16 at 00:54
  • Are the Myriad Pro files in `C:\Windows\Fonts` identical? – harrymc Feb 14 '16 at 17:02
  • Yes, I even did a FC (file compare) between the two systems shown above. I also removed the Myriad fonts, rebooted, and reinstalled them onto the host--same result. – Jazimov Feb 14 '16 at 17:31
  • See : (1) In Control Panel -> Adjust the appearance and performance of Windows, if "Smooth edges of screen fonts" is unchecked. (2) If some fonts were aliased, in registry key `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes`. (3) Registry key `HKEY_CURRENT_USER\Control Panel\Desktop` has items named FontSmoothing and FontSmoothingType, and compare their values against the VM. – harrymc Feb 14 '16 at 20:51
  • Smooth edges checked on both; FontSubstitutes same on both; host had FontSmoothingGamma 640 Hex while VM (guest) had 0 but then set host to 0, rebooted, verified setting remained at FontSmoothingGamma 0 on host--yet still showing same font as in right-side image at the top of the page. – Jazimov Feb 15 '16 at 02:00
  • Try the [Windows10_DPI_FIX](http://xpexplorer.com/windows10_dpi_blurry_fix/). – harrymc Feb 15 '16 at 19:33
  • My systems always have 100% DPI scaling and run at 1680x1050. Also, my issue isn't unique to Windows 10 and the article for the DPI fix states that it addresses a problem that exists only in Windows 10. Finally, a new Windows 10 instance does not show the problem. The fonts aren't blurry as much as they are almost mis-shapen, as if the vector data for the font is being misinterpreted or poorly rasterized, but it is a different effect than what you normally would see when DPI is the only issue or when anti-aliasing isn't optimally calibrated... – Jazimov Feb 16 '16 at 00:58
  • This is a problem that is local to your computer. All my ideas have not been able to find out the difference. The only additional advice I can think of is to [Repair Install Windows 10 with an In-place Upgrade](http://www.tenforums.com/tutorials/16397-repair-install-windows-10-place-upgrade.html) with which you will not lose anything, but may repair what's broken. Use a recent Windows ISO that is posterior to the 1511 update. Take backup before starting - an image backup of the system partition is best. – harrymc Feb 16 '16 at 10:05
  • Many thanks for your effort--yes, this is a problem local to my computer. The reason I posted is to discover exactly what got "corrupted"... I have already done a repair with Windows 7 and then after Windows 10 to no avail. Clearly, something in the font-rendering subsystem is awry--but what? This host machine serves primarily as a host to run virtual machines and Win 7 was its first OS, so that was a clean install with only drivers and some app software (such as Camtasia and Adobe Audition for making video blogs). I would like to focus on other reg keys involved in font rendering... – Jazimov Feb 16 '16 at 17:14
  • The only other places I know of are in the registry at `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts` and the fonts themselves at `C:\Windows\Fonts`. For software you can compare all the DLLs at `C:\Windows\System32\font*.dll` and the files `C:\Windows\System32\Mlang.*`. – harrymc Feb 16 '16 at 21:03
  • Will do and will be back later with results. Much appreciated! For the record, I know I can reinstall Win 10 from scratch (esp since I have only a handful of applications for the host) but I want to solve this because it's the only issue with the host and because I feel there is a single root cause so I am so curious as to what it might be! I thought you had it with the fontsmoothinggamma--esp since that value was 640H rather than 0H! We must be getting close. Thx. – Jazimov Feb 16 '16 at 21:53
  • All registry and DLL and Mlang entries/files checked out when compared to VM. I decided to turn ClearType OFF and found something rather interesting (see video here: https://vimeo.com/155636855). When ClearType OFF, screen text not good but WordPad text smooth; when ON, screen text good but WordPad text rough/jagged. On VM, ClearType ON or OFF does not affect WordPad font rendering but does affect screen. Why would ClearType affect WordPad (and most other apps on the host that use fonts, such as Camtasia and PowerPoint) only in the host??? – Jazimov Feb 17 '16 at 07:20
  • The next step is to verify wordpad.exe. Doing [sfc /scannow](http://www.tenforums.com/tutorials/2895-sfc-command-run-windows-10-a.html) wouldn't hurt either. – harrymc Feb 17 '16 at 11:11
  • sfc reported "verification 100% complete...did not find any integrity violations". Also, it's not just WordPad--it's any application that uses TrueType or OpenType fonts--I just chose WordPad for the demo. – Jazimov Feb 17 '16 at 16:12
  • I'm afraid I'm all out of ideas. Sometimes the upgrade to Windows 10 goes bad and it's very hard to find out why. Unless someone else will come up with more ideas, a clean install is the only sure way to get rid of the mess. – harrymc Feb 17 '16 at 16:25
  • I can't emphasize enough that it was not the upgrade to Windows 10 that caused this issue. It already existed in Windows 7. Nothing went wrong with the Windows 10 upgrade--it just preserved the Windows 7 environment (which really it should do). Of course I can do a clean install but as I mentioned I would like to figure out why this is happening and fix it as it is the only issue I'm having. I think it's related to ClearType, hinting, and possibly with the DirectWrite subsystem. It definitely is an OS issue but one that should be solveable w/o a reinstall. – Jazimov Feb 17 '16 at 17:31
  • You have already proven all the points :(1) The mess was already present in Windows 7, (2) The upgrade didn't fix it, (3) A clean install fixes it. Finding what actually is the mess will take a Microsoft analyst - the problem is too subtle for us mere mortals. – harrymc Feb 17 '16 at 18:51
  • I think this problem needs someone deeply knowledgeable about how ClearType works and precisely what process interprets font hints when rendering fonts to the screen. ClearType uses subpixel anti-aliasing tecniques, and I'm quite familiar with how that works; but DirectWrite might be involved; it's just unclear why ClearType on/off doesn't affect such fonts on a working system but it does affect them on my system. It's almost as if DirectWrite (or whatever is used to smooth fonts in applications) gets turned off when ClearType is turned on--but only on my machine. I'm not giving up yet! – Jazimov Feb 17 '16 at 19:13
  • Not out of ideas yet: ClearType depends critically on the color of the background pixels. Do you have a non-standard color scheme on your host computer? You might also play around with Visual effects and color calibration and especially gamma. Try to reset nVidia settings. – harrymc Feb 17 '16 at 20:49
  • No non-standard scheme; also, have already reset nVidia and also totally removed and reinstalled nVidia drivers. Interesting article here (tinyurl.com/zftjqhp), search for "warts" because that seems to be what's happening. – Jazimov Feb 17 '16 at 21:38
  • It says: "In DirectWrite, unhinted PostScript and TrueType-based Web fonts show virtually the same rendering". AFAIK in Windows 10 Cleartype is being phased out in favor of DirectWrite, so this is not explained. "Unhinted fonts" - does the problem arrive with other fonts, for example Arial? – harrymc Feb 18 '16 at 17:33
  • Yep! It happens with Arial and seemingly with all fonts on my system, whether TrueType (ttf) or OpenType (otf)! That's what fascinates me--if they're byte-for-byte the same as on the working VM, it almost seems as if the DirectWrite subsystem is corrupted or somehow ignoring the hints those fonts define. I found little on how DirectWrite works--what reg keys/dlls/files, etc., are involved in making it work. But it seems that all fingers are pointing in that specific direction rather than at ClearType itself; turning ClearType on seems to interfere with DW's ability to continue to function... – Jazimov Feb 18 '16 at 17:46
  • DirectWrite has its own solution, different than ClearType. The corruption, if it is one, is apparently in a registry setting or file that is untouched by the Windows 10 upgrade. If the driver is the same in the VM, you could compare all files in C:\Windows, paying attention to ".sys" files. You could also use a registry compare product with the VM, but I can't point you any more than above. – harrymc Feb 19 '16 at 06:52
  • If your VM product supports GPU pass-through, you might try it, to see if it is caused by the display driver. – harrymc Feb 19 '16 at 15:33
  • Yes, video driver in VM was not the same as in host... This very likely accounts for the differences I had observed. – Jazimov Feb 21 '16 at 05:05

1 Answers1

3

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)

Max
  • 1,079
  • 8
  • 11
  • 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
  • Thank you, this solved my issue. I have been running Win10 in a Hyper-V VM and ClearText was turned off, resulting in very crappy fonts with no anti-aliasing. – HankScorpio Jul 09 '20 at 18:40