Table of Contents

Version 2.80.3

Metal, runtime effects, WinUI, and .NET 5 support · Released July 12, 2021 · NuGet · GitHub Release

Highlights

A feature-packed release bringing Metal rendering APIs to Apple platforms, the new SKRuntimeEffect API for custom GPU shaders, WinUI 3 desktop support, macOS ARM64 (Apple Silicon) native builds, .NET 5.0 support, and .NET Interactive integration. This release also includes Exif SubIFD reading, SKPicture serialization, GRContextOptions, and improved musl system detection. Five community contributors helped shape this release.

Breaking Changes

None in this release.

New Features

GPU & Rendering

  • Metal API support — Full Metal rendering backend for Apple platforms (iOS, macOS), bringing hardware-accelerated GPU rendering via Metal. (#1394, #1598, #1615)
  • SKRuntimeEffect API — New API for custom GPU shader effects using SkSL (Skia Shading Language). (#1604)
  • GRContextOptions — Exposed GRContextOptions for fine-grained control over GPU context creation. (#1529)
  • GRContext.IsAbandoned — Exposed the IsAbandoned property in the C# API. (#1659)
  • GL surface creation resilience — Better handling of GL surface creation failures. ❤️ @gmurray81 (#1642)

API Surface

  • SKPicture serialization — New bindings for serializing and deserializing SKPicture objects. (#1514)
  • Exif SubIFD support — Added support for reading the Exif SubIFD from image metadata. (#1518)
  • ANGLE GRGlInterface outside UWP — Allow creating ANGLE-based GRGlInterface from non-UWP environments. ❤️ @Mikolaytis (#1519)
  • Stream copy optimization — Eliminated unnecessary array allocations when copying streams. (#1510)

Platform

  • macOS ARM64 (Apple Silicon) — Native ARM64 build target for macOS. (#1627)
  • .NET 5.0 support — Updated to target .NET 5.0. (#1697)
  • WinUI 3 Desktop support — New views and rendering support for WinUI 3 desktop applications. (#1696, #1741)
  • Uno Platform SKXamlCanvas — Support for SKXamlCanvas on Uno Platform SkiaSharp backends v2.0. (#1704)
  • .NET Interactive support — SkiaSharp images can now be displayed directly in .NET Interactive notebooks. (#1710)
  • Improved musl detection — Properly detect and handle musl-based Linux systems. (#1657)
  • Multiple emscripten WASM builds — Includes all emscripten versions for WASM compatibility. (#1590)

Bug Fixes

  • SKMatrix.IsInvertible crash — Fixed a crash when calling IsInvertible on certain matrices. (#1527)
  • Image pixel reading — Fixed incorrect image pixel reading. (#1636)
  • iOS font loading — Fixed font loading issues on iOS. (#1539)
  • Display link defensiveness — More defensive handling in display link callbacks. (#1620)
  • Buffer swap after resize — Fixed buffer swap issues after surface resize. (#1668)
  • WPF SKElement.OnRenderSKElement.OnRender now does nothing if there is no PresentationSource, preventing crashes. ❤️ @HarlanHugh (#1606)

Platform Support

Platform What's New
🍎 Apple Metal rendering, macOS ARM64 (Apple Silicon), iOS font loading fix
🪟 Windows WinUI 3 Desktop support
🐧 Linux Improved musl system detection
🌐 WebAssembly Multiple emscripten builds, Uno SKXamlCanvas

Community Contributors ❤️

Contributor What They Did
@gmurray81 Improved GL surface creation failure handling
@HarlanHugh Fixed WPF SKElement.OnRender crash without PresentationSource
@Mikolaytis Enabled ANGLE GRGlInterface creation outside UWP
@jeromelaban Uno Platform documentation updates

Preview 93 (July 12, 2021)

Added SKXamlCanvas support for Uno Platform SkiaSharp backends v2.0.

Full Changelog


Preview 90 (May 30, 2021)

Major preview with Metal APIs, SKRuntimeEffect, macOS ARM64, .NET 5.0, WinUI Desktop, .NET Interactive, and musl detection improvements.

Full Changelog


Preview 40 (February 6, 2021)

Added Metal APIs, GRContextOptions, WPF rendering fix, and build improvements.

Full Changelog


Preview 24 (January 27, 2021)

WASM emscripten builds and build system updates.

Full Changelog


Preview 18 (November 10, 2020)

Initial preview with SKPicture serialization, Exif SubIFD support, ANGLE improvements, stream optimization, and SKMatrix.IsInvertible fix.

Full Changelog