Version 3.119.4
Supersedes 3.119.3 · Rolls up preview-only work that was never released as stable — those changes are included cumulatively below.
Highlights
Version 3.119.4 is a substantial rollup covering 140 pull requests, absorbing all changes from the preview-only 3.119.3 line. The headlining additions are a brand-new SkiaSharp.Views.Gtk4 package, native support for Linux Bionic and Tizen x64/arm64, and Spectre mitigations for both Windows and Linux native libraries. This release also delivers a wave of crash fixes (Android MAUI tab switching, GTK4 Cairo assertion, tvOS framework splits, Linux ARM64 fontconfig, AoT with reflection disabled, and D3D12 on older Windows machines) alongside an SKManagedStream stability refactor and a full round of native dependency security updates. A strong contingent of community contributors — ❤️ @4Darmygeometry, ❤️ @SimonvBez, ❤️ @sshumakov, ❤️ @Copilot, and ❤️ @ramezgerges — shaped this release.
Breaking Changes
None in this release.
New Features
Platform
SkiaSharp.Views.Gtk4package — A new first-class GTK4 view package powered by GirCore GTK-4.0 managed bindings, giving GTK4 applications a nativeSKDrawingAreawithout manual interop. ❤️ @Copilot (#3527)- Linux Bionic native assets — Adds native library support for Linux Bionic, enabling SkiaSharp in environments built against Android's Bionic libc. ❤️ @4Darmygeometry (#3217)
- Tizen x64 and arm64 native builds — Adds full 64-bit native build support for Tizen, covering both x64 and arm64 architectures and updating to Tizen Studio 6.1. (#3620, #3619)
Compatibility
- C# 13 support on legacy TFMs — Integrates PolySharp so that C# 13 language features compile cleanly on older target frameworks, keeping the codebase modern without dropping older consumers. ❤️ @4Darmygeometry (#3642)
- .NET 4.8 full-framework target — Adds a
net48build configuration and uses it for Windows validation, improving test coverage for legacy .NET Framework consumers. ❤️ @4Darmygeometry (#3631) - .NET 10 SDK — Updates the build to the .NET 10 SDK with workload version-set pinning for reproducible CI across all platforms. (#3514)
Security
- Spectre mitigation for Windows — Enables
/QspectreforlibSkiaSharp.dll. ❤️ @sshumakov (#3496) - Spectre mitigation for Linux — Enables the Spectre mitigation compiler flag for
libSkiaSharp.so. ❤️ @sshumakov (#3502)
Bug Fixes
Android
SKGLViewblank after MAUI TabBar tab switch — Fixes a rendering regression where anSKGLViewstopped drawing after the user switched away from and back to a MAUI tab. ❤️ @SimonvBez (#3076)
Apple
- tvOS device/simulator framework split — Fixes
NativeReferencetargets for tvOS to correctly separate device and simulator native frameworks, matching the iOS pattern and resolving archive-time linker errors. (#3561, #3563)
Linux
- GTK4 Cairo assertion crash in
SKDrawingArea— Resolves a Cairo assertion failure that occurred when usingSKDrawingAreain a GTK4 application. (#3562) - Linux ARM64 startup crash — Adds the fontconfig runtime library to the cross-compile sysroot, fixing a crash on ARM64 Linux systems caused by a missing shared library at startup. (#3494)
- loongarch build mapping — Fixes the loongarch architecture identifier in the Linux native build mapping so that the correct native library is loaded on LoongArch64 hosts. (#3648)
Windows
- D3D12 crash on systems without DirectX 12 — Delay-loads D3D12 DLLs so that SkiaSharp no longer crashes at startup on machines that do not have DirectX 12 installed. (#3633)
- Windows Forms
DesignModedetection — Uses theDesignModeproperty directly in Windows Forms controls to correctly identify the design-time context and avoid spurious paint calls. (#3614)
.NET / Runtime
- AoT crash when
IlcDisableReflection=true— Fixes a native AOT publish crash that occurred when reflection was fully disabled. ❤️ @Copilot (#3485)
API
SKManagedStreamlifetime stability — RefactorsSKManagedStreamto replace the fragile parent/child ownership chain with anSKDatasnapshot, eliminating a class of use-after-free and lifetime-related crashes. ❤️ @Copilot (#3589)
Dependencies
All updates address known CVEs or incorporate upstream bug fixes.
- libpng — Updated to 1.6.58 (#3452, #3723)
- libwebp — Updated to 1.6.0 (#3478)
- brotli — Updated to 1.2.0 (#3469)
- libexpat — Bumped from 2.6.4 to 2.7.3 (#3458)
- libfontconfig-dev (loong64) — Updated from 2.17.1-4 to 2.17.1-5. ❤️ @Copilot (#3531)
Platform Support
| Platform | What's New |
|---|---|
| 🍎 Apple | tvOS device/simulator framework split fixed |
| 🪟 Windows | Spectre mitigation, D3D12 delay-load fix, Windows Forms DesignMode fix |
| 🐧 Linux | Spectre mitigation, Linux Bionic native assets, GTK4 package, ARM64 fontconfig fix, GTK4 Cairo fix, loongarch build fix |
| 🤖 Android | SKGLView MAUI tab-switch rendering fix |
| 🎨 Core API | SKManagedStream refactor, AoT reflection fix |
| 🏗️ Build | .NET 10 SDK, Tizen x64/arm64, C# 13 on legacy TFMs, .NET 4.8 target |
Community Contributors ❤️
| Contributor | What They Did |
|---|---|
| @4Darmygeometry | Linux Bionic native assets, C# 13 via PolySharp, .NET 4.8 full-framework target |
| @SimonvBez | Fixed SKGLView rendering after MAUI TabBar tab switch on Android |
| @sshumakov | Added Spectre mitigation for Windows and Linux native libraries |
| @Copilot | GTK4 bindings package, SKManagedStream refactor, AoT crash fix, libfontconfig-dev update |
| @ramezgerges | Unified AI agent configuration for Claude Code and GitHub Copilot |