Version 3.119.0
Supersedes 3.118.0 · Rolls up preview-only work that was never released as stable — those changes are included cumulatively below.
Highlights
This is the first stable release since 3.116.1, rolling up all the work from the preview-only 3.117.x and 3.118.0 lines. The Skia engine advanced through three consecutive milestones (117 → 118 → 119), bringing two years of upstream rendering and codec improvements in one go. Community contributors added two entirely new CPU architectures — LoongArch64 and RISC-V 64-bit — enabled the long-awaited Direct3D 12 GPU backend on Windows, and contributed major API additions including SKCanvas.SaveLayerRec and SKMetalView on tvOS. Ten community contributors drove key user-facing features in this release.
Breaking Changes
None in this release.
New Features
Engine
- Skia milestones 117, 118, and 119 — Three consecutive Skia engine milestones, picking up upstream improvements to the Ganesh GPU pipeline, text shaping, image codec updates, and path optimizations. (#3047, #3048, #3062)
API Surface
- Missing
SKColorFiltertypes — Adds the full set ofSKColorFilterfactory methods that were absent from the C# bindings, including color matrix, lighting, blend, and compose filters. (#2882) SKCanvas.SaveLayerRec— ImplementsSkCanvas::SaveLayerRec, exposing the advancedSaveLayeroverload that accepts a backdrop filter and per-layer restore flags. ❤️ @ahmed605 (#2962)- Metal
GRBackendRenderTargetAPI across all platforms — Adds consistent Metal-backedGRBackendRenderTargetcreation APIs across all Apple platforms. ❤️ @spouliot (#3070) SKImage.FromPicturerestored — Fixed a broken implementation that regressed in an earlier build. (#3231)
Platform
- LoongArch64 support — SkiaSharp now builds and ships native binaries for the LoongArch64 architecture on Linux. ❤️ @4Darmygeometry (#3198)
- RISC-V 64-bit support — Native binaries are now built and shipped for the
linux-riscv64RID. ❤️ @kasperk81 (#3192) - Direct3D 12 backend on Windows — Enables the Skia Ganesh Direct3D 12 GPU backend, giving Windows apps a modern alternative to OpenGL for hardware-accelerated rendering. ❤️ @kation (#2823)
- OpenGL on Windows ARM — The OpenGL backend is now enabled on Windows ARM devices. (#3189)
SKMetalViewon tvOS — AddsSKMetalViewsupport to the tvOS platform, matching other Apple targets. ❤️ @martin (#3114)- Expanded Linux support — Extended the Linux build matrix to cover more distributions and configurations, including Alpine Linux cross-compilation support. ❤️ @kasperk81 (#3200, #3209)
Bug Fixes
- iOS Simulator Metal performance — Fixed a significant rendering performance regression when using the Metal backend on the iOS Simulator. ❤️ @taublast (#3156)
- .NET Framework / Mono
packages.configregression — Fixed a packaging regression that broke projects using the classicpackages.configNuGet format with .NET Framework or Mono. ❤️ @david.sungaila (#3112) - WebAssembly / Blazor app base path — Fixed WASM module loading when the application is hosted under a non-root base path. (#3092)
- .NET 9 ASP.NET Blazor compatibility — Resolved multiple issues with .NET 9 Blazor hosted apps. (#3064, #3082, #3088)
- Incorrect internal API call — Fixed a wrong native API call in the bindings. ❤️ @i (#3143)
- tvOS build target — Fixed an incorrect build target configuration for tvOS. (#3199)
Security
- CVE-2024-30105 addressed — Updated the build toolchain to address a .NET security vulnerability in the CI pipeline. ❤️ @pecolli (#3166)
Dependencies
All major native dependencies were updated to current stable versions:
- libpng updated to 1.6.44 (#3059)
- freetype2 updated to 2.13.3+ (#3061)
- libexpat updated to v2.6.4 (#3056)
- libjpeg-turbo updated to 2.1.5.1+ (#3060)
- harfbuzz updated to 8.3.1 (#3052)
- fontconfig updated to latest (#3221)
- VulkanMemoryAllocator updated to 3.2.1 ❤️ @kasperk81 (#3196)
- Android NDK updated to r27c with 16KB page alignment for Android 15+ (#3096)
Platform Support
| Platform | What's New |
|---|---|
| 🍎 Apple | SKMetalView on tvOS; Metal GRBackendRenderTarget API; iOS Simulator Metal performance fix |
| 🪟 Windows | Direct3D 12 GPU backend; OpenGL on ARM |
| 🐧 Linux | LoongArch64; RISC-V 64-bit; Alpine Linux and expanded distro support |
| 🤖 Android | NDK r27c with 16KB page alignment |
| 🌐 WebAssembly | .NET 9 Blazor fixes; base-path loading fix |
| 🎨 Core API | SKColorFilter factory methods; SKCanvas.SaveLayerRec; Metal GRBackendRenderTarget |
Community Contributors ❤️
| Contributor | What They Did |
|---|---|
| @ahmed605 | Implemented SKCanvas.SaveLayerRec |
| @4Darmygeometry | Added LoongArch64 native build support |
| @kasperk81 | Added RISC-V 64-bit support, updated VulkanMemoryAllocator, extended Alpine Linux cross-compilation |
| @kation | Enabled Direct3D 12 GPU backend on Windows |
| @martin | Added SKMetalView support on tvOS |
| @taublast | Fixed iOS Simulator Metal performance regression |
| @spouliot | Added Metal GRBackendRenderTarget API across all Apple platforms |
| @david.sungaila | Fixed .NET Framework / Mono packages.config regression |
| @pecolli | Addressed CVE-2024-30105 in the build toolchain |
| @i | Fixed an incorrect internal API call |