Closed Bug 1582749 Opened Last month Closed Last month

8.59% raptor-tp6-fandom-firefox (linux64-shippable) regression on push c969a93b0ca78e59eee771e67f61ad28340b77dc (Sun September 15 2019)

Categories

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

Unspecified
Linux
defect

Tracking

()

RESOLVED FIXED
mozilla71
Tracking Status
firefox-esr60 --- unaffected
firefox-esr68 --- unaffected
firefox69 --- unaffected
firefox70 --- unaffected
firefox71 --- fixed

People

(Reporter: alexandrui, Assigned: lsalzman)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: perf, perf-alert, regression)

Attachments

(2 files)

Raptor has detected a Firefox performance regression from push:

https://hg.mozilla.org/integration/autoland/pushloghtml?changeset=c969a93b0ca78e59eee771e67f61ad28340b77dc

As author of one of the patches included in that push, we need your help to address this regression.

Regressions:

9% raptor-tp6-fandom-firefox linux64-shippable opt 148.96 -> 161.76

You can find links to graphs and comparison views for each of the above tests at: https://treeherder.mozilla.org/perf.html#/alerts?id=23073

On the page above you can see an alert for each affected platform as well as a link to a graph showing the history of scores for this test. There is also a link to a Treeherder page showing the Raptor jobs in a pushlog format.

To learn more about the regressing test(s) or reproducing them, please see: https://wiki.mozilla.org/TestEngineering/Performance/Raptor

*** Please let us know your plans within 3 business days, or the offending patch(es) will be backed out! ***

Our wiki page outlines the common responses and expectations: https://wiki.mozilla.org/TestEngineering/Performance/Talos/RegressionBugsHandling

Flags: needinfo?(lsalzman)
Component: Performance → Graphics: Text
Product: Testing → Core
Version: Version 3 → unspecified

Cairo would normally query both the advance and other metrics at the same time,
then store them in a glyph cache sitting on each cairo_scaled_font_t any time
any of the extents were queried. Each cached scaled glyph metrics would require
about 150 bytes of space and could thus use a horribly large amount of memory
when a lot of glyphs were being used within a scaled font.

This tries to duplicate the behavior of querying and storing both advance and
bounds at the same time to effectively cut the number of glyph loads in half
for most cases. This should only add another 8 bytes per hash entry to store
the cached bounds, thus putting us way ahead on memory usage compared to what
Cairo did under the hood.

Further, Cairo would keep around cairo_scaled_font_t's in a holdover cache
even after there are no existing references to them and the owning gfxFonts
have long since died. This gives an artificial boost in successive runs of the
benchmark, while not aiding in the performance of the first run. I don't
believe the extra memory use would be justified to reproduce that particular
behavior, especially since our expectations are that the glyph cache for
a gfxFont dies when the gfxFont itself dies from the gfxFontCache.

In any case, this should at least significantly boost our glyph metrics
performance on a cold start, with the caveat about the warm start case.

Assignee: nobody → lsalzman
Status: NEW → ASSIGNED
Flags: needinfo?(lsalzman)
OS: Unspecified → Linux
Priority: -- → P3
Pushed by lsalzman@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/db3d77b313a0
query FreeType glyph advance and bounds at the same time. r=jfkthame

Backed out 1 changesets (Bug 1582749) for build bustage at /builds/worker/workspace/build/src/gfx/thebes/gfxFT2FontBase

Push with failure: https://treeherder.mozilla.org/#/jobs?repo=autoland&selectedJob=267877720&resultStatus=testfailed%2Cbusted%2Cexception&classifiedState=unclassified&revision=db3d77b313a039dd81a586ffb60fb333cdf5da2d

Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=267877720&repo=autoland&lineNumber=24164

Backout link: https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=testfailed%2Cbusted%2Cexception&classifiedState=unclassified&revision=2b8364cfdb04bfdfde7c01589e48e24973c1ce9c

