Closed Bug 1165611 Opened 5 years ago Closed 5 years ago

font smoothing thinner when using fontconfig platform fontlist

Categories

(Core :: Graphics: Text, defect, major)

41 Branch
Unspecified
Linux
defect
Not set
major

Tracking

()

RESOLVED FIXED
mozilla41
Tracking Status
firefox40 --- unaffected
firefox41 + fixed

People

(Reporter: yoasif, Assigned: jtd)

References

()

Details

(Keywords: regression, Whiteboard: [gfx-noted])

Attachments

(7 files)

User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/44.0.2391.0 Chrome/44.0.2391.0 Safari/537.36

Steps to reproduce:

On Firefox nightlies (Firefox/41.0) starting a few days ago, the font smoothing has become odd on my Ubuntu Linux machine. 

The problem started appearing in the 20150514 build. Screenshots are attached. 

1. Start nightly (using old or fresh profile makes no difference)
2. navigate to: http://www.alexvking.com/12_inch_macbook_and_windows_10.html (or really, any web page with text)
3. view text and compare to pre-20150514 builds.


Actual results:

Fonts appear thinner and looks almost as if I am using too much subpixel hinting. 

Browser chrome is also affected. 


Expected results:

Fonts should look like they did in build 20150513 and prior.
OS: Unspecified → Linux
Component: Untriaged → Graphics: Text
Product: Firefox → Core
[Tracking Requested - why for this release]: Regression

Good - 41.0a1 (2015-05-12)
Bad - 41.0a1 (2015-05-13)

pushlog:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=62d9b117c688&tochange=0f1d42a6745a

