Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 93249e30523a6281b5f1e9edc4f9e4418f048f61
https://github.com/WebKit/WebKit/commit/93249e30523a6281b5f1e9edc4f9e4418f048f61
Author: Alejandro G. Castro <[email protected]>
Date: 2026-09-22 (Tue, 22 Sep 2026)
Changed paths:
M LayoutTests/fast/borders/border-painting-solid.html
M LayoutTests/imported/mozilla/svg/winding-01.svg
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-image-centered-with-border-radius.html
M
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform-input-017.html
M LayoutTests/imported/w3c/web-platform-tests/css/css-ui/outline-027.html
M LayoutTests/imported/w3c/web-platform-tests/svg/shapes/rect-04.svg
M LayoutTests/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-01-t.svg
M LayoutTests/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t.svg
M LayoutTests/svg/custom/marker-stroke-dasharray-none-zero.svg
M Source/ThirdParty/skia/CMakeLists.txt
Log Message:
-----------
[WPE][GTK] Use distance fields for small paths in the GPU renderer
https://bugs.webkit.org/show_bug.cgi?id=324539
Reviewed by Carlos Garcia Campos and Nikolas Zimmermann.
Skia keeps two different atlas caches for small paths. The bitmap key is
built from the shape key, the upper 2x2 of the CTM and 8 bits each of the
subpixel translation, while the distance field key only holds the shape key
and the power of two dimension the field was generated at. Any path drawn
under an animated transform therefore misses the bitmap atlas on every frame
and pays a CPU re-raster, a texture upload and the atlas work that follows,
but the distance field entry is reused.
Skia already selects distance fields unconditionally on Android for this
reason. We added support for Skia to allow picking the behaviour when
compiling, now it is part of the library and can be enabled with the
build flag: SK_GANESH_SMALL_PATH_DISTANCE_FIELD_ALWAYS.
This improve Suits for MotionMark in rpi4 and desktop, we are still not
sure the effect everywhere so we activate it to verify what are we
getting.
The patch just adds the build option in the compilation.
Apparently distance field rasterization is not pixel identical to the bitmap
atlas. Edge coverage differs slightly, and that is enough to break nine
reftests. Updated the tolerances.
* Source/ThirdParty/skia/CMakeLists.txt:
* LayoutTests/fast/borders/border-painting-solid.html:
* LayoutTests/imported/mozilla/svg/winding-01.svg:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-image-centered-with-border-radius.html:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform-input-017.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/outline-027.html:
* LayoutTests/imported/w3c/web-platform-tests/svg/shapes/rect-04.svg:
* LayoutTests/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-01-t.svg:
* LayoutTests/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t.svg:
* LayoutTests/svg/custom/marker-stroke-dasharray-none-zero.svg:
Canonical link: https://commits.webkit.org/321588@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications