freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: I'm back


From: Ben Wagner
Subject: Re: I'm back
Date: Thu, 30 Apr 2020 12:50:40 -0400

Responding to all the scattered bits of this thread I know something about...
 
Skia: https://github.com/google/skia/tree/master/third_party/freetype2
modules: no raster1, type1, pfr, bitmapped formats
options: seems to be using the default, i.e. no subpixel rendering, no harfbuzz, no adobe glyph list

I wouldn't look too hard at the Skia one, it's set up that way for odd testing reasons and isn't really part of a Skia release. You'd probably be more interested in how FreeType is built and used by the Android Open Source Project [0] (though always out of date) and by Chromium [1]. Note that they both use their own build system. 

[0] https://android.googlesource.com/platform/external/freetype/+/refs/heads/master/Android.bp
[1] https://source.chromium.org/chromium/chromium/src/+/master:third_party/freetype/BUILD.gn
 
Well, we need a different corpus for rendering testing – I think
we should use what Chromium currently uses.

Chromium itself currently uses checked in images and a bunch of custom scripts to go with the builders to detect pixel changes. They're actually looking to move to something a bit better. It's just difficult to change a big thing like that in Chromium.
 
BTW, Chromium does a 'live' testing of FreeType, this is, the project
monitors FreeType's git HEAD and reports rendering differences to
Chromium developers, which in turn report to us.  Of course, they
would like to get rid of that eventually :-)

Note that Chromium doesn't just do live testing of FreeType, Chromium actually stays at FreeType tip of tree. (Note that Chrome always ships with a statically linked fairly recent FreeType; Chromium can be built with FreeType either statically or dynamically linked; some distros build Chromium to use the dynamically linked system libfreetype6.so.) It generally takes ~4 hours from the time a FreeType commit is made to run all the Chromium bots with the new FreeType and then a manual approval [2]. Chromium has enough in it's third_party directory to be a distro by itself and tries to solve the distro type issues by just staying at tip of tree (and since it's all internal doesn't need the API / ABI stability). My earlier comments about releases and distros have a lot more to do with the Chromium (not Chrome) builds the distros do, since the Chromium bug tracker sometimes gets reports about an old FreeType in the distro misbehaving [3][4]. These are examples of things that would have been nice to cherry-pick in a FreeType branch and just let the distros pick up. Chromium somewhat needs to be at FreeType tip of tree anyway for all the fuzzing, as Chromium also runs the FreeType fuzzers and a few others in addition that fuzz FreeType (independent of ossfuzz). Since keeping up to date is now automated, far from trying to be rid of it, we actually like it.

[2] https://autoroll.skia.org/r/freetype-chromium
[3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=932303
[4] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=929982

There are probably several dimensions to explore from this, 
from the simplest things to full goodies like Skia Gold which 
is really impressive, can be used for non-Skia projects, 
but requires setting up / administering / paying for 
Google-Cloud accounts / services.

If you're interested in Skia's Gold project I can put you in touch with the maintainers. They are interested in making it more easily available and run on more generic platforms.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]