Closed Bug 1227799 Opened 9 years ago Closed 8 years ago

Poor (thin and wiry) font rendering in Nightly (D2D 1.0 only)

Categories

(Core :: Graphics: Layers, defect)

45 Branch
Unspecified
Windows
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX
Tracking Status
firefox44 --- unaffected
firefox45 - disabled
firefox46 + disabled
firefox47 + fixed

People

(Reporter: mark, Unassigned)

References

()

Details

(Keywords: regression, Whiteboard: gfx-noted)

Attachments

(3 files)

Attached image fx45-badfonts3.png (deleted) —
When visiting Twitter (as a clear example) in Nightly 45.0a1 (2015-11-24), font rendering is very poor. Since the initial rendering of fonts seems to be OK and it only switching to a poor version after a partial load/repaint/reflow, I think this is related to hardware acceleration of layers (and not necessarily the font rendering itself). Please feel free to re-categorize if this assumption was wrong.

Firefox 42-release does not display this issue.

Attached a comparison of v42 (top) to v45 (bottom) including a pixel-resized 2x blow-up of part of it. V45's fonts are hard to read, thin and wiry, and unlike the cleartype settings properly adopted by the release version.
Graphics section of about:support

Graphics
Adapter Description	AMD Radeon HD 6800 Series
Adapter Drivers	aticfx64 aticfx64 aticfx64 aticfx32 aticfx32 aticfx32 atiumd64 atidxx64 atidxx64 atiumdag atidxx32 atidxx32 atiumdva atiumd6a atitmm64
Adapter RAM	1024
Asynchronous Pan/Zoom	wheel input enabled
ClearType Parameters	Gamma: 2200 Pixel Structure: R ClearType Level: 50 Enhanced Contrast: 200
Device ID	0x6738
Direct2D Enabled	true
DirectWrite Enabled	true (6.2.9200.17461)
Driver Date	7-28-2015
Driver Version	15.200.1062.1003
GPU #2 Active	false
GPU Accelerated Windows	1/1 Direct3D 11 (OMTC)
Subsys ID	174b174b
Supports Hardware H264 Decoding	Yes
Vendor ID	0x1002
WebGL Renderer	Google Inc. -- ANGLE (AMD Radeon HD 6800 Series Direct3D11 vs_5_0 ps_5_0)
windowLayerManagerRemote	true
AzureCanvasBackend	direct2d
AzureContentBackend	direct2d
AzureFallbackCanvasBackend	cairo
AzureSkiaAccelerated	0


Additional note: this very multiline textbox also displays odd behavior and shows thin and wiry fonts when scrolling, and after a second or two snaps back to a bolder, more readable version of the font.
I can see the issue in your screenshot but I don't think I see it locally in my Nightly. Please use mozregression to narrow this down, thanks.

http://mozilla.github.io/mozregression/install.html
Keywords: regression
Whiteboard: gfx-noted
The textbox input wiry font issue seems to be a different (older) issue that I didn't focus on here (and it's the opposite behavior, anyway, probably a different bug altogether). If I have time tomorrow I'll file another bug for that.

This bug:
Regression on 11-11-2015

Ran through inbound builds to land on:

13:05.91 LOG: MainThread Bisector INFO Last good revision: 51dbf899ae40b9fdc9f8e5ba7712c3694656be60
13:05.91 LOG: MainThread Bisector INFO First bad revision: c5780f2a10e8de3171e12f080d99f62a0c6ca1a5
13:05.91 LOG: MainThread Bisector INFO Pushlog:
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=51dbf899ae40b9fdc9f8e5ba77
12c3694656be60&tochange=c5780f2a10e8de3171e12f080d99f62a0c6ca1a5
[Tracking Requested - why for this release]: regression in font rendering.

Thanks Mark, I assume from the pushlog that this bug only affects Nightly 45.0a1 and does not affect any other Firefox versions. Can you please confirm?

Tim, the pushlog above blames bug 1223639, can you have a look?
Depends on: 1223639
Flags: needinfo?(tnikkel)
Status: UNCONFIRMED → NEW
Ever confirmed: true
This is probably also the same underlying issue as bug 1223639, although it's not clear to me why the regression range would point to tn's patches. Those might have affected the size of the displayport but shouldn't have affected if the displayport gets set or not (and hence shouldn't have affected layerization) as far as I can tell.
I can confirm this particular issue is only present in Nightly 45a1, from a quick test. Dev edition/aurora 44a2 (2015-11-25) doesn't display this issue.

An additional occurrence of this problem showed up on a long forum page with lots of text; the top part would be OK, but scrolling down it would change to the wiry kind -- not the entire page there, just that below a certain point on the page the fonts would be thin and wiry, but above it, it would be normal. So I'd have both types of font rendering beside each other inside a single (div) element.
Can you give some simple steps to reproduce?

