Skip to content

[skia-sync] Merge upstream chrome/m150 bug fixes#4190

Merged
mattleibow merged 4 commits into
mainfrom
skia-sync/m150
Jun 24, 2026
Merged

[skia-sync] Merge upstream chrome/m150 bug fixes#4190
mattleibow merged 4 commits into
mainfrom
skia-sync/m150

Conversation

@mattleibow

@mattleibow mattleibow commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Automated upstream bug-fix sync for m150.

Companion skia PR: mono/skia#259

mono/SkiaSharp PR Summary: Update Skia milestone 150 (bug-fix sync)

Overview

Same-milestone sync: merged 2 upstream chrome/m150 cherry-picks.

Field Value
Branch skia-sync/m150
Target main
Type Same-milestone bug-fix sync (m150 → m150)
Submodule SHA f6ee107ea5

Upstream Commits Merged

SHA Title Impact
14d05ec761 [m150] Resolved a Data Race on fStream in SkTypeface_Mac 🟡 macOS/CoreText typeface thread-safety fix — relevant to SkiaSharp
9f330f1704 [graphite] Use stable collection for static bindings ⚪ Graphite/Dawn only — no C API or Ganesh impact

Breaking Change Analysis

No breaking changes. Both commits are internal correctness fixes with no public or C API surface change:

  • 14d05ec761 — [m150] Resolved a Data Race on fStream in SkTypeface_Mac
    • Affects src/ports/SkTypeface_mac_ct.{cpp,h}
    • Replaces the SkOnce stream-init guard with an SkSharedMutex (fStreamMutex): exclusive lock in onOpenStream, shared lock in onOpenExistingStream/onMakeClone
    • Fixes a data race where one thread initializing fStream could collide with another reading it. Relevant because the macOS/CoreText port backs SKTypeface on Apple platforms, where typefaces are commonly shared across threads.
  • 9f330f1704 — [graphite] Use stable collection for static bindings
    • Only affects src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp (std::vectorSkTBlockList/TArray for stable sampler-layout addresses)
    • SkiaSharp uses Ganesh, not Graphite/Dawn → zero runtime impact

Files Changed

File Change
cgmanifest.json Updated commitHash to f6ee107ea5 and upstream_merge_commit to 14d05ec761
externals/skia Submodule bumped to f6ee107ea5

Version Changes

No version number changes (same milestone, same nuget version 4.150.0).

Binding Regeneration

Bindings were regenerated — no changes (C API signatures unchanged by both commits).

Items Needing Human Attention

None. This is a clean, low-risk same-milestone bug-fix sync.

The CI will run the full platform matrix (macOS, Windows, Linux ARM64, iOS, Android, WASM) as part of the PR pipeline.

Created by skia-upstream-sync.

Same-milestone sync: upstream cherry-pick for m150.

New upstream commit:
- 9f330f1704 [graphite] Use stable collection for static bindings
  (Graphite/Dawn backend only - no C API or Ganesh impact)

Changes:
- externals/skia: bump to 7742707ec7 (merged upstream chrome/m150)
- cgmanifest.json: update commitHash and upstream_merge_commit

Breaking changes: None (Graphite-only change, SkiaSharp uses Ganesh)
Build: Linux x64 ✅
Tests: 5544 passed, 172 skipped, 0 failed ✅

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

📦 Try the packages from this PR

Warning

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 -- 4190

PowerShell / Windows:

iex "& { $(irm https://raw.githubusercontent.com/mono/SkiaSharp/main/scripts/get-skiasharp-pr.ps1) } 4190"

Step 2 — Add the local NuGet source

dotnet nuget add source ~/.skiasharp/hives/pr-4190/packages --name skiasharp-pr-4190
More options
Option Description
--successful-only / -SuccessfulOnly Only use successful builds
--force / -Force Overwrite previously downloaded packages
--list / -List List available artifacts without downloading
--build-id ID / -BuildId ID Download from a specific build

Or download manually from Azure Pipelines — look for the nuget artifact on the build for this PR.

Remove the source when you're done:

dotnet nuget remove source skiasharp-pr-4190

@github-actions

Copy link
Copy Markdown
Contributor

📖 Documentation Preview

The documentation for this PR has been deployed and is available at:

🔗 View Staging Site
🔗 View Staging Docs
🔗 View Staging Gallery (Blazor)
🔗 View Staging Gallery (Uno Platform)
🔗 View Staging SkiaFiddle

This preview will be updated automatically when you push new commits to this PR.


This comment is automatically updated by the documentation staging workflow.

Merge single upstream commit:
- 14d05ec761 [m150] Resolved a Data Race on fStream in SkTypeface_Mac
  (macOS thread safety fix, no C API or Ganesh impact)

Breaking change analysis: no HIGH or MEDIUM risk changes.
Both commits are macOS/Graphite internals, no C API impact.

Build: Linux x64 native build passed (1485 targets)
Tests: Passed - Failed: 0, Passed: 5544, Skipped: 172, Total: 5716

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@mattleibow mattleibow marked this pull request as ready for review June 24, 2026 15:08
mattleibow and others added 2 commits June 24, 2026 17:09
Repoint the submodule from the pre-merge feature-branch head
38b9d41d3d to f6ee107ea5, the merge commit of skia PR mono/skia#259
on the skiasharp branch (tree-identical to 38b9d41d3d). Update
cgmanifest.json commitHash to match.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@mattleibow mattleibow merged commit 3876d59 into main Jun 24, 2026
5 of 6 checks passed
@mattleibow mattleibow deleted the skia-sync/m150 branch June 24, 2026 21:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant