Version 2.80.0
Major milestone update with Vulkan, ARM, and text overhaul · Released July 9, 2020 · NuGet · GitHub Release
Highlights
This is the biggest SkiaSharp release in years, upgrading to Skia milestone 80 and adding broad new platform support. Vulkan backends land on Android, Windows, and Linux. ARM64 support comes to Windows (UWP and Win32), and ARM/ARM64 support arrives for Linux — including Raspberry Pi. Text processing has been entirely rewritten around the new SKFont type with Span<T>-based APIs for near-zero-allocation performance. Native libraries are no longer embedded in managed DLLs, improving build times and giving developers better control over native assets. Three community contributors helped drive this release.
Breaking Changes
API Renames
SKEncoding→SKTextEncoding— The oldSKEncodingenum is deprecated in favor ofSKTextEncoding.GRPixelConfigdeprecated — UseSKColorTypeinstead for GPU surface configuration.
Minimum Version Bumps
- UWP minimum — Now requires Windows 10.0.16299 or later.
- .NET Framework minimum — Now requires .NET Framework 4.6.2 or later.
- Xamarin.Forms minimum — Now requires Xamarin.Forms 4.5+.
Color Space Rework
- Several
SKColorSpace-related types have been deprecated in favor of improved types with better access to transfer functions and ICC profiles. Usage ofSKMatrix44is being phased out.
Text Processing Rewrite
SKTextBlobandSKTextBlobBuildernow focus on glyphs and only expose convenience members for text. The underlying text engine has moved toSKFont.
Native Library Packaging
- Native libSkiaSharp binaries are no longer embedded in managed DLLs. This improves build performance but may require updating deployment configurations.
New Features
Engine
- Skia milestone 80 — Upgraded to the latest Skia engine with all upstream improvements. (Native Changelogs)
GPU & Rendering
- Vulkan backend support — Full Vulkan rendering support on Android, Windows, and Linux with new
GRVkBackendContext,GRVkImageInfo, and related types. ❤️ @tuccio ❤️ @MarchingCube - SharpVk integration — New
GRSharpVkBackendContextand extension methods forGRVkExtensionsto use SharpVk objects directly. - Streamlined GPU types —
GRContextandGRGlInterfacecreation and usage have been simplified.
Text
SKFonttype — New text-focused type that is a subset ofSKPaint, providing cleaner text APIs.Span<T>-based text APIs — Near-zero-allocation text processing across the text pipeline.- Improved
DrawTextOnPath—SKCanvas.DrawTextOnPathnow supports not warping characters, with a better managed implementation after native support was dropped in Skia. ❤️ @Ziriax - Simplified
DrawShapedText— New overloads forSKCanvas.DrawShapedTextvia SkiaSharp.HarfBuzz for easier common cases.
API Surface
SKColorSpacerework — New types for accessing transfer functions and ICC profiles.SKColorFonSKPaint— Get and set colors usingSKColorFwith optional color space support.SKPath.ToWinding()— Convert paths to winding fill type.- Additional
SKImageFilteroverloads — More factory method overloads for image filters. - Native version validation — The managed library now validates the native library version and throws if incompatible. (#1252)
Platform
- Windows ARM64 — Full ARM64 support for both UWP and Win32 platforms.
- Linux ARM / ARM64 — Native binaries for Debian ARM, ARM64, and Raspberry Pi.
- Alpine / musl support — Linux builds for Alpine and other musl-based distributions, including no-dependency variants.
- WASM static library (experimental) — Pre-built
.afile for WebAssembly viaSkiaSharp.NativeAssets.WebAssembly, for manual linking or use with Uno Platform. (#1389) - .NET Framework ARM — Proper 32/64 bit and ARM library loading for .NET Framework apps.
Platform Support
| Platform | What's New |
|---|---|
| 🪟 Windows | ARM64 for UWP and Win32, Vulkan backend, Nano Server support |
| 🐧 Linux | ARM / ARM64 / Raspberry Pi, Alpine / musl, Vulkan backend |
| 🤖 Android | Vulkan backend |
| 🌐 WebAssembly | Experimental static library package |
| 🍎 Apple | Xamarin.Forms minimum bumped to 4.5+ |
Community Contributors ❤️
| Contributor | What They Did |
|---|---|
| @tuccio | Vulkan backend support |
| @MarchingCube | Vulkan backend support |
| @Ziriax | Improved DrawTextOnPath with non-warping character support |
Links
Preview Build 33 (July 1, 2020)
Pre-release build leading up to the stable release.
Preview Build 24 (June 27, 2020)
Pre-release build with ongoing stabilization.
Preview Build 14 (June 18, 2020)
Pre-release build with ongoing stabilization.
Preview Build 12 (June 16, 2020)
Pre-release build with ongoing stabilization.
Preview Build 3 (June 8, 2020)
Initial preview of the 2.80.0 release cycle.