Closed
Bug 1360933
Opened 8 years ago
Closed 8 years ago
Abnormal font rendering on GUI, starting with central build of 2017-03-24
Categories
(Core :: Graphics: Text, defect)
Tracking
()
RESOLVED
INVALID
Tracking | Status | |
---|---|---|
firefox-esr45 | --- | unaffected |
firefox-esr52 | --- | unaffected |
firefox53 | --- | unaffected |
firefox54 | --- | unaffected |
firefox55 | --- | fix-optional |
People
(Reporter: dqeswn, Unassigned)
Details
(Keywords: regression, regressionwindow-wanted, Whiteboard: [regression pushlog (daily) is in comment #8])
Attachments
(3 files)
Hi!
It seems like font rendering changed somewhere after 2017-03-21 and now. Even though the gfx.font_rendering.cleartype_params.* settings didn't change the rendering did. (see attachment)
Reverting back to old version brings back the normal font rendering.
The font rendering of content didn't change.
(I didn't follow moz-central closely, so it might be while since this happened)
Comment 1•8 years ago
|
||
Can you reproduce the issue in Safe Mode[1]?
If yes and you can reproduce the issue in Safe Mode,
can you still reproduce it even with clean new fresh profile without any addons (extensions, plugins, themes, etc.)[2]?
Also post your Graphic section from about:support,
next make sure that you're using latest GPU drivers,
if not, update it and redo the STR and post info from about:support again.
Finding regression range with mozillaregression[3] would be nice.
[1] = https://support.mozilla.org/kb/troubleshoot-firefox-issues-using-safe-mode
[2] = https://support.mozilla.org/kb/refresh-firefox-reset-add-ons-and-settings
[3] = https://mozilla.github.io/mozregression/
Flags: needinfo?(dqeswn)
Keywords: regressionwindow-wanted
(In reply to Virtual_ManPL [:Virtual] - (please needinfo? me - so I will see your comment/reply/question/etc.) from comment #1)
> Can you reproduce the issue in Safe Mode[1]?
> If yes and you can reproduce the issue in Safe Mode,
> can you still reproduce it even with clean new fresh profile without any
> addons (extensions, plugins, themes, etc.)[2]?
>
> Also post your Graphic section from about:support,
> next make sure that you're using latest GPU drivers,
> if not, update it and redo the STR and post info from about:support again.
>
> Finding regression range with mozillaregression[3] would be nice.
>
> [1] =
> https://support.mozilla.org/kb/troubleshoot-firefox-issues-using-safe-mode
> [2] =
> https://support.mozilla.org/kb/refresh-firefox-reset-add-ons-and-settings
> [3] = https://mozilla.github.io/mozregression/
I may do those things, when I'll have more time. Though I found mozregression to be useless, never points to the right bug.
For now I checked in safe mode, though it's hard to tell because of different styling, but it looks around the same.
With a new profile it seems to be normal.
Flags: needinfo?(dqeswn)
Comment 3•8 years ago
|
||
(In reply to avada from comment #2)
> With a new profile it seems to be normal.
So from this reply looks like broken profile
or from screenshot looks like extensions are interfering.
(In reply to Virtual_ManPL [:Virtual] - (please needinfo? me - so I will see your comment/reply/question/etc.) from comment #3)
> (In reply to avada from comment #2)
> > With a new profile it seems to be normal.
>
> So from this reply looks like broken profile
> or from screenshot looks like extensions are interfering.
You're forgetting that reverting back to the old version brings back normal rendering. Something changed in moz-central to cause this.
So I did a bisection as you suggested. As I've come to expect, it cape up with a nonsensical result:
"2017-05-02T17:19:15: INFO : Narrowed inbound regression window from [7513b3f4, fcfdeb52] (3 revisions) to [89b93d31, fcfdeb52] (2 revisions) (~1 steps left)
2017-05-02T17:19:15: DEBUG : Starting merge handling...
2017-05-02T17:19:15: DEBUG : Using url: https://hg.mozilla.org/mozilla-central/json-pushes?changeset=fcfdeb52c2b2f020631fd47b5b02ea0be50d4027&full=1
2017-05-02T17:19:17: DEBUG : Found commit message:
Backed out changeset ad882b32f2d0 (bug 1347101) for merge bustage on a CLOSED TREE
2017-05-02T17:19:17: INFO : The bisection is done.
2017-05-02T17:19:17: INFO : Stopped"
Anyway I'll attach the bisection log. Maybe someone figures out which is the offending changeset. It should be near.
Also it seems I was being wrong that this issue doesn't effect the profile since I couldn't get the good render back with my test profile even with a good build. So I guess the bug breaks the profile. (at least after a while)
I had to use a profile backup for this bisection.
Flags: needinfo?(Virtual)
Comment 6•8 years ago
|
||
Bug #1347101 touched only video decoding, so I don't think it's the cause here.
You can try bisecting it manually by hand (like me), instead of using mozregression.
I think that daily builds will be enough - https://ftp.mozilla.org/pub/firefox/nightly/
So please retest and post last good and first bad.
Has Regression Range: --- → no
Has STR: --- → irrelevant
status-firefox53:
--- → unaffected
status-firefox54:
--- → unaffected
status-firefox55:
--- → affected
status-firefox-esr45:
--- → unaffected
status-firefox-esr52:
--- → unaffected
Flags: needinfo?(Virtual)
Keywords: regression
OS: Unspecified → Windows 8.1
Hardware: Unspecified → x86_64
Version: Trunk → 55 Branch
Updated•8 years ago
|
Severity: normal → major
(In reply to Virtual_ManPL [:Virtual] - (please needinfo? me - so I will see your comment/reply/question/etc.) from comment #6)
> Bug #1347101 touched only video decoding, so I don't think it's the cause
> here.
> You can try bisecting it manually by hand (like me), instead of using
> mozregression.
> I think that daily builds will be enough -
> https://ftp.mozilla.org/pub/firefox/nightly/
> So please retest and post last good and first bad.
Doing it manually is quite a nuisance since unlike mozregression it's not possible clone the profile, or specify it as a path, and there's apparently some profile corruption. But since the last couple steps was between revisions from 03-23 it's a safe bet the bug was introduced sometime around then.
But for your sake I tried it:
03-23: Good
( https://archive.mozilla.org/pub/firefox/nightly/2017/03/2017-03-23-03-02-03-mozilla-central-l10n/firefox-55.0a1.hu.win32.zip )
03-24: Bad
( https://archive.mozilla.org/pub/firefox/nightly/2017/03/2017-03-24-03-02-05-mozilla-central-l10n/firefox-55.0a1.hu.win32.zip
)
Comment 8•8 years ago
|
||
So pushlog is - https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=7513b3f42058e9bcf9950d4acf4647d4ad2240f0&tochange=01d1dedf400d4be413b1a0d48090dca7acf29637
Some of suspects:
bug #1349476 [Core:Graphics: Layers]-Remove LayersBackend::LAYERS_D3D9 type
bug #1347819 [Core:CSS Parsing and Computation]-stylo: Change nsFont::languageOverride to store uint32_t directly
So please attach here your full about:support by "Copy text to clipboard" option from good and from bad build.
Flags: needinfo?(dqeswn)
(In reply to Virtual_ManPL [:Virtual] - (please needinfo? me - so I will see your comment/reply/question/etc.) from comment #8)
> So pushlog is -
> https://hg.mozilla.org/mozilla-central/
> pushloghtml?fromchange=7513b3f42058e9bcf9950d4acf4647d4ad2240f0&tochange=01d1
> dedf400d4be413b1a0d48090dca7acf29637
>
>
> Some of suspects:
> bug #1349476 [Core:Graphics: Layers]-Remove LayersBackend::LAYERS_D3D9 type
> bug #1347819 [Core:CSS Parsing and Computation]-stylo: Change
> nsFont::languageOverride to store uint32_t directly
>
>
> So please attach here your full about:support by "Copy text to clipboard"
> option from good and from bad build.
I used the copy raw data option instead. Makes more sense since the other copies localized text.
There isn't much difference, apart from build numbers it's only the webrender section that's different, but that's disabled anyway:
Good build:
"{
"name": "WEBRENDER",
"description": "WebRender",
"status": "unavailable",
"log": [
{
"type": "default",
"status": "available"
},
{
"type": "runtime",
"status": "unavailable",
"message": "Build doesn't include WebRender"
}
]
}"
Bad build:
"{
"name": "WEBRENDER",
"description": "WebRender",
"status": "opt-in",
"log": [
{
"type": "default",
"status": "opt-in",
"message": "WebRender is an opt-in feature"
}
]
}"
Flags: needinfo?(dqeswn)
Summary: Abnormal font rendering on GUI, started between 2017-03-21 and now (2017-04-30) → Abnormal font rendering on GUI, starting with central build of 2017-03-24
Comment 10•8 years ago
|
||
Unfortunately it's not what I want to look at, as I'm interested mostly in full "Graphics" and "Important Modified Preferences" section, so please do what I said in comment #8 and before in comment #1.
Flags: needinfo?(dqeswn)
Reporter | ||
Comment 11•8 years ago
|
||
(In reply to Virtual_ManPL [:Virtual] - (please needinfo? me - so I will see your comment/reply/question/etc.) from comment #10)
> Unfortunately it's not what I want to look at, as I'm interested mostly in
> full "Graphics" and "Important Modified Preferences" section, so please do
> what I said in comment #8 and before in comment #1.
I already attached it, have a look at it... Everything should be there.
Flags: needinfo?(dqeswn)
Comment 12•8 years ago
|
||
(In reply to avada from comment #11)
> (In reply to Virtual_ManPL [:Virtual] - (please needinfo? me - so I will see
> your comment/reply/question/etc.) from comment #10)
> > Unfortunately it's not what I want to look at, as I'm interested mostly in
> > full "Graphics" and "Important Modified Preferences" section, so please do
> > what I said in comment #8 and before in comment #1.
>
> I already attached it, have a look at it... Everything should be there.
Awww... I'm very sorry about that, I was probably tired and also kinda blinded by whole post and didn't see that it has attachment in it.
About main issue, you have too many preferences changed to non default values (not to mention themes, plugins and many extensions), which will be hard to tell which is the real cause, I'm mainly talking about graphic related things like:
"font.name.monospace.x-user-def": "Courier New",
"font.size.variable.x-user-def": 16,
"font.size.fixed.x-central-euro": 15,
"font.name.monospace.x-western": "DejaVu Sans Mono",
"font.size.fixed.x-user-def": 13,
"font.language.group": "x-western",
"font.name.serif.x-user-def": "DejaVu Sans",
"font.name.sans-serif.x-user-def": "DejaVu Sans",
"font.name.serif.x-western": "DejaVu Sans",
"font.name.serif.x-central-euro": "DejaVu Sans",
"font.size.fixed.x-western": 15,
"font.minimum-size.th": 0,
"font.name.sans-serif.x-central-euro": "DejaVu Sans",
"font.name.monospace.x-central-euro": "DejaVu Sans Mono",
"font.default.x-user-def": "sans-serif",
"font.default.x-central-euro": "sans-serif",
"font.internaluseonly.changed": true,
"font.name.sans-serif.x-western": "DejaVu Sans",
"font.size.variable.x-central-euro": 15,
"gfx.crash-guard.glcontext.gfx.driver-init.webgl-angle-force-d3d11": false,
"gfx.crash-guard.d3d11layers.appVersion": "47.0",
"gfx.font_rendering.cleartype.always_use_for_content": true,
"gfx.font_rendering.cleartype_params.rendering_mode": 5,
"gfx.driver-init.appVersion": "42.0",
"gfx.crash-guard.glcontext.gfx.driver-init.webgl-angle-try-d3d11": true,
"gfx.crash-guard.glcontext.gfx.driver-init.direct3d11-angle": true,
"gfx.crash-guard.d3d11layers.driverVersion": "10.18.13.6881",
"gfx.font_rendering.cleartype_params.cleartype_level": 100,
"gfx.direct2d.disabled": true,
"gfx.driver-init.driverVersion": "10.18.13.5887",
"gfx.crash-guard.d3d11layers.deviceID": "0x1245",
"gfx.font_rendering.directwrite.enabled": true,
"gfx.driver-init.deviceID": "0x1245",
"gfx.driver-init.status": 2,
"gfx.crash-guard.glcontext.gfx.driver-init.webgl-angle": true,
"gfx.crash-guard.status.d3d11video": 2,
"gfx.direct2d.force-enabled": true,
"gfx.crash-guard.status.glcontext": 2,
"gfx.crash-guard.d3d11layers.feature-d3d11": true,
"gfx.font_rendering.cleartype_params.enhanced_contrast": 120,
"gfx.crash-guard.d3d11layers.feature-d2d": true,
"gfx.crash-guard.status.d3d11layers": 2,
"gfx.driver-init.feature-d3d11": true,
"gfx.work-around-driver-bugs": false,
"gfx.crash-guard.glcontext.gfx.driver-init.webgl-angle-force-warp": false,
"gfx.font_rendering.cleartype_params.force_gdi_classic_max_size": 0,
"gfx.driver-init.feature-d2d": true,
"layers.prefer-d3d10": false,
"layers.prefer-d3d11.1": false,
"layers.prefer-d3d11": false,
"webgl.force-enabled": true,
"webgl.msaa-force": true,
"webgl.prefer-native-gl": true,
"webgl.verbose": true
Also you have still many obsolete preferences like for example:
"browser.tabs.closeButtons": 0,
"browser.tabs.tabMinWidth": 111,
"browser.tabs.tabMaxWidth": 900,
"layers.offmainthreadcomposition.testing.enabled": true,
and many many more,
so it's kinda over my head what's the real cause here.
Especially when you disabling Direct2D
"gfx.direct2d.disabled": true,
and next forcing enabling it again
"gfx.direct2d.force-enabled": true,
also you disabling D3D11/10
"layers.prefer-d3d10": false,
"layers.prefer-d3d11.1": false,
"layers.prefer-d3d11": false,
I'm recommending creating new profile and add extensions etc., without changing too much values in about:config, especially "forcing" and changing GFX related stuff, which should be used only for testing etc.
Reporter | ||
Comment 13•8 years ago
|
||
(In reply to Virtual_ManPL [:Virtual] - (please needinfo? me - so I will see your comment/reply/question/etc.) from comment #12)
> About main issue, you have too many preferences changed to non default
> values (not to mention themes, plugins and many extensions), which will be
> hard to tell which is the real cause, I'm mainly talking about graphic
> related things like:
Well my settings didn't change for a long time. Something changed of firefox's side to cause this font rendering. Also the direct3d ones seem to be obsolete now, without any effect. Also direct2d seem to be used whether I force it or not, so that seems to be default too.
I'm hoping a dev will at least look at this eventually.
Comment 14•8 years ago
|
||
(In reply to avada from comment #13)
> Something changed of firefox's side to cause this font rendering.
True, even with badly written extension or with removed obsolete preference, the Firefox shouldn't behave this way.
Can you one more time go to about:config and reset all non default values (bolded ones) to default from these preferences started with:
font.
gfx.
layers.
layout.
webgl.
webrender.
as you disabled D3D10, D3D11 and D3D11.1, while D3D9 was removed (bug #1349476), so maybe that's the cause.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: needinfo?(dqeswn)
Whiteboard: [regression pushlog (daily) is in comment #8]
Reporter | ||
Comment 15•8 years ago
|
||
I reset all* of them, didn't change anything. Text looks identical.
*Except "gfx.font_rendering.cleartype_*" stuff, which are my customizations, and would obviously change rendering.
Flags: needinfo?(dqeswn)
Jeremy, can you think how your patch in bug 1347819 could have caused this change?
Flags: needinfo?(jeremychen)
Comment 17•8 years ago
|
||
I discussed this issue with Jeremy few days ago. We reverted the patches in bug 1347819 but we couldn't see any difference on our local device. Perhaps it's certain language problem? Jeremy, could you comment on it?
Comment 18•8 years ago
|
||
Yeah, as I told Ethan offline, the changes in bug 1347819 is just a type conversion.
I can explain more specific about the changes. Before bug 1347819, we parse/compute/store the font-language-override CSS property as a string, then convert it to a uint32_t before sending into gfxFontEntry for rendering. In bug 1347819, I put the type conversion ahead during computing time, so we could just store an uint32_t as a computed value.
It would be more helpful if we could know the language settings, font related settings, and specifically the font-language-override property of that test page. Maybe it is some specific add-on that use some specific font-language-override property? If so, it would still be helpful if we could get the name of the add-on, and try to get a simplified test page. So, we could get a STR. Otherwise, I can't see much I can do according to the current clues...
Flags: needinfo?(jeremychen)
Comment 19•8 years ago
|
||
I don't think bug 1347819 has anything to do with this. It looks like the reporter's font smoothing settings or ClearType rendering parameters have changed, or (perhaps more likely) the way Firefox handles those settings. Maybe we're suddenly failing to respect the gfx.font_rendering.cleartype_* prefs, or misinterpreting their settings? Or we've switched between using GDI and DWrite font rendering on the reporter's system, because of changes in the graphics stack? It's not clear to me from reading the bug whether one specific "regressing" change has been identified, or exactly which profile settings it's connected to, but I'm fairly confident that bug 1347819 is irrelevant...
Reporter | ||
Comment 20•8 years ago
|
||
(In reply to Jonathan Kew (:jfkthame) from comment #19)
> I don't think bug 1347819 has anything to do with this. It looks like the
> reporter's font smoothing settings or ClearType rendering parameters have
> changed, or (perhaps more likely) the way Firefox handles those settings.
> Maybe we're suddenly failing to respect the gfx.font_rendering.cleartype_*
> prefs, or misinterpreting their settings? Or we've switched between using
> GDI and DWrite font rendering on the reporter's system, because of changes
> in the graphics stack?
I have similar suspicions now. I re-adjusted gfx.font_rendering.cleartype_params.* stuff to my liking and it's been normal since then.
Comment 21•8 years ago
|
||
There is no clear way to reproduce the problem. Close this bug for now.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → INVALID
Reporter | ||
Comment 22•8 years ago
|
||
(In reply to Ethan Lin[:ethlin] from comment #21)
> There is no clear way to reproduce the problem. Close this bug for now.
That's not surprising, since no-one bothered to look at anything.
Anyway, for the sake of completeness: These were the settings I used before 2017-03-14:
"gfx.font_rendering.cleartype.always_use_for_content": true,
"gfx.font_rendering.cleartype_params.rendering_mode": 5,
"gfx.font_rendering.cleartype_params.cleartype_level": 100,
"gfx.font_rendering.cleartype_params.enhanced_contrast": 120,
"gfx.font_rendering.cleartype_params.force_gdi_classic_max_size": 0,
And this is what I settled at after for a similar appearance:
"gfx.font_rendering.cleartype.always_use_for_content": true,
"gfx.font_rendering.cleartype_params.rendering_mode": 5,
"gfx.font_rendering.cleartype_params.cleartype_level": 75,
"gfx.font_rendering.cleartype_params.enhanced_contrast": 55,
"gfx.font_rendering.cleartype_params.force_gdi_classic_max_size": 0,
Comment 23•8 years ago
|
||
(In reply to avada from comment #22)
> (In reply to Ethan Lin[:ethlin] from comment #21)
> > There is no clear way to reproduce the problem. Close this bug for now.
>
> That's not surprising, since no-one bothered to look at anything.
>
> Anyway, for the sake of completeness: These were the settings I used before
> 2017-03-14:
>
> "gfx.font_rendering.cleartype.always_use_for_content": true,
> "gfx.font_rendering.cleartype_params.rendering_mode": 5,
> "gfx.font_rendering.cleartype_params.cleartype_level": 100,
> "gfx.font_rendering.cleartype_params.enhanced_contrast": 120,
> "gfx.font_rendering.cleartype_params.force_gdi_classic_max_size": 0,
>
> And this is what I settled at after for a similar appearance:
>
> "gfx.font_rendering.cleartype.always_use_for_content": true,
> "gfx.font_rendering.cleartype_params.rendering_mode": 5,
> "gfx.font_rendering.cleartype_params.cleartype_level": 75,
> "gfx.font_rendering.cleartype_params.enhanced_contrast": 55,
> "gfx.font_rendering.cleartype_params.force_gdi_classic_max_size": 0,
Thanks for the information. :jfkthame, do you have any idea about which bug changes may be related to these clear type preferences?
Flags: needinfo?(jfkthame)
Comment 24•8 years ago
|
||
(In reply to avada from comment #22)
> (In reply to Ethan Lin[:ethlin] from comment #21)
> > There is no clear way to reproduce the problem. Close this bug for now.
>
> That's not surprising, since no-one bothered to look at anything.
That's kinda exaggeration...
(In reply to avada from comment #22)
> Anyway, for the sake of completeness: These were the settings I used before
> 2017-03-14:
>
> "gfx.font_rendering.cleartype.always_use_for_content": true,
> "gfx.font_rendering.cleartype_params.rendering_mode": 5,
> "gfx.font_rendering.cleartype_params.cleartype_level": 100,
> "gfx.font_rendering.cleartype_params.enhanced_contrast": 120,
> "gfx.font_rendering.cleartype_params.force_gdi_classic_max_size": 0,
>
> And this is what I settled at after for a similar appearance:
>
> "gfx.font_rendering.cleartype.always_use_for_content": true,
> "gfx.font_rendering.cleartype_params.rendering_mode": 5,
> "gfx.font_rendering.cleartype_params.cleartype_level": 75,
> "gfx.font_rendering.cleartype_params.enhanced_contrast": 55,
> "gfx.font_rendering.cleartype_params.force_gdi_classic_max_size": 0,
So looks like the issue was preference related.
Updated•8 years ago
|
Flags: needinfo?(jfkthame)
You need to log in
before you can comment on or make changes to this bug.
Description
•