-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
M121 public #222
M121 public #222
Conversation
…-g746dbd8c61..canvaskit/0.38.2-2397-g349c1179c4 $ git whatchanged canvaskit/0.38.2-2393-g746dbd8c61..canvaskit/0.38.2-2397-g349c1179c4 commit 349c1179c43ef46f2804404952b9460dc007d76a Author: John Stiles <[email protected]> Date: Sat Nov 25 22:41:31 2023 -0500 Use SkToInt to avoid warning in Flutter roll. The Flutter roll was failing due to -Wsign-compare. Bug: chromium:1505053 Change-Id: Id12876f6f97682466f19b56cfa562366380f27cb Reviewed-on: https://skia-review.googlesource.com/c/skia/+/783036 Auto-Submit: John Stiles <[email protected]> Commit-Queue: Brian Osman <[email protected]> Reviewed-by: Brian Osman <[email protected]> (cherry picked from commit 0eea0b277d7d35e4c2612646d7dfe507341e337e) Reviewed-on: https://skia-review.googlesource.com/c/skia/+/783297 Reviewed-by: John Stiles <[email protected]> Commit-Queue: John Stiles <[email protected]> Auto-Submit: Brian Osman <[email protected]> :100644 100644 002618a118 36e9685a75 M src/gpu/ganesh/ops/DrawMeshOp.cpp commit 20006736edb40de72dd5a7d5cce2ce877c9460bd Author: John Stiles <[email protected]> Date: Fri Nov 24 09:40:11 2023 -0500 Avoid combining extremely large meshes. Bug: chromium:1505053 Change-Id: I42f2ff872bbf054686ec7af0cc85ff63055fcfbf Reviewed-on: https://skia-review.googlesource.com/c/skia/+/782936 Commit-Queue: Michael Ludwig <[email protected]> Reviewed-by: Michael Ludwig <[email protected]> Auto-Submit: John Stiles <[email protected]> (cherry picked from commit 6169a1fabae1743709bc9641ad43fcbb6a4f62e1) Reviewed-on: https://skia-review.googlesource.com/c/skia/+/782577 Commit-Queue: Brian Osman <[email protected]> Auto-Submit: Brian Osman <[email protected]> Reviewed-by: John Stiles <[email protected]> Commit-Queue: John Stiles <[email protected]> :100644 100644 5ea123d5fb 002618a118 M src/gpu/ganesh/ops/DrawMeshOp.cpp commit 48311c8e39d1892245dfd5ecc1f557a14825ec69 Author: Jim Van Verth <[email protected]> Date: Tue Nov 7 15:12:39 2023 -0500 Fix colorspace transform with multitexture color text. Color text glyphs can be stored across multiple atlas textures, which requires sampling from one or another texture. However, if we use multiple appendTextureLookup calls with the same colorspace transform helper, it ends up generating multiple copies of its helper functions. Instead, we will pick our texture, sample its value, and apply the colorspace transform to the result outside the if-then-else block. Bug: b/309422936 Bug: chromium:1499098 Change-Id: I468fe3ef323081b22537427f1f7a894e8a52073c Reviewed-on: https://skia-review.googlesource.com/c/skia/+/775397 Reviewed-by: Brian Osman <[email protected]> Commit-Queue: Jim Van Verth <[email protected]> (cherry picked from commit f91d39395e85b5803dd6231ba111e59955a0b012) Reviewed-on: https://skia-review.googlesource.com/c/skia/+/779337 :100644 100644 c06f830e4c 1e9ae1b5f1 M src/gpu/ganesh/effects/GrAtlasedShaderHelpers.h :100644 100644 d575b18972 60ede17f3e M src/gpu/ganesh/effects/GrBitmapTextGeoProc.cpp commit ad9fc9ee5fb0bfd199b2db596f823395431f53c6 Author: Michael Ludwig <[email protected]> Date: Wed Nov 8 13:14:09 2023 -0500 GrBlurUtils: Subset on low-res pixel boundary, not float coords The low-res blurred image was rendered into the rounded-out coords, and any decal-tiling should occur beyond their boundaries. By using the original scaled coords as the subset boundary, we'd introduce transparency at the edge when re-expanding. Previously this was never visible because of quirks in how SkBlurImageFilter requested its output (always padded with the blur radius, even if it were to then be cropped). While the changes to the subsetting logic accounted for 90% of the visible seams when testing in chrome (and all the visible seams when running in viewer), it was also necessary for the downscaled blur to write one extra pixel of padding that could be sampled from when doing the re-expand. Bug: chromium:1500021 Change-Id: I18c147270db7b42568f4e7034b13c2dc4ab19e4a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/775517 Reviewed-by: Robert Phillips <[email protected]> Commit-Queue: Michael Ludwig <[email protected]> (cherry picked from commit e585bb68893be9e4f771f1da6e850b3f587ba9c4) Reviewed-on: https://skia-review.googlesource.com/c/skia/+/776156 Commit-Queue: John Stiles <[email protected]> Auto-Submit: Michael Ludwig <[email protected]> Reviewed-by: John Stiles <[email protected]> (cherry picked from commit 96270e0be6b3acdbd59e5931a122be16958c9c1e) Reviewed-on: https://skia-review.googlesource.com/c/skia/+/776957 Commit-Queue: Robert Phillips <[email protected]> :100644 100644 49ca7459ac 313f5c4ce5 M gm/blurs.cpp :100644 100644 cf3974bb5f e3dee58cc1 M src/gpu/ganesh/GrBlurUtils.cpp
Milestone 121 ------------- * Deprecated `GrMipmapped` and `GrMipMapped` alias have been removed in favor of `skgpu::Mipmapped`.
$ diff -u skia-m120/include/core/SkSurfaceProps.h skia-m121/include/core/SkSurfaceProps.h --- skia-m120/include/core/SkSurfaceProps.h 2023-12-01 00:02:47.000000000 +0000 +++ skia-m121/include/core/SkSurfaceProps.h 2023-12-06 02:01:54.000000000 +0000 @@ -59,8 +59,6 @@ // Currently this only impacts GPU backends kAlwaysDither_Flag = 1 << 2, }; - /** Deprecated alias used by Chromium. Will be removed. */ - static const Flags kUseDistanceFieldFonts_Flag = kUseDeviceIndependentFonts_Flag; /** No flags, unknown pixel geometry. */ SkSurfaceProps();
…ypeface::MakeEmpty The behavior is different: Returns the default normal typeface, which is never nullptr. vs Returns a non-null typeface which contains no glyphs. It started to be behind a "#if !defined(SK_DISABLE_LEGACY_DEFAULT_TYPEFACE)" in m120. "SK_DEFAULT_TYPEFACE_IS_EMPTY" and "SK_DISABLE_LEGACY_DEFAULT_TYPEFACE" are defined in m121. Milestone 120 ------------- * `SkTypeface::MakeFromName`, `SkTypeface::MakeFromFile`, `SkTypeface::MakeFromStream`, and `SkTypeface::MakeFromData` are deprecated and will be removed eventually. These should be replaced with calls directly to the SkFontMgr that can provide the appropriate typefaces. `SkTypeface::MakeDefault()` has been deprecated. Soon it will return an empty typeface and eventually be removed. `SkTypeface::UniqueID()` has been removed - clients should use the method instead of this static function.
…ts/Distortable.ttf
Milestone 116 ------------- * Added a new public type, `SkColorTable`, to own the lookup tables passed into `SkColorFilters::Table`, which allows clients and the returned `SkColorFilter` to share the table memory instead of having to duplicate it in any wrapper types that lazily create Skia representations. * The deprecated `SkTableColorFilter` class and its methods have been removed. Clients should use `SkColorFilters::Table` and `SkColorFilters::TableARGB` (defined in include/core/SkColorFilter.h). Fixes kyamagu#227 See also: commit e775fcb Author: Hin-Tak Leung <[email protected]> Date: Thu Oct 26 00:45:50 2023 +0100 Emulate pre-m116 SkTableColorFilter class and SkTableColorFilter::Make
@kyamagu skia m122 should be out in a few days so this is probaby ready to go soon. Still missing a "README.m121" etc, but code-wise this is okay. The number of skipped tests has just gone under 100, so it is only 70-ish worse than m87 now. I'll add a README.m121 soon. As for the default typeface case, it is difficult to tell what was the default before (it differs from system to system), but I think the old behavior is probably the same as |
@HinTak Thanks! As for |
@kyamagu it is kind of a difficult choice - upstream obviously does not want people to assume they can get a font/typeface that draws something with null input, but I expect many existing skia-python users do (as in #148 ). Also I suspect very few skia-python users actually want the MakeEmpty behavior (a valid font/typeface that draws nothing). Also slightly complicated is, do people call the default constructor THEN make changes to it, and how would it work if it starts with "match anything"? There is also the 3rd option, which is withdrawing |
@HinTak Sure, let's take option 2: keeping the backward compatibility with a deprecation warning. It is possible to explicitly emit python warning ( |
@kyamagu cool. I'll look into adding the warning and including it in this pull. |
@HinTak Thanks! Perhaps calling |
The closest is SkTypeface::MakeFromName("", SkFontStyle()), but that's also Deprecated: call SkFontMgr::matchFamilyStyle or SkFontMgr::legacyMakeTypeface with a "#if !defined(SK_DISABLE_LEGACY_FONTMGR_REFDEFAULT)" already, so we go directly to use SkFontMgr::legacyMakeTypeface(). Use member function from SkFontMgr::RefDefault() instance object
Okay, the latest does this (4 times, with 4 tests):
|
…canvaskit/0.38.2-2848-g589c465550
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
Just be careful regarding the future maintenance effort related to the freetype patch.
@HinTak Many thanks! |
…led by SK_DISABLE_LEGACY_DEFAULT_TYPEFACE
@kyamagu thanks for the heads-up on the font patch. I am aware of it being flaky and font-related development is an active area in recent skia - that's what brought me to skia-python, actually. Was wanting to have anothe look at #148 before merging.
|
looking at the re-enable tests, I realized |
Skipped is below 100 now.
I am adding deprecation warnings to |
BTW, python 3.7 is already EOL. Feel free to drop the support |
@kyamagu the new release is having a 403 error reaching pypi - any authentication change recently? Maybe actions needs updating (it says "legacy")? ERROR HTTPError: 403 Forbidden from https://upload.pypi.org/legacy/ About python 3.7 - cutting it doesn't really save build time, so probably can leave it alone until something breaks... |
@HinTak Will look into it |
The changes are all straight-forward. The font tests pass, but the change of what Typeface.MakeDefault does (from a normal default to empty) as from upstream may need rethinking / emulate properly, or with a large warning in the release notes. It will likely break somebody's code, if they assume MakeDefault will give them Times/Arial/Noto, instead of a font with no glyphs.
Re-think on that.