Version 4.150.0
Skia m150 upgrade with new image-filter APIs and performance improvements · Preview only · NuGet · GitHub Release
API changes · SkiaSharp API diff · HarfBuzzSharp 14.2.1
Highlights
SkiaSharp 4.150.0 upgrades the underlying Skia engine to Chrome milestone m150, delivering the latest upstream rendering improvements and bug fixes. This release expands the API surface with SKPaint.GetFastBounds() for efficient culling, three new filter factory methods (SKImageFilter.CreateCrop(), SKImageFilter.CreateEmpty(), and SKColorFilter.CreateOverdraw()), and a performance improvement that caches the SKSurface.Canvas wrapper across calls. HarfBuzzSharp 14.2.1 ships alongside this release — see the linked page for details. Community contributor ❤️ @ramezgerges delivered the canvas caching optimization, fixed a small-sigma raster blur regression, and cleaned up pre-v4 obsolete APIs.
Breaking Changes
- Pre-v4 obsolete APIs now error — Remaining pre-v4 APIs that were previously deprecated with warnings are now compile errors, and obsolete enums have been trimmed from the reference assembly. Update any code still using deprecated v3-era APIs. ❤️ @ramezgerges (#4195)
- Removed .NET Interactive (Polyglot Notebooks) support — The deprecated .NET Interactive integration has been removed. Users relying on the SkiaSharp Polyglot Notebooks extension should migrate to alternative display approaches. (#4186)
New Features
Engine
- Skia milestone m150 — Updates the underlying Skia engine to Chrome milestone m150, bringing the latest rendering improvements, shader optimizations, and platform fixes from upstream. (#4146)
- Skia m150 upstream bug fixes — Merges additional upstream m150 stability fixes from the Chrome branch. (#4190)
API Surface
SKPaint.GetFastBounds()— Returns the conservative bounds of what a paint stroke would cover, enabling efficient quick-reject culling to skip off-screen draw calls. (#4271)SKImageFilter.CreateCrop()— New factory that crops an image filter's output to a specified rectangle, composable with other filters in the pipeline. (#4229)SKImageFilter.CreateEmpty()— New factory returning a no-op transparent filter, useful as a neutral element in filter compositions. (#4228)SKColorFilter.CreateOverdraw()— New factory for overdraw visualization, enabling detection of redundant pixel coverage during rendering performance debugging. (#4227)
Performance
SKSurface.Canvaswrapper caching — TheCanvasproperty onSKSurfacenow caches and reuses the wrapper object across calls instead of allocating a new one each time, reducing GC pressure in render loops. ❤️ @ramezgerges (#4247)
Platform
- HarfBuzzSharp 14.2.1 — Updates HarfBuzz to version 14.2.1. See the HarfBuzzSharp 14.2.1 release page for binding details. (#4167)
- Tizen native builds in Docker — Tizen native dependency builds now run inside a Docker container for better reproducibility and build isolation. (#4154)
Bug Fixes
- Small-sigma raster blur regression — Fixes a raster pipeline blur regression for small sigma values by enabling
SK_AVOID_SLOW_RASTER_PIPELINE_BLURS, restoring correct fast-path blur behaviour. ❤️ @ramezgerges (#4269)
Community Contributors ❤️
| Contributor | What They Did |
|---|---|
| @ramezgerges | SKSurface.Canvas caching perf improvement; fixed small-sigma raster blur; promoted pre-v4 obsoletes to errors |
| Matthew Leibowitz | Tizen native dependency builds in Docker |
Links
Preview 2 (June 24, 2026)
Promoted pre-v4 obsoletes to compile errors, updated HarfBuzz to 14.2.1, removed deprecated .NET Interactive support, and migrated the test suite to xUnit v3.
Preview 1 (June 13, 2026)
Upgraded the Skia engine to milestone m150.