Skip to content

[skia-sync] Merge upstream chrome/m148#265

Closed
mattleibow wants to merge 3 commits into
release/4.148.xfrom
skia-sync/release-4.148.x
Closed

[skia-sync] Merge upstream chrome/m148#265
mattleibow wants to merge 3 commits into
release/4.148.xfrom
skia-sync/release-4.148.x

Conversation

@mattleibow

Copy link
Copy Markdown
Collaborator

Automated upstream merge of chrome/m148.

Skia upstream sync — release-line release/4.148.x (m148 → m148 bug fixes)

This is a bug-fix-only sync on the release line. The sync brings the
release/4.148.x branch in mono/skia up to the current tip of upstream
google/skia chrome/m148. Because CURRENT == TARGET, no milestone bump
or build-config changes are involved.

Upstream merge

Merged upstream/chrome/m148 (tip 46f2e16555cac1211f4087cf24728fd741ac6495)
into skia-sync/release-4.148.x on top of the previous m148 pin
(1a155bae3a — the tip of release/4.148.x before this sync).

New upstream commits pulled in (oldest → newest):

SHA Subject Touched paths
3a90f6662a [graphite] Use stable collection for static bindings src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp
46f2e16555 [m148] Resolved a Data Race on fStream in SkTypeface_Mac src/ports/SkTypeface_mac_ct.{cpp,h}

The merge was created with git merge --no-commit upstream/chrome/m148
followed by git commit, producing a proper two-parent merge commit
(d5c1f3f66dfc7c41f32240191b9a33bb55758f89) with attribution preserved.

Conflicts resolved

None. Automatic merge went well; stopped before committing as requested.
No git diff --check issues, no conflict markers, and no SkiaSharp fork
patches needed re-application — neither upstream commit overlaps any file
we maintain in the fork.

C API fixes

None required. Both upstream commits touch only upstream-only sources:

  • src/ports/SkTypeface_mac_ct.{cpp,h} — Apple/CoreText typeface backend
    (not part of our include/c/ / src/c/ shim).
  • src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp — Graphite/Dawn GPU
    backend. SkiaSharp uses Ganesh, not Graphite, so this file is not built
    into libSkiaSharp.

Our C API shim (src/c/*.cpp, include/c/*.h) is unchanged.
SK_C_INCREMENT remains 0 in include/c/sk_types.h, and the
SkiaSharp-side regenerated bindings show no diff.

Source-file inventory

git diff from the previous m148 pin to upstream's new tip shows no files
added or removed under src/ or include/, so no BUILD.gn adjustments
are needed and no upstream-side files were dropped.

Items needing human attention

None. This is a clean bug-fix sync with no unresolved questions.

Verification

  • ✅ Merge commit has two parents and preserves git blame attribution
  • ✅ Zero conflict markers (git diff --check clean)
  • ✅ C API files intact (ls src/c/*.cpp include/c/*.h matches pre-merge)
  • ✅ Native libSkiaSharp.so.148.0.0 builds on Linux x64 from this submodule SHA

Created by skia-upstream-sync.

lhkbob and others added 3 commits June 15, 2026 10:55
Since the layouts are passed by pointer in the `nextInChain` field,
their addresses need to stay valid until the BindGroupLayout is created.
With vector, if it ever grew, that would not remain the case. Since
there are usually only 0 to 1 immutable samplers, this likely never
happened (and also why it uses a built-in storage for 1).

Also removes the include for vector and uses TArray (we had been mixing
both throughout the file).

Bug: 520514458
Fixed: 523531990
Change-Id: I44c9566c68ab0e6c6d659ea77a423ddc50d53c76
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1264157
Reviewed-by: Thomas Smith <thomsmit@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
(cherry picked from commit 6a4be3a)
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1266356
There was a data race in SkTypeface_Mac where `onOpenStream`
and `onOpenExistingStream` would race to read/write `fStream`. While `onOpenStream` would begin initializing `fStream` on one thread, a separate thread could be calling `onOpenExistingStream` to try to read `fStream` before it was done initializing.

The issue was resolved by applying a mutex on `fStream`.

The cl introducing this bug (https://skia-review.git.corp.google.com/c/skia/+/204720) was focused on caching the typefaces received with a global process wide `gTFCache` to save on performance and memory. The issue arose in that since the SkTypeface_Mac could be accessed across threads, it became thread unsafe.

A test was added to this CL but removed as it was too large and took too long. It helps us keep it in the patch history for reference.

Bug: b/520535595
Bug: 520535595
Fixed: 524508854
Change-Id: Id28aeed3d67a5a5246d22681f2c7ab0e6c133558
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1264296
Commit-Queue: Alexis Cruz-Ayala <alexisdavidc@google.com>
Reviewed-by: Kaylee Lubick <kjlubick@google.com>
(cherry picked from commit ba3ee9b)
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1274476
Merges 2 upstream bug-fix commits from chrome/m148:
- 46f2e16 [m148] Resolved a Data Race on fStream in SkTypeface_Mac
- 3a90f66 [graphite] Use stable collection for static bindings

No conflicts during merge. C API unchanged.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants