Version 4.151.0 (Unreleased)
Graphite GPU backends and new platform support
Highlights
SkiaSharp 4.151.0 introduces Graphite GPU backend bindings and expands platform support to Nano Server, Alpine, and Azure Linux. This release brings the next-generation Graphite GPU pipeline to .NET with bindings for Vulkan, Metal, and Dawn, alongside a backend-neutral async ReadPixels API. Platform coverage expands significantly with FreeType-backed font rendering on Nano Server and new containerised Linux targets. Several memory and allocation fixes land too.
Breaking Changes
None in this preview line.
Engine
- Upstream chrome/m151 bug fixes merged — Two upstream Skia syncs from the chrome/m151 branch apply engine-level stability and rendering correctness improvements. (#4537, #4538)
API Surface
- Graphite GPU backend bindings for Vulkan, Metal, and Dawn — New bindings expose Skia's next-generation Graphite rendering pipeline. Consumers can now create Graphite GPU contexts for Vulkan, Metal, and Dawn backends, unlocking the modern, lower-overhead GPU path. — ❤️ @ramezgerges (#3968)
- Backend-neutral async RequestReadPixels on SKImage and SKSurface — A new async ReadPixels API lets callers read pixel data from GPU-backed images and surfaces without blocking the render thread, working across all supported GPU backends. (#4545)
- New SkiaSharp.Vulkan.Silk.NET package — A dedicated NuGet package wraps the Silk.NET Vulkan interop layer, making it straightforward to wire up Vulkan contexts without custom P/Invoke boilerplate. (#4527)
Bug Fixes
- Memory leak in SKImage.Create raster failure path fixed — A CoTaskMem pixel buffer allocated during raster image creation was not freed when the native call failed, leading to a silent native memory leak. The buffer is now correctly released on failure. (#4455)
- Reduced allocations in text and shader hot paths — GetEncodedText no longer allocates an intermediate string on the null-terminated fast path, and SKRuntimeEffectUniforms pre-sizes its uniform lookup map to the known uniform count, eliminating resizing overhead. (#4498, #4512)
Platform
- FreeType font rendering on Windows Nano Server — Nano Server environments lack the GDI font stack. SkiaSharp now falls back to FreeType on Nano Server, enabling text rendering in containerised Windows workloads that was previously broken. — ❤️ @jeffska (#4280)
- Azure Linux, Alpine/musl, and Nano Server test targets added — Containerised CI test legs for Azure Linux, Alpine (musl libc), and Nano Server ensure SkiaSharp is continuously validated across these production-relevant environments. (#4515)
Community Contributors ❤️
Thank you to everyone who contributed to this release!
| Contributor | Contributions |
|---|---|
| @jeffska | Implemented FreeType font support for Windows Nano Server, unblocking text rendering in GDI-less container environments. (#4280) |
| @ramezgerges | Authored the Graphite GPU backend bindings for Vulkan, Metal, and Dawn. (#3968) |