I looked at twitter with and without apz, I couldn't see a difference.
Flags: needinfo?(mark)
I'm not sure what to tell you beyond:

1. log in to twitter
2. wait for the timeline to load and watch the fonts.

Switching off APZ (with layers.async-pan-zoom.enabled) and restarting the browser completely fixed it. If there's anything specific you want me to try, let me know.
Flags: needinfo?(mark)
What are the steps to reproduce the problem described in comment 6 with a forum page?
Visit a long forum page, e.g. https://forum.palemoon.org/viewtopic.php?f=3&t=10226

For me, the font rendering changes about halfway through the 9th post there (a lengthy one by user andres99). If i switch tab and switch back, the font is OK, but if I scroll again (either direction) then at some point the font gets drawn thin again in that direction.
Attached image mid-forum-page.png (deleted) —
Display of sudden font change mid-post on a long forum page.
Attached image Screen Shot 2015-11-25 at 5.27.43 PM.png (deleted) —
I think I can actually reproduce this now in Gmail (Nightly w/APZ on the left, Nightly w/out APZ on the right).
There are several bugs for apz causing slightly worse font rendering. The important difference about this one is that it was pinned as a regression of bug 1223639.
I'm afraid I can't help you further -- just reporting what I noticed and what mozregression found as the culprit; I have no idea why it would be this particular bug that makes such a big difference for general font rendering for me. It may just be tickling things wrong after the change in bug 1223639 for my particular combination of software and hardware, but it's at least reproducible and unmistakable. I also don't think my combination of hardware and software is uncommon.
Bug 1147673 has now landed, which was supposed to fix this. Do you still see this?
Flags: needinfo?(mark)
Unfortunately I still see this. The behavior hasn't changed; scrolling a large page has it initially render fonts correctly, then switches to poor font rendering when scrolling down it. Switching tabs fixes the font, until more distance is scrolled at which point it goes bad again, and so on.
Flags: needinfo?(mark)
Would you be willing to try a build with bug 1223639 backed out? That is backout c5780f2a10e8 and then 64a9ebe5f2b9.
Flags: needinfo?(tnikkel) → needinfo?(mark)
If you have a trybuild/binary for me, I can sure give it a go. I don't have a setup to build Firefox at this time.
Flags: needinfo?(mark)
Recent regression, tracking.
Assignee: nobody → tnikkel
Timothy, do you have news about this bug? We are going to build 45 beta 5 tomorrow, thanks.
Flags: needinfo?(tnikkel)
[Tracking Requested - why for this release]:
apz only bug, I don't think apz will be enabled at all for 45
Tracking for 46+, since we are planning to keep apz enabled for 46.
Milan, can you please help track this bug together with APZ so we don't ship this regression whenever APZ ships. Do we have a "ship APZ" tracking bug? If so, please make this block that...
Flags: needinfo?(milan)
The "ship APZ" tracking bug is bug 1178298 (aliased "all-aboard-apz"). Marking this as blocking.
Flags: needinfo?(milan)
Mark, do you still see this on Nightly? Even in a fresh profile?
Flags: needinfo?(mark)
Markus, the latest nightly:

1) Doesn't show the issue, BUT
2) Falls back to unaccelerated cairo; I lose my 2D HWA completely.

Is there a reason why I suddenly don't get D2D anymore from a recent change?

I always test in fresh profiles for this kind of troubleshooting.

Adapter Description	AMD Radeon HD 6800 Series
Adapter Drivers	aticfx64 aticfx64 aticfx64 aticfx32 aticfx32 aticfx32 atiumd64 atidxx64 atidxx64 atiumdag atidxx32 atidxx32 atiumdva atiumd6a atitmm64
Adapter RAM	1024
Asynchronous Pan/Zoom	none
ClearType Parameters	Gamma: 2200 Pixel Structure: R ClearType Level: 50 Enhanced Contrast: 200
Device ID	0x6738
Direct2D Enabled	true
DirectWrite Enabled	true (6.2.9200.17568)
Driver Date	7-28-2015
Driver Version	15.200.1062.1003
GPU #2 Active	false
GPU Accelerated Windows	1/1 Direct3D 11 (OMTC)
Subsys ID	174b174b
Supports Hardware H264 Decoding	Yes
Vendor ID	0x1002
WebGL Renderer	Google Inc. -- ANGLE (AMD Radeon HD 6800 Series Direct3D11 vs_5_0 ps_5_0)
windowLayerManagerRemote	true
AzureCanvasAccelerated	0
AzureCanvasBackend	cairo
AzureContentBackend	cairo
AzureFallbackCanvasBackend	none
Flags: needinfo?(mark)
Thanks.

