Opened 9 years ago

Closed 9 years ago

#76 closed defect (fixed)

fontconfig: Firefox 31 font quality regression

Reported by: dmik Owned by:
Priority: major Milestone:
Component: *none Version:
Severity: high Keywords:
Cc:

Description

I noticed that the current SVN build of fontconfig (prior to r1181) gives some strange results when running with Firefox 31 (which still uses the old approach to render fonts not involving pango, see also #75). This needs to be investigated. The screenshots will follow.

Attachments (3)

Снимок экрана 2015-11-25 в 14.08.25.png (84.4 KB ) - added by dmik 9 years ago.
ff 31 with old fontconfig
Снимок экрана 2015-11-25 в 14.10.38.png (91.4 KB ) - added by dmik 9 years ago.
ff 31 with new fontconfig
Снимок экрана 2015-11-25 в 16.00.31.png (84.2 KB ) - added by dmik 9 years ago.
ff 31 with FC_EMBEDDED_BITMAP=FcTrue

Download all attachments as: .zip

Change History (8)

by dmik, 9 years ago

ff 31 with old fontconfig

by dmik, 9 years ago

ff 31 with new fontconfig

comment:1 by dmik, 9 years ago

My guess is that somehow the new font config selects a different pixel size for Workplace Sans for which it doesn't have a bitmap font.

comment:2 by dmik, 9 years ago

Or, to be more exact, the new fontconfig causes the vector version of Workplace Sans to be matched instead the bitmap version (given the same pattern). As we clearly see that on the first screenshot there are bitmap versions (the menu bar and small letters on the page) while on the second screenshot vector fonts (with not too good hinting) are used. This may also relate to the new algorithm of matching the font weight and slant which makes fontconfig fall back to vector instead of bitmap.

comment:3 by dmik, 9 years ago

Okay, Silvan quickly found the difference. The old fontconfig forced FC_EMBEDDED_BITMAP=FcTrue for all patterns by default in FcPatternCreate. Doing so gives exactly the same visual results as before. Attaching the new screenshot. A commit from Silvan will follow.

by dmik, 9 years ago

ff 31 with FC_EMBEDDED_BITMAP=FcTrue

comment:4 by Silvan Scherrer, 9 years ago

Component: *none

r1184 fixes this regression

comment:5 by dmik, 9 years ago

Resolution: fixed
Status: newclosed

Committed r1185 per further discussion with @diver. Note that we should review it all one day because FcDefaultSubstitute is actually supposed to be called by the application as long as FcConfigSubstitute which is a no-op for now (and we need to resolve #75 to make its ll actually work). Once resolved, r1184 and r 1185 should be rolled back I suppose.

Note: See TracTickets for help on using tickets.