[task 2019-09-22T17:20:52.313Z] 17:20:52     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/dom/commandhandler'
[task 2019-09-22T17:20:52.313Z] 17:20:52     INFO -  dom/commandhandler/Unified_cpp_dom_commandhandler0.o
[task 2019-09-22T17:20:52.313Z] 17:20:52     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/dom/commandhandler'
[task 2019-09-22T17:20:52.328Z] 17:20:52     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/gfx/thebes'
[task 2019-09-22T17:20:52.331Z] 17:20:52     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang++ -m32 -o gfxFT2FontBase.o -c  -I/builds/worker/workspace/build/src/obj-firefox/dist/stl_wrappers -I/builds/worker/workspace/build/src/obj-firefox/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -DDEBUG=1 -DOS_POSIX=1 -DOS_LINUX=1 -DMOZ_ENABLE_FREETYPE -DGRAPHITE2_STATIC -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/builds/worker/workspace/build/src/gfx/thebes -I/builds/worker/workspace/build/src/obj-firefox/gfx/thebes -I/builds/worker/workspace/build/src/obj-firefox/ipc/ipdl/_ipdlheaders -I/builds/worker/workspace/build/src/ipc/chromium/src -I/builds/worker/workspace/build/src/ipc/glue -I/builds/worker/workspace/build/src/dom/base -I/builds/worker/workspace/build/src/dom/xml -I/builds/worker/workspace/build/src/gfx/skia -I/builds/worker/workspace/build/src/gfx/skia/skia/include/config -I/builds/worker/workspace/build/src/gfx/skia/skia/include/core -I/builds/worker/workspace/build/src/gfx/skia/skia/include/docs -I/builds/worker/workspace/build/src/gfx/skia/skia/include/gpu -I/builds/worker/workspace/build/src/gfx/skia/skia/include/utils -I/builds/worker/workspace/build/src/obj-firefox/dist/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nspr -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-firefox/mozilla-config.h -Qunused-arguments -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wc++1z-compat -Wc++2a-compat -Wcomma -Wimplicit-fallthrough -Werror=non-literal-null-conversion -Wstring-conversion -Wtautological-overlap-compare -Wtautological-unsigned-enum-zero-compare -Wtautological-unsigned-zero-compare -Wno-error=tautological-type-limit-compare -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=backend-plugin -Wno-error=return-std-move -Wno-error=atomic-alignment -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-unknown-warning-option -Wno-return-type-c-linkage -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -fno-aligned-new -fcrash-diagnostics-dir=/builds/worker/artifacts -march=pentium-m -msse -msse2 -mfpmath=sse -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -Xclang -load -Xclang /builds/worker/workspace/build/src/obj-firefox/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -Os -fno-omit-frame-pointer -funwind-tables -Werror -I/builds/worker/workspace/build/src/obj-firefox/dist/include/cairo -I/builds/worker/workspace/build/src/widget/gtk/compat-gtk3 -pthread -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/gtk-3.0/unix-print -pthread -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng12 -pthread -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/libdrm  -MD -MP -MF .deps/gfxFT2FontBase.o.pp   /builds/worker/workspace/build/src/gfx/thebes/gfxFT2FontBase.cpp
[task 2019-09-22T17:20:52.332Z] 17:20:52     INFO -  In file included from /builds/worker/workspace/build/src/gfx/thebes/gfxFT2FontBase.cpp:6:
[task 2019-09-22T17:20:52.332Z] 17:20:52    ERROR -  /builds/worker/workspace/build/src/gfx/thebes/gfxFT2FontBase.h:79:33: error: expected identifier
[task 2019-09-22T17:20:52.332Z] 17:20:52     INFO -      enum { INVALID = INT16_MIN, OVERFLOW = INT16_MAX };
[task 2019-09-22T17:20:52.332Z] 17:20:52     INFO -                                  ^
[task 2019-09-22T17:20:52.332Z] 17:20:52     INFO -  /usr/include/math.h:341:19: note: expanded from macro 'OVERFLOW'
[task 2019-09-22T17:20:52.332Z] 17:20:52     INFO -  # define OVERFLOW       3
[task 2019-09-22T17:20:52.332Z] 17:20:52     INFO -                          ^
[task 2019-09-22T17:20:52.332Z] 17:20:52     INFO -  1 error generated.
[task 2019-09-22T17:20:52.332Z] 17:20:52     INFO -  /builds/worker/workspace/build/src/config/rules.mk:785: recipe for target 'gfxFT2FontBase.o' failed
[task 2019-09-22T17:20:52.332Z] 17:20:52    ERROR -  make[4]: *** [gfxFT2FontBase.o] Error 1
[task 2019-09-22T17:20:52.332Z] 17:20:52     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/gfx/thebes'
[task 2019-09-22T17:20:52.332Z] 17:20:52     INFO -  make[4]: *** Waiting for unfinished jobs....
[task 2019-09-22T17:20:52.332Z] 17:20:52     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/dom/clients/manager'
[task 2019-09-22T17:20:52.333Z] 17:20:52     INFO -  dom/clients/manager/Unified_cpp_dom_clients_manager1.o
[task 2019-09-22T17:20:52.333Z] 17:20:52     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/dom/clients/manager'
[task 2019-09-22T17:20:52.381Z] 17:20:52     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/gfx/angle/targets/translator'
[task 2019-09-22T17:20:52.381Z] 17:20:52     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang++ -m32 -o RewriteTexelFetchOffset.o -c  -I/builds/worker/workspace/build/src/obj-firefox/dist/stl_wrappers -I/builds/worker/workspace/build/src/obj-firefox/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -DDEBUG=1 -D__NDK_FPABI__= -DANGLE_SKIP_DXGI_1_2_CHECK -DANGLE_ENABLE_KEYEDMUTEX -DANGLE_ENABLE_ESSL -DANGLE_ENABLE_GLSL -DANGLE_ENABLE_HLSL -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNOMINMAX -DNTDDI_VERSION=0x0A000003 -DUNICODE -DWINVER=0x0A00 -D_ATL_NO_OPENGL -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SECURE_ATL -D_UNICODE -I/builds/worker/workspace/build/src/gfx/angle/targets/translator -I/builds/worker/workspace/build/src/obj-firefox/gfx/angle/targets/translator -I/builds/worker/workspace/build/src/gfx/angle/checkout/include -I/builds/worker/workspace/build/src/gfx/angle/checkout/out/gen/angle -I/builds/worker/workspace/build/src/gfx/angle/checkout/src -I/builds/worker/workspace/build/src/gfx/angle/checkout/src/common/third_party/base -I/builds/worker/workspace/build/src/obj-firefox/dist/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nspr -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-firefox/mozilla-config.h -Qunused-arguments -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wc++1z-compat -Wc++2a-compat -Wcomma -Wimplicit-fallthrough -Werror=non-literal-null-conversion -Wstring-conversion -Wtautological-overlap-compare -Wtautological-unsigned-enum-zero-compare -Wtautological-unsigned-zero-compare -Wno-error=tautological-type-limit-compare -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=backend-plugin -Wno-error=return-std-move -Wno-error=atomic-alignment -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-unknown-warning-option -Wno-return-type-c-linkage -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -fno-aligned-new -fcrash-diagnostics-dir=/builds/worker/artifacts -march=pentium-m -msse -msse2 -mfpmath=sse -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -Xclang -load -Xclang /builds/worker/workspace/build/src/obj-firefox/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -Os -fno-omit-frame-pointer -funwind-tables -msse2  -MD -MP -MF .deps/RewriteTexelFetchOffset.o.pp   /builds/worker/workspace/build/src/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteTexelFetchOffset.cpp
[task 2019-09-22T17:20:52.381Z] 17:20:52     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/gfx/angle/targets/translator'
[task 2019-09-22T17:20:52.381Z] 17:20:52     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/gfx/angle/targets/translator'
[task 2019-09-22T17:20:52.381Z] 17:20:52     INFO -  gfx/angle/targets/translator/RewriteUnaryMinusOperatorFloat.o
[task 2019-09-22T17:20:52.381Z] 17:20:52     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/gfx/angle/targets/translator'
[task 2019-09-22T17:20:52.577Z] 17:20:52     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/gfx/thebes'
[task 2019-09-22T17:20:52.585Z] 17:20:52     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang++ -m32 -o gfxFT2Utils.o -c  -I/builds/worker/workspace/build/src/obj-firefox/dist/stl_wrappers -I/builds/worker/workspace/build/src/obj-firefox/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -DDEBUG=1 -DOS_POSIX=1 -DOS_LINUX=1 -DMOZ_ENABLE_FREETYPE -DGRAPHITE2_STATIC -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/builds/worker/workspace/build/src/gfx/thebes -I/builds/worker/workspace/build/src/obj-firefox/gfx/thebes -I/builds/worker/workspace/build/src/obj-firefox/ipc/ipdl/_ipdlheaders -I/builds/worker/workspace/build/src/ipc/chromium/src -I/builds/worker/workspace/build/src/ipc/glue -I/builds/worker/workspace/build/src/dom/base -I/builds/worker/workspace/build/src/dom/xml -I/builds/worker/workspace/build/src/gfx/skia -I/builds/worker/workspace/build/src/gfx/skia/skia/include/config -I/builds/worker/workspace/build/src/gfx/skia/skia/include/core -I/builds/worker/workspace/build/src/gfx/skia/skia/include/docs -I/builds/worker/workspace/build/src/gfx/skia/skia/include/gpu -I/builds/worker/workspace/build/src/gfx/skia/skia/include/utils -I/builds/worker/workspace/build/src/obj-firefox/dist/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nspr -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-firefox/mozilla-config.h -Qunused-arguments -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wc++1z-compat -Wc++2a-compat -Wcomma -Wimplicit-fallthrough -Werror=non-literal-null-conversion -Wstring-conversion -Wtautological-overlap-compare -Wtautological-unsigned-enum-zero-compare -Wtautological-unsigned-zero-compare -Wno-error=tautological-type-limit-compare -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=backend-plugin -Wno-error=return-std-move -Wno-error=atomic-alignment -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-unknown-warning-option -Wno-return-type-c-linkage -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -fno-aligned-new -fcrash-diagnostics-dir=/builds/worker/artifacts -march=pentium-m -msse -msse2 -mfpmath=sse -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -Xclang -load -Xclang /builds/worker/workspace/build/src/obj-firefox/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -Os -fno-omit-frame-pointer -funwind-tables -Werror -I/builds/worker/workspace/build/src/obj-firefox/dist/include/cairo -I/builds/worker/workspace/build/src/widget/gtk/compat-gtk3 -pthread -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/gtk-3.0/unix-print -pthread -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng12 -pthread -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/libdrm  -MD -MP -MF .deps/gfxFT2Utils.o.pp   /builds/worker/workspace/build/src/gfx/thebes/gfxFT2Utils.cpp
[task 2019-09-22T17:20:52.585Z] 17:20:52     INFO -  In file included from /builds/worker/workspace/build/src/gfx/thebes/gfxFT2Utils.cpp:6:
[task 2019-09-22T17:20:52.585Z] 17:20:52    ERROR -  /builds/worker/workspace/build/src/gfx/thebes/gfxFT2FontBase.h:79:33: error: expected identifier
[task 2019-09-22T17:20:52.585Z] 17:20:52     INFO -      enum { INVALID = INT16_MIN, OVERFLOW = INT16_MAX };
[task 2019-09-22T17:20:52.585Z] 17:20:52     INFO -                                  ^
[task 2019-09-22T17:20:52.585Z] 17:20:52     INFO -  /usr/include/math.h:341:19: note: expanded from macro 'OVERFLOW'
[task 2019-09-22T17:20:52.585Z] 17:20:52     INFO -  # define OVERFLOW       3
[task 2019-09-22T17:20:52.585Z] 17:20:52     INFO -                          ^
[task 2019-09-22T17:20:52.585Z] 17:20:52     INFO -  1 error generated.
[task 2019-09-22T17:20:52.585Z] 17:20:52     INFO -  /builds/worker/workspace/build/src/config/rules.mk:785: recipe for target 'gfxFT2Utils.o' failed
[task 2019-09-22T17:20:52.585Z] 17:20:52    ERROR -  make[4]: *** [gfxFT2Utils.o] Error 1
[task 2019-09-22T17:20:52.585Z] 17:20:52     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/gfx/thebes'
[task 2019-09-22T17:20:52.585Z] 17:20:52     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/dom/credentialmanagement'
[task 2019-09-22T17:20:52.585Z] 17:20:52     INFO -  mkdir -p '.deps/'
[task 2019-09-22T17:20:52.585Z] 17:20:52     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/dom/credentialmanagement'
Flags: needinfo?(lsalzman)
Flags: needinfo?(lsalzman)
Pushed by lsalzman@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/231b83782b2c
query FreeType glyph advance and bounds at the same time. r=jfkthame
Status: ASSIGNED → RESOLVED
Closed: Last month
Resolution: --- → FIXED
See Also: → 1583196
Duplicate of this bug: 1583196

During metrics initialization we load a few uncached glyph widths which can occasionally
show up in a profile. This should reduce the overhead of that somewhat.

Pushed by lsalzman@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/1ad30fe33f92
try to load only the advance width from FreeType when possible. r=jfkthame

To be clear, both of these patches will only partially address the regression due to Cairo's dead font caching behavior as detailed above. Whatever regression is left over after these patches land, we will simply accept.

You need to log in before you can comment on or make changes to this bug.