Probably caused by:
Bug #1056479 - implement gfxPlatformFontList subclass for fontconfig
Severity: normal → major
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: needinfo?(jdaggett)
Keywords: regression
Version: Trunk → 41 Branch
(In reply to Virtual_ManPL [:Virtual] from comment #3)
> Good - 41.0a1 (2015-05-13)
> Bad - 41.0a1 (2015-05-14)
fixed


Looks like text is rendered with broken subpixel antialiasing.
Duplicate of this bug: 1165590
WORKAROUND: Open the Dev Tool (Shift + F2), copy&paste this command, press enter and restart.

pref set gfx.font_rendering.fontconfig.fontlist.enabled false
(In reply to Ekanan Ketunuti from comment #7)
> WORKAROUND: Open the Dev Tool (Shift + F2), copy&paste this command, press
> enter and restart.
> 
> pref set gfx.font_rendering.fontconfig.fontlist.enabled false

Thanks, this workaround works for me on the latest nightly.
Whiteboard: [gfx-noted]
I too hit this problem. I'm *not* a font snob, but the new fonts are bad enough that even I noticed and found them awful to read.

Setting gfx.font_rendering.fontconfig.fontlist.enabled to false fixes it.
(In reply to Asif Youssuff from comment #0)

> Actual results:
> 
> Fonts appear thinner and looks almost as if I am using too much subpixel
> hinting. 
> 
> Browser chrome is also affected. 

By "browser chrome is also affected" means you see the same fonts but different subpixel antialiasing?
Flags: needinfo?(jdaggett)
Assignee: nobody → jdaggett
Summary: Font smoothing thinner, uglier in Linux Firefox/41.0 → font smoothing thinner when using fontconfig platform fontlist
> 2. navigate to: http://www.alexvking.com/12_inch_macbook_and_windows_10.html (or really, any web page with text)

Note the "any web page with text". On my machine the change was highly evident pretty much everywhere. I'll attach a couple of screenshots from https://en.wikipedia.org/wiki/Rule_of_three_%28C%2B%2B_programming%29 which demonstrated it particularly well.
Attached image nice fonts
Attached image ugly fonts
Looks like this may be a problem with picking up system lcdfilter fontconfig settings.  That may be due to them being set when target="pattern" but only read with target="font".

The outputs from "FC_DEBUG=1 fc-match -v" and "xrdb -query | grep Xft" would help confirm.

Or see whether having this in ~/.fonts.conf helps:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!--  Use lcddefault as default for LCD filter -->
  <match target="font">
    <edit name="lcdfilter">
      <const>lcddefault</const>
    </edit>
  </match>
</fontconfig>
Duplicate of this bug: 1165788
This affects both system and webfonts.
(In reply to John Daggett (:jtd) from comment #10)
> (In reply to Asif Youssuff from comment #0)
> 
> > Actual results:
> > 
> > Fonts appear thinner and looks almost as if I am using too much subpixel
> > hinting. 
> > 
> > Browser chrome is also affected. 
> 
> By "browser chrome is also affected" means you see the same fonts but
> different subpixel antialiasing?

Same fonts, different subpixel aliasing.
(In reply to Karl Tomlinson (ni?:karlt) from comment #14)
> Looks like this may be a problem with picking up system lcdfilter fontconfig
> settings.  That may be due to them being set when target="pattern" but only
> read with target="font".
> 
> The outputs from "FC_DEBUG=1 fc-match -v" and "xrdb -query | grep Xft" would
> help confirm.

$ FC_DEBUG=1 fc-match -v
FC_DEBUG=1
Match Pattern has 23 elts (size 32)
	family: "DejaVu Sans"(w) "DejaVu LGC Sans"(w) "DejaVu LGC Sans"(w) "DejaVu Sans"(w) "Bitstream Vera Sans"(w) "Verdana"(w) "Arial"(w) "Albany AMT"(w) "Luxi Sans"(w) "Nimbus Sans L"(w) "Helvetica"(w) "Lucida Sans Unicode"(w) "BPG Glaho International"(w) "Tahoma"(w) "Waree"(w) "Loma"(w) "Garuda"(w) "Umpush"(w) "Laksaman"(w) "Droid Sans Fallback"(w) "Khmer OS"(w) "Nachlieli"(w) "Lucida Sans Unicode"(w) "Yudit Unicode"(w) "Kerkis"(w) "ArmNet Helvetica"(w) "Artsounk"(w) "BPG UTF8 M"(w) "Waree"(w) "Loma"(w) "Garuda"(w) "Umpush"(w) "Saysettha Unicode"(w) "JG Lao Old Arial"(w) "GF Zemen Unicode"(w) "Pigiarniq"(w) "B Davat"(w) "B Compset"(w) "Kacst-Qr"(w) "Urdu Nastaliq Unicode"(w) "Raghindi"(w) "Mukti Narrow"(w) "malayalam"(w) "Sampige"(w) "padmaa"(w) "Hapax Berbère"(w) "MS Gothic"(w) "UmePlus P Gothic"(w) "SimSun"(w) "PMingLiu"(w) "WenQuanYi Zen Hei"(w) "WenQuanYi Bitmap Song"(w) "AR PL ShanHeiSun Uni"(w) "AR PL New Sung"(w) "MgOpen Modata"(w) "VL Gothic"(w) "IPAMonaGothic"(w) "IPAGothic"(w) "Sazanami Gothic"(w) "Kochi Gothic"(w) "AR PL KaitiM GB"(w) "AR PL KaitiM Big5"(w) "AR PL ShanHeiSun Uni"(w) "AR PL SungtiL GB"(w) "AR PL Mingti2L Big5"(w) "MS ゴシック"(w) "ZYSong18030"(w) "TSCu_Paranar"(w) "NanumGothic"(w) "DejaVu Sans"(w) "UnDotum"(w) "Baekmuk Dotum"(w) "Baekmuk Gulim"(w) "KacstQura"(w) "Lohit Bengali"(w) "Lohit Gujarati"(w) "Lohit Hindi"(w) "Lohit Marathi"(w) "Lohit Maithili"(w) "Lohit Kashmiri"(w) "Lohit Konkani"(w) "Lohit Nepali"(w) "Lohit Sindhi"(w) "Lohit Punjabi"(w) "Lohit Tamil"(w) "Meera"(w) "Lohit Malayalam"(w) "Lohit Kannada"(w) "Lohit Telugu"(w) "Lohit Oriya"(w) "LKLUG"(w) "WenQuanYi Micro Hei"(w) "FreeSans"(w) "Arial Unicode MS"(w) "Arial Unicode"(w) "Code2000"(w) "Code2001"(w) "Meera"(w) "sans-serif"(w) "Roya"(w) "Koodak"(w) "Terafik"(w) "sans-serif"(w) "sans-serif"(w)
	familylang: "en"(s) "en-us"(w)
	stylelang: "en"(s) "en-us"(w)
	fullnamelang: "en"(s) "en-us"(w)
	slant: 0(i)(s)
	weight: 80(i)(s)
	width: 100(i)(s)
	size: 12(f)(s)
	pixelsize: 12.5(f)(s)
	hintstyle: 3(i)(s)
	hinting: True(s)
	verticallayout: False(s)
	autohint: False(s)
	globaladvance: True(s)
	dpi: 75(f)(s)
	scale: 1(f)(s)
	lang: "en"(w)
	fontversion: 2147483647(i)(s)
	embeddedbitmap: True(s)
	decorative: False(s)
	lcdfilter: 1(i)(w)
	namelang: "en"(s)
	prgname: "fc-match"(s)

Best score 0 0 0 0 0 0 1e+99 0 1 1 0 0 0 0 1 1 1 1 0 0 0 2.14733e+12
Pattern has 22 elts (size 22)
	family: "DejaVu Sans"(w)
	familylang: "en"(w)
	style: "Book"(w)
	stylelang: "en"(w)
	fullname: "DejaVu Sans"(w)
	fullnamelang: "en"(w)
	slant: 0(i)(w)
	weight: 80(i)(w)
	width: 100(i)(w)
	foundry: "unknown"(w)
	file: "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"(w)
	index: 0(i)(w)
	outline: True(w)
	scalable: True(w)
	charset: 
	0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffffffff ffffffff ffffffff
	0001: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0002: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 008873ff
	0003: ffffffff ffffffff f58effff 7cff0007 ffffd7f0 fffffffb ffffffff ffffffff
	0004: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0005: ffffffff fffe003f fe7fffff fffffffe 000006ff ffff0000 ffff00cf 001f07ff
	0006: 882016c0 07fffffe 04bfffff fe11ffff ffffffff ffffffff 002159c0 03ff0000
	0007: 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff 073ff8ff
	000e: 00000000 80000000 00000000 00000000 fef02596 3bffecae 33ff3f5f 00000000
	0010: 00000000 00000000 00000000 00000000 00000000 ffffffff ffff003f 1fffffff
	0014: effffefe ffbfffff fff7f7ff ffffffff ffffffff 3fffffff ffffffff fffff7ff
	0015: ffff00ff 7fffffff fffdffff fff007ff 007ffc3f 0000ffff 40000000 00000002
	0016: 00000000 00000000 000000c0 007fc000 1fffffff 00000000 00000000 00000000
	001d: ffdfffff ffff7fcf efffffff 298007ff f8000020 ffffffff 000003f0 00000000
	001e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 0fffffff
	001f: 3f3fffff ffffffff aaff3f3f 3fffffff ffffffff ffdfffff efcfffdf 7fdcffff
	0020: ffffffff ffffffff ffffffff fff3fc0f 1fff7fff 073fffff 18c30000 00000002
	0021: fffffbff ffffffff ffff4bff ffffffff ffff023f ffffffff ffffffff ffffffff
	0022: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0023: f303ffff 000019f3 00000000 24380000 f8100080 00007fff 0000c000 00000128
	0024: 00000000 0000000c 00000000 000003ff 00000000 00000000 00000000 00000000
	0025: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0026: ffffffff ffffffff ffffffff ffffffff 1fffffff 01ffffff 0000000f 00000004
	0027: fffff3de fffffeff 7f47afff fffffffe ff1fffff 7ffeffff 00000060 ffff0fc1
	0028: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0029: 00000cc0 00000000 00000003 00000000 00000018 00000000 003fc000 0c000800
	002a: 1ffff007 00008000 00000000 e0000c00 ffffffff 07ffc001 00000000 06000000
	002b: 87ffffff 0000001f 00180000 00000000 00000000 00000000 00000000 00000000
	002c: 00000000 00000000 00000000 feffffff 00000000 00000000 00000000 00000000
	002d: ffffffff ffff003f ffffffff 0000803f 00000000 00000000 00000000 00000000
	002e: 41000000 0000403c 00000000 00000000 00000000 00000000 00000000 00000000
	004d: 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ffffffff
	00a4: 00000000 00000000 00000000 00000000 00000000 00000000 ffff0000 ffffffff
	00a6: 00000000 00000000 00f330f0 00007ffc 00303c00 00000000 00000000 00000000
	00a7: f87fff00 ffff0ffc 00cfcfc3 000000f0 00037e0f 000007ff 00000000 fc000000
	00ef: 03ffffff 00000000 00000000 00000000 00000000 00000000 00000000 00000000
	00f0: 0000000f 00000000 00000000 00000000 00000000 00000000 00000000 00000000
	00f4: ffffffff ffffff7f 00000003 00000000 00000000 00000000 00000000 00000000
	00f6: 00000000 00000000 00000000 00000000 00000000 00000000 00000020 00000000
	00fb: e0f8007f 5f7fffff fffcffdb ffffffff ffffffff 00003c0f dff80000 f00003f0
	00fe: 00000000 0000000f 00000000 ffdf0000 ffffffff ffffffff ffffffff 9fffffff
	00ff: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 2e000000
	0103: 7fffffff 0000000f 00000000 00000000 00000000 00000000 00000000 00000000
	01d3: ffffffff ffffffff 007fffff 00000000 00000000 00000000 00000000 00000000
	01d5: 00000000 7b000000 fffdfc5f 00000fff 00000000 ffffffff 000fffff 00000000
	01d7: 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 00000fff
	01f0: 00000000 ffff0000 ffffffff ffffffff 000fffff 7ffe7fff fffefffe 00000000
	01f4: 00000000 00226000 00000000 00000000 00000000 00000000 00000000 00000000
	01f6: ffffffff ffffefef 00000001 00000000 00000000 00000000 00000000 00000000
(w)
	lang: aa|ab|af|ar|ast|av|ay|az-az|az-ir|ba|bm|be|bg|bi|bin|br|bs|bua|ca|ce|ch|chm|co|cs|cu|cv|cy|da|de|el|en|eo|es|et|eu|fa|fi|fj|fo|fr|ff|fur|fy|ga|gd|gl|gn|gv|ha|haw|he|ho|hr|hu|hy|ia|ig|id|ie|ik|io|is|it|iu|ka|kaa|ki|kk|kl|ku-am|ku-ir|kum|kv|kw|ky|la|lb|lez|ln|lo|lt|lv|mg|mh|mi|mk|mo|mt|nb|nds|nl|nn|no|nr|nso|ny|oc|om|os|pl|pt|rm|ro|ru|sah|sco|se|sel|sh|shs|sk|sl|sm|sma|smj|smn|sms|so|sq|sr|ss|st|sv|sw|tg|tk|tl|tn|to|tr|ts|tt|tw|tyv|ug|uk|uz|ve|vi|vo|vot|wa|wen|wo|xh|yap|yi|yo|zu|ak|an|ber-dz|ber-ma|crh|csb|ee|fat|fil|hsb|ht|hz|jv|kab|kj|kr|ku-iq|ku-tr|kwm|lg|li|mn-mn|ms|na|ng|nv|ota|pap-an|pap-aw|qu|quz|rn|rw|sc|sd|sg|sn|su|ty|za(w)
	fontversion: 153354(i)(w)
	capability: "otlayout:DFLT otlayout:arab otlayout:armn otlayout:brai otlayout:cans otlayout:cher otlayout:cyrl otlayout:geor otlayout:grek otlayout:hani otlayout:hebr otlayout:kana otlayout:lao  otlayout:latn otlayout:math otlayout:nko  otlayout:ogam otlayout:runr otlayout:tfng otlayout:thai"(w)
	fontformat: "TrueType"(w)
	decorative: False(w)
	hash: "sha256:42a6ee317989b6b61634b3304457bc25186abdc83113d93e8f4c0a25e02e9756"(w)
	postscriptname: "DejaVuSans"(w)

Pattern has 36 elts (size 48)
	family: "DejaVu Sans"(s)
	familylang: "en"(s)
	style: "Book"(w)
	stylelang: "en"(w)
	fullname: "DejaVu Sans"(w)
	fullnamelang: "en"(w)
	slant: 0(i)(s)
	weight: 80(i)(s)
	width: 100(i)(s)
	size: 12(f)(s)
	pixelsize: 12.5(f)(s)
	foundry: "unknown"(w)
	antialias: True(w)
	hintstyle: 1(i)(w)
	hinting: True(w)
	verticallayout: False(s)
	autohint: False(s)
	globaladvance: True(s)
	file: "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"(w)
	index: 0(i)(w)
	outline: True(w)
	scalable: True(w)
	dpi: 75(f)(s)
	scale: 1(f)(s)
	charset: 
	0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffffffff ffffffff ffffffff
	0001: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0002: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 008873ff
	0003: ffffffff ffffffff f58effff 7cff0007 ffffd7f0 fffffffb ffffffff ffffffff
	0004: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0005: ffffffff fffe003f fe7fffff fffffffe 000006ff ffff0000 ffff00cf 001f07ff
	0006: 882016c0 07fffffe 04bfffff fe11ffff ffffffff ffffffff 002159c0 03ff0000
	0007: 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff 073ff8ff
	000e: 00000000 80000000 00000000 00000000 fef02596 3bffecae 33ff3f5f 00000000
	0010: 00000000 00000000 00000000 00000000 00000000 ffffffff ffff003f 1fffffff
	0014: effffefe ffbfffff fff7f7ff ffffffff ffffffff 3fffffff ffffffff fffff7ff
	0015: ffff00ff 7fffffff fffdffff fff007ff 007ffc3f 0000ffff 40000000 00000002
	0016: 00000000 00000000 000000c0 007fc000 1fffffff 00000000 00000000 00000000
	001d: ffdfffff ffff7fcf efffffff 298007ff f8000020 ffffffff 000003f0 00000000
	001e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 0fffffff
	001f: 3f3fffff ffffffff aaff3f3f 3fffffff ffffffff ffdfffff efcfffdf 7fdcffff
	0020: ffffffff ffffffff ffffffff fff3fc0f 1fff7fff 073fffff 18c30000 00000002
	0021: fffffbff ffffffff ffff4bff ffffffff ffff023f ffffffff ffffffff ffffffff
	0022: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0023: f303ffff 000019f3 00000000 24380000 f8100080 00007fff 0000c000 00000128
	0024: 00000000 0000000c 00000000 000003ff 00000000 00000000 00000000 00000000
	0025: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0026: ffffffff ffffffff ffffffff ffffffff 1fffffff 01ffffff 0000000f 00000004
	0027: fffff3de fffffeff 7f47afff fffffffe ff1fffff 7ffeffff 00000060 ffff0fc1
	0028: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0029: 00000cc0 00000000 00000003 00000000 00000018 00000000 003fc000 0c000800
	002a: 1ffff007 00008000 00000000 e0000c00 ffffffff 07ffc001 00000000 06000000
	002b: 87ffffff 0000001f 00180000 00000000 00000000 00000000 00000000 00000000
	002c: 00000000 00000000 00000000 feffffff 00000000 00000000 00000000 00000000
	002d: ffffffff ffff003f ffffffff 0000803f 00000000 00000000 00000000 00000000
	002e: 41000000 0000403c 00000000 00000000 00000000 00000000 00000000 00000000
	004d: 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ffffffff
	00a4: 00000000 00000000 00000000 00000000 00000000 00000000 ffff0000 ffffffff
	00a6: 00000000 00000000 00f330f0 00007ffc 00303c00 00000000 00000000 00000000
	00a7: f87fff00 ffff0ffc 00cfcfc3 000000f0 00037e0f 000007ff 00000000 fc000000
	00ef: 03ffffff 00000000 00000000 00000000 00000000 00000000 00000000 00000000
	00f0: 0000000f 00000000 00000000 00000000 00000000 00000000 00000000 00000000
	00f4: ffffffff ffffff7f 00000003 00000000 00000000 00000000 00000000 00000000
	00f6: 00000000 00000000 00000000 00000000 00000000 00000000 00000020 00000000
	00fb: e0f8007f 5f7fffff fffcffdb ffffffff ffffffff 00003c0f dff80000 f00003f0
	00fe: 00000000 0000000f 00000000 ffdf0000 ffffffff ffffffff ffffffff 9fffffff
	00ff: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 2e000000
	0103: 7fffffff 0000000f 00000000 00000000 00000000 00000000 00000000 00000000
	01d3: ffffffff ffffffff 007fffff 00000000 00000000 00000000 00000000 00000000
	01d5: 00000000 7b000000 fffdfc5f 00000fff 00000000 ffffffff 000fffff 00000000
	01d7: 00000000 00000000 00000000 00000000 00000000 00000000 ff000000 00000fff
	01f0: 00000000 ffff0000 ffffffff ffffffff 000fffff 7ffe7fff fffefffe 00000000
	01f4: 00000000 00226000 00000000 00000000 00000000 00000000 00000000 00000000
	01f6: ffffffff ffffefef 00000001 00000000 00000000 00000000 00000000 00000000
(w)
	lang: aa|ab|af|ar|ast|av|ay|az-az|az-ir|ba|bm|be|bg|bi|bin|br|bs|bua|ca|ce|ch|chm|co|cs|cu|cv|cy|da|de|el|en|eo|es|et|eu|fa|fi|fj|fo|fr|ff|fur|fy|ga|gd|gl|gn|gv|ha|haw|he|ho|hr|hu|hy|ia|ig|id|ie|ik|io|is|it|iu|ka|kaa|ki|kk|kl|ku-am|ku-ir|kum|kv|kw|ky|la|lb|lez|ln|lo|lt|lv|mg|mh|mi|mk|mo|mt|nb|nds|nl|nn|no|nr|nso|ny|oc|om|os|pl|pt|rm|ro|ru|sah|sco|se|sel|sh|shs|sk|sl|sm|sma|smj|smn|sms|so|sq|sr|ss|st|sv|sw|tg|tk|tl|tn|to|tr|ts|tt|tw|tyv|ug|uk|uz|ve|vi|vo|vot|wa|wen|wo|xh|yap|yi|yo|zu|ak|an|ber-dz|ber-ma|crh|csb|ee|fat|fil|hsb|ht|hz|jv|kab|kj|kr|ku-iq|ku-tr|kwm|lg|li|mn-mn|ms|na|ng|nv|ota|pap-an|pap-aw|qu|quz|rn|rw|sc|sd|sg|sn|su|ty|za(s)
	fontversion: 153354(i)(s)
	capability: "otlayout:DFLT otlayout:arab otlayout:armn otlayout:brai otlayout:cans otlayout:cher otlayout:cyrl otlayout:geor otlayout:grek otlayout:hani otlayout:hebr otlayout:kana otlayout:lao  otlayout:latn otlayout:math otlayout:nko  otlayout:ogam otlayout:runr otlayout:tfng otlayout:thai"(w)
	fontformat: "TrueType"(w)
	embeddedbitmap: True(s)
	decorative: False(s)
	lcdfilter: 1(i)(w)
	namelang: "en"(s)
	prgname: "fc-match"(s)
	hash: "sha256:42a6ee317989b6b61634b3304457bc25186abdc83113d93e8f4c0a25e02e9756"(w)
	postscriptname: "DejaVuSans"(w)

$ xrdb -query | grep Xft
Xft.antialias:	1
Xft.dpi:	96
Xft.hinting:	1
Xft.hintstyle:	hintslight
Xft.rgba:	rgb


> Or see whether having this in ~/.fonts.conf helps:
> 
> <?xml version="1.0"?>
> <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
> <fontconfig>
> <!--  Use lcddefault as default for LCD filter -->
>   <match target="font">
>     <edit name="lcdfilter">
>       <const>lcddefault</const>
>     </edit>
>   </match>
> </fontconfig>

Having this snippet in my .fonts.conf *does* help.
Thanks.  lcdfilter set in the "Match Pattern" confirms that lcddefault is being set for FcConfigSubstitute with FcMatchPattern, but the new code is reading this setting only through FcConfigSubstitute with FcMatchFont.

Simply adding FcConfigSubstitute with FcMatchPattern to the start of PreparePattern() should resolve the problem.  Perhaps that might be calling FcConfigSubstitute more often than necessary because the results would always be the same for all fonts in the gfxFontGroup.  However, gfxFontCache may mean that PreparePattern() is not called too often.  I don't know the performance impact.

gfxFontCache is global and expiration is after about 3 minutes without use, while nsDeviceContext::mFontCache (for gfxFontGroups) is not shared between device contexts and is flushed when zooming, but otherwise pretty much never expires.
As suggested by Karl, add FcConfigSubstitute to PreparePattern.
Attachment #8607281 - Flags: review?(karlt)
From left to right, patched fontconfig fontlist code, gfxPangoFontGroup code, trunk fontconfig fontlist code. The patched rendering mimics the gfxPangoFontGroup code.
The tp5 numbers look similar to the numbers for current mozilla-inbound builds.
From the waterfall page in comment 17. From left to right, fontconfig fontlist code with fix, gfxPangoFontGroup code, trunk fontconfig fontlist code
Attachment #8607281 - Flags: review?(karlt) → review+
https://hg.mozilla.org/mozilla-central/rev/b48ef53d5d96
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla41
Thanks guys, it's back to normal on the latest nightly.
Tracked for 41, to be sure that the fix stays in.
Thanks you very much to fix Thai font not smoothing problem.
You need to log in before you can comment on or make changes to this bug.