[skia-sync] Merge upstream Skia main (tip)#4307
Conversation
Bump the mono/skia submodule to catch up with upstream google/skia main-tip bug fixes. Both current and target milestones are m151 — this is NOT a version bump. Submodule range: e1be35b25f..0e4c4c4a1f (35 commits) Upstream merge base: 0fc8ba72e802af1003cf3e8cbbcda1fffdad88c1 Notable submodule changes: - Merged upstream/main into mono/skia skiasharp branch - SkMilestone.h kept at 151 (upstream advanced to 152 mid-cycle; we match VERSIONS.txt for the C API version-compat smoke test) - DEPS conflict resolved: keep our active pins (brotli 028fb5a2, vulkanmemoryallocator c788c521 [VMA 3.2.1], vulkan-headers 74d8a6cb, spirv-cross); refresh commented-out disabled dep hashes to upstream latest - VulkanAMDMemoryAllocator.cpp: revert upstream 272ed8a1f3 additions that require newer VMA API surface C API surface unchanged — no new *.generated.cs diffs. 5584 tests pass on Linux x64 (0 failures, 172 skipped). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
📦 Try the packages from this PRWarning Do not run these scripts without first reviewing the code in this PR. Step 1 — Download the packages bash / macOS / Linux: curl -fsSL https://raw.githubusercontent.com/mono/SkiaSharp/main/scripts/get-skiasharp-pr.sh | bash -s -- 4307PowerShell / Windows: iex "& { $(irm https://raw.githubusercontent.com/mono/SkiaSharp/main/scripts/get-skiasharp-pr.ps1) } 4307"Step 2 — Add the local NuGet source dotnet nuget add source ~/.skiasharp/hives/pr-4307/packages --name skiasharp-pr-4307More options
Or download manually from Azure Pipelines — look for the Remove the source when you're done: dotnet nuget remove source skiasharp-pr-4307 |
|
📖 Documentation Preview The documentation for this PR has been deployed and is available at: 🔗 View Staging Site This preview will be updated automatically when you push new commits to this PR. This comment is automatically updated by the documentation staging workflow. |
|
Closing: this was a validation run for the versions.json-driven rotation change (#4306), not a real sync. Deleting the branch. |
Automated bleeding-edge sync from the tip of upstream Skia (google/skia main).
Companion skia PR: mono/skia#276
[skia-sync] Merge upstream
mainbug fixes for m151This is a main-tip sync (
upstream/main→skia-sync/main), not amilestone bump. Both current and target milestones stay at m151; only
the submodule pointer, its DEPS/VMA fork patches, and
cgmanifest.jsonchange on the SkiaSharp side.
Companion mono/skia PR:
skia-sync/mainon mono/skia (see that PR'ssummary for merge/conflict/fork-patch details).
Version updates
None. This is a same-milestone sync:
scripts/VERSIONS.txt— unchanged (skia=151).scripts/azure-templates-variables.yml—SKIASHARP_VERSIONunchanged(
4.151.0).SkMilestone.h— kept at 151 (upstream mid-cycle bumped to 152; wereverted to keep the C API version-compat smoke test green).
Parent-repo changes
Only
cgmanifest.jsonchanged:commitHash(skia submodule)e1be35b25f2a32371d9a1924ef4d18e62ccff1f30e4c4c4a1fabc94cbe82835ae41292f37ce92751upstream_merge_commit79e2e1538e94bb1d6b5bbbc56279036aa7574b100fc8ba72e802af1003cf3e8cbbcda1fffdad88c1chrome_milestone151151(unchanged)Plus the submodule pointer bump (
externals/skia) to match.Binding / C# changes
None.
regenerate-bindings.ps1reported "No new functions found";binding/SkiaSharp/SkiaApi.generated.cshad no diff vsorigin/main. Diffcheck on
binding/**/*.generated.cscame back empty. No new C# wrappersneeded.
Build & test results
Linux x64 only (per workflow policy — Windows/macOS/iOS/Android/WASM builds
are the domain of other pipelines):
dotnet cake --target=externals-linux --arch=x64—succeeded in 11m 21s after the VMA fork-patch was applied. Produces
libSkiaSharp.so.151.0.0(11.3 MB) andlibHarfBuzzSharp.so.0.61421.0(2.9 MB).
dotnet build binding/SkiaSharp/SkiaSharp.csproj—succeeded (0 errors, 0 warnings across all TFMs incl.
net10.0,netstandard2.1,net462,net9.0,net48,net9.0-android35.0,net10.0-android36.0).dotnet test tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj—Passed! - Failed: 0, Passed: 5584, Skipped: 172, Total: 5756,
duration 2m 45s (net10.0|x64). Full log:
test-output.txtartifact.Breaking-change analysis
No API-surface changes. The C API is byte-identical, the generated
bindings are byte-identical, and no new public C# API needs review. Only a
submodule pointer +
cgmanifest.jsonmetadata bump reach downstream.Items needing human attention
built here. Windows / macOS / iOS / Android / WASM native pipelines should
verify the fork-patched
VulkanAMDMemoryAllocator.cppstill builds andbehaves correctly on their toolchains (it removes two struct-field writes
and one function-pointer copy — no runtime behavior expected to change on
VMA 3.2.1).
depend on newer VMA API (
priority,minAlignment,vkGetPhysicalDeviceProperties2KHR). If we bumpvulkanmemoryallocatorinDEPStoeb744ea7(or a tagged version thatincludes those fields), the
[skiasharp]fork patch onVulkanAMDMemoryAllocator.cppcan be dropped.update-versions.ps1in tip mode. The Phase 6 helper wrote theliteral ref string
upstream/chrome/m151intocgmanifest.json'supstream_merge_commitwhen invoked with-Current 151 -Target 151against amain-tip merge; had to be manuallyoverwritten with the actual
upstream/mainHEAD SHA. Consider fixing thescript to resolve the ref before writing.
Created by skia-upstream-sync.