Table of Contents

Version 3.119.0

NuGet

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 SKColorFilter types — Adds the full set of SKColorFilter factory methods that were absent from the C# bindings, including color matrix, lighting, blend, and compose filters. (#2882)
  • SKCanvas.SaveLayerRec — Implements SkCanvas::SaveLayerRec, exposing the advanced SaveLayer overload that accepts a backdrop filter and per-layer restore flags. ❤️ @ahmed605 (#2962)
  • Metal GRBackendRenderTarget API across all platforms — Adds consistent Metal-backed GRBackendRenderTarget creation APIs across all Apple platforms. ❤️ @spouliot (#3070)
  • SKImage.FromPicture restored — 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-riscv64 RID. ❤️ @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)
  • SKMetalView on tvOS — Adds SKMetalView support 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.config regression — Fixed a packaging regression that broke projects using the classic packages.config NuGet 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