Version 4.151.0
Skia m151 and performance · NuGet (prerelease)
API changes · SkiaSharp API diff · HarfBuzzSharp API diff
Highlights
SkiaSharp 4.151.0 updates the engine to Skia milestone m151 and ships a wave of managed-code performance improvements. Key wins include zero-allocation HarfBuzz UTF-8 encoding, zero-copy SKShaper glyph spans, and managed-code colour conversions. WebAssembly gains Emscripten 5.0.6 libraries for .NET 11 WASM. Several upstream chrome/m151 bug-fix syncs are included.
Breaking Changes
None in this preview line.
Engine
- Upgraded to Skia milestone m151 — The bundled Skia engine is now built from the m151 branch, bringing the latest upstream rendering features and fixes. (#4294)
- Four rounds of chrome/m151 upstream bug fixes — Stability and correctness patches from the Skia team's chrome/m151 branch have been merged in four incremental syncs. (#4312, #4382, #4443, #4489)
- CPU raster regression fixed — Restored SK_ENABLE_LEGACY_SHADERCONTEXT to resolve a CPU-side rasterisation regression introduced after the m151 upgrade. (#4428)
API Surface
- SKColor hex parsing optimised with ReadOnlySpan
overloads — Parsing SKColor from hex strings is faster and allocation-free, and new ReadOnlySpanoverloads avoid string allocation at call sites. (#4345) - Unsafe modifier removed from GRContextOptions — The unnecessary unsafe modifier has been removed from GRContextOptions, making it usable in projects without unsafe code enabled. (#3991)
Bug Fixes
- Native resource leak fixed in SKImage.FromEncodedData — SKImage.FromEncodedData(SKData, SKRectI) leaked a native handle when the crop rectangle was outside the image bounds. The leak has been fixed. (#3997)
- WASM build compatibility restored for SK_BUILD_FOR_WASM — A macro redefinition that broke WASM builds in certain toolchain configurations has been removed from the Skia submodule. — ❤️ @ramezgerges (#3788)
Lifecycle & Internals
- Broad managed-code performance improvements across hot paths — SKColor-to-SKColorF conversion, SKPMColor premultiply/unpremultiply, SKFourByteTag.Parse, and HarfBuzzSharp.Tag.Parse are all ported to managed integer math, eliminating P/Invoke round-trips on each call. HarfBuzzSharp.Buffer.AddUtf8(string) now uses pooled UTF-8 encoding with no per-call allocation, and SKShaper glyph results are read via zero-copy spans. (#4370, #4385, #4396, #4376, #4408, #4388)
Platform
- WebAssembly support for .NET 11 via Emscripten 5.0.6 — Pre-built Emscripten 5.0.6 static libraries are now included, enabling SkiaSharp to run on .NET 11 WASM with the new exnref exception-handling model. A CI test job validates WASM behaviour on preview .NET builds. — ❤️ @ramezgerges (#4459, #4487, #4488)
HarfBuzzSharp 14.2.1
HarfBuzzSharp 14.2.1 ships with this release; the Tag.Parse hot path is now allocation-free.
Community Contributors ❤️
Thank you to everyone who contributed to this release!
| Contributor | Contributions |
|---|---|
| @ramezgerges | WASM compatibility work: Emscripten 5.0.6 static libraries for .NET 11 and the SK_BUILD_FOR_WASM macro fix (#3788, #4340, #4459) |
Release Candidate 1 (July 21, 2026)
Release Candidate 1 added .NET 11 WASM support via Emscripten 5.0.6, fixed the native resource leak in SKImage.FromEncodedData, resolved the CPU raster regression, and pulled in the final chrome/m151 upstream fixes.
Preview 2 (July 14, 2026)
Preview 2 delivered a broad performance sweep — allocation-free HarfBuzz encoding, zero-copy SKShaper spans, managed colour conversions, and an upstream m151 bug-fix sync.
Preview 1 (July 2, 2026)
Preview 1 opened the 4.151.0 line with the Skia m151 engine upgrade.