(In reply to Mark Straver from comment #26)
> Is there a reason why I suddenly don't get D2D anymore from a recent change?

I don't know, and from what I've heard it's not that simple to find out why Firefox disables D2D on a given system. Let's put that question aside for now.

Can you set gfx.direct2d.force-enabled to true and test again?
force-enabled also doesn't give me direct2d acceleration. It falls back to cairo.

As you can see I'm still using the same video driver as in my first posting of about:troubleshooting information; so I think we can rule out anything having changed in that respect, so it must have been a change in Firefox. Putting that question aside makes it hard to solve this bug :P

I can live with software rendering if needed if it avoids the thin fonts issue, of course, but it's certainly not optimal. I don't think that that is directly related to this particular problem but it obviously prevents me from providing more feedback for this particular bug since i can't provide any more data if I no longer have D2D acceleration where this font issue occurs.
David, do you still have the test builds that allow you trace down why Direct2D was disabled? Or do you have any other way to find out why Mark isn't getting acceleration?
Flags: needinfo?(dvander)
I've done some more digging myself and the problem seems to be that FF is only giving me D2D 1.0, despite me having installed the platform update and should be getting 1.1. If D2D 1.0 support was removed, then that would explain the fallback to cairo. Perhaps this use of D2D 1.0 rendering is what's causing this issue with APZ?

It's strange since I don't have any issues with other software, nor am i running exotic hardware, and using stock vendor drivers.
(In reply to Mark Straver from comment #30)
> I've done some more digging myself and the problem seems to be that FF is
> only giving me D2D 1.0, despite me having installed the platform update and
> should be getting 1.1. If D2D 1.0 support was removed, then that would
> explain the fallback to cairo. Perhaps this use of D2D 1.0 rendering is
> what's causing this issue with APZ?
> 
> It's strange since I don't have any issues with other software, nor am i
> running exotic hardware, and using stock vendor drivers.

It's odd, yes, since your DWrite version is also from after the platform update. Could you look at the version of your d2d1.dll in your windows directory? Maybe your windows install is 'subtly corrupt'.
> Could you look at the version of your d2d1.dll in your windows directory?

6.2.9200.16765 which is also post platform update, although the build number is slightly lower.
I'll see if reinstalling DX runtimes, driver and running a system file check fixes this very specific issue that only seems to be impacting Firefox (other D2D1.1 capable software seems unaffected AFAICT). I'll NI myself to report back after I've done this when I had time.
Flags: needinfo?(mark)
I've run through the motions of reinstalling these system components with no discernible difference in system file versions, but it did fix the D2D use. It must have been "very subtly corrupt" somewhere.

On the bright side, it also confirms my suspicion: with D2D 1.1 in use it does not display the APZ thin font issue, so it is specific to systems that (for one reason or another) have D2D 1.0 in use. So this may impact some hardware/software combinations that only offer D2D 1.0 until such time as it is completely removed as a supported rendering method in Firefox.

So, this would impact release versions that offer D2D1.0 + enable APZ by default as a combination on hardware/OS/driver combos that don't offer D2D1.1 as usable to Firefox.
Flags: needinfo?(mark)
If I'm reading the graphs correctly, we have 1.8% of people on Direct 2D 1.0 [1], and it has been dropping since late last year [2]. So this affects a pretty small portion of our userbase.

[1] http://people.mozilla.org/~danderson/moz-gfx-telemetry/www/#view=windows-features (4th pie chart)
[2] http://people.mozilla.org/~danderson/moz-gfx-telemetry/www/#view=trends (6th chart)
OS: Unspecified → Windows
Summary: Poor (thin and wiry) font rendering in Nightly → Poor (thin and wiry) font rendering in Nightly (D2D 1.0 only)
Small portion, yeah, though still on the order of 5-10 million users...
D2D issue, nothing to do with my work, unassigning, clearning ni.
Assignee: tnikkel → nobody
Flags: needinfo?(tnikkel)
From IRC:

14:18:40 dvander: kats: d2d 1.0 is removed as of 47
14:18:57 dvander: and disabled permanently as of 44 or so

So the graphs in comment 34 are probably showing people on older versions. That also explains why Mark was seeing the fallback to Cairo (comment 30). As we don't support D2D 1.0 in recent versions I think it should be safe to close this. Please reopen if you disagree.
Status: NEW → RESOLVED
Closed: 8 years ago
Flags: needinfo?(dvander)
Resolution: --- → WONTFIX
Wontfix for 46 since we won't have apz on by default. 
Sounds like this is fixed in 47. Thanks kats.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: