Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions documentation/docfx/releases/4.150.2-unreleased.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
<!-- RELEASE-NOTES DATA (generated, do not edit) format:3 version:4.150.2 -->
# Version 4.150.2 (Unreleased)
> **Engine bug fixes**
> **Upstream engine bug fixes**

## Highlights

SkiaSharp 4.150.2 merges upstream Skia m150 bug fixes from Chrome.
SkiaSharp 4.150.2 merges upstream chrome/m150 bug fixes from Skia into the 4.150 servicing line.

## Breaking Changes

*None in this preview line.*

## Engine

- **Upstream Skia m150 bug fixes merged** — Chrome/m150 upstream patches are folded in, bringing engine-level correctness and stability fixes from the Skia project. ([#4517](https://github.com/mono/SkiaSharp/pull/4517))
- **chrome/m150 upstream bug fixes merged** — Stability and correctness patches from the Skia team's chrome/m150 branch have been backported into the 4.150 servicing release. ([#4517](https://github.com/mono/SkiaSharp/pull/4517))
20 changes: 12 additions & 8 deletions documentation/docfx/releases/4.151.0-unreleased.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,32 @@
<!-- RELEASE-NOTES DATA (generated, do not edit) format:3 version:4.151.0 -->
# Version 4.151.0 (Unreleased)
> **Performance and font improvements**
> **Performance fixes and Nano Server fonts**

## Highlights

SkiaSharp 4.151.0 delivers targeted performance fixes and adds FreeType-based font support for Windows Nano Server. String allocation in the text encoding hot path is eliminated, the SKRuntimeEffect uniform map is pre-sized to avoid rehashing, and a community contribution brings FreeType font rendering to environments like Windows Nano Server where the system font stack is unavailable.
SkiaSharp 4.151.0 fixes a memory leak, improves managed-code performance, and adds FreeType-backed font support for Nano Server. A CoTaskMem pixel-buffer leak in the SKImage raster failure path is resolved. GetEncodedText and SKRuntimeEffectUniforms see allocation and lookup optimisations. FreeType font support on Windows Nano Server containers closes a long-standing gap for that platform.

## Breaking Changes

*None in this preview line.*

## API Surface
## Bug Fixes

- **FreeType font support on Windows Nano Server** — SKFontManager can now use FreeType as the font backend on Windows environments that lack the GDI font stack, such as Windows Nano Server containers, fixing font loading failures on those targets. — ❤️ [@jeffska](https://github.com/jeffska) ([#4280](https://github.com/mono/SkiaSharp/pull/4280))
- **Memory leak fixed in SKImage raster failure path** — When SKImage.Create failed to create a raster image, a CoTaskMem pixel buffer was not freed. The allocation is now correctly released on all failure paths. ([#4455](https://github.com/mono/SkiaSharp/pull/4455))

## Bug Fixes
## Lifecycle & Internals

- **GetEncodedText avoids an intermediate string allocation** — The null-terminated fast path in GetEncodedText no longer allocates a temporary string, reducing per-call overhead on hot text rendering paths. ([#4498](https://github.com/mono/SkiaSharp/pull/4498))
- **SKRuntimeEffectUniforms lookup map pre-sized at construction** — The uniform name-to-index dictionary is now initialised with the known count, eliminating rehash allocations when effects define many uniforms. ([#4512](https://github.com/mono/SkiaSharp/pull/4512))

## Platform

- **Eliminated intermediate string allocation in GetEncodedText** — The null-terminated code path in `GetEncodedText` no longer creates an intermediate string; the encoded bytes are written directly, reducing GC pressure in text-heavy workloads. ([#4498](https://github.com/mono/SkiaSharp/pull/4498))
- **SKRuntimeEffectUniforms lookup map pre-sized** — The internal uniform-name lookup dictionary is now initialised with the known uniform count, avoiding repeated resize allocations when populating effect uniforms. ([#4512](https://github.com/mono/SkiaSharp/pull/4512))
- **FreeType-backed font support for Windows Nano Server** — SkiaSharp now uses FreeType for font rendering on Windows Nano Server containers, where GDI is unavailable, resolving text rendering failures in that environment. — ❤️ [@jeffska](https://github.com/jeffska) ([#4280](https://github.com/mono/SkiaSharp/pull/4280))

## Community Contributors ❤️

Thank you to everyone who contributed to this release!

| Contributor | Contributions |
|-------------|---------------|
| [@jeffska](https://github.com/jeffska) | Added FreeType-based font support for Windows Nano Server, enabling font loading in container environments where the system font stack is absent ([#4280](https://github.com/mono/SkiaSharp/pull/4280)) |
| [@jeffska](https://github.com/jeffska) | Added FreeType font support for Windows Nano Server containers, fixing text rendering for GDI-less environments ([#4280](https://github.com/mono/SkiaSharp/pull/4280)) |
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,19 @@
"tallies": {
"product": 1,
"mixed": 0,
"internal": 1
"internal": 2
},
"breaking_candidates": [],
"contributors": [],
"previews": [],
"prs": {
"4522": {
"url": "https://github.com/mono/SkiaSharp/pull/4522",
"title": "[infra] Backport CI fixes to release/4.150.x (skiasharp-docker + Apple provisioning)",
"author": "mattleibow",
"community": false,
"tag": "internal"
},
"4517": {
"url": "https://github.com/mono/SkiaSharp/pull/4517",
"title": "[skia-sync] Merge upstream chrome/m150 bug fixes",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
"theme": "Engine bug fixes",
"highlights_headline": "SkiaSharp 4.150.2 merges upstream Skia m150 bug fixes from Chrome.",
"theme": "Upstream engine bug fixes",
"highlights_headline": "SkiaSharp 4.150.2 merges upstream chrome/m150 bug fixes from Skia into the 4.150 servicing line.",
"highlights_body": null,
"breaking": [],
"categories": [
{
"heading": "Engine",
"bullets": [
{
"lead": "Upstream Skia m150 bug fixes merged",
"detail": "Chrome/m150 upstream patches are folded in, bringing engine-level correctness and stability fixes from the Skia project.",
"lead": "chrome/m150 upstream bug fixes merged",
"detail": "Stability and correctness patches from the Skia team's chrome/m150 branch have been backported into the 4.150 servicing release.",
"prs": [4517]
}
]
Expand Down
35 changes: 33 additions & 2 deletions documentation/docfx/releases/_sources/4.151.0-unreleased.data.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
"superseded_by": null,
"api_links": [],
"tallies": {
"product": 3,
"product": 6,
"mixed": 1,
"internal": 8
"internal": 9
},
"breaking_candidates": [],
"contributors": [
Expand All @@ -31,6 +31,37 @@
],
"previews": [],
"prs": {
"4528": {
"url": "https://github.com/mono/SkiaSharp/pull/4528",
"title": "Convert all .sln solutions to .slnx format",
"author": "mattleibow",
"community": false,
"tag": "product"
},
"4515": {
"url": "https://github.com/mono/SkiaSharp/pull/4515",
"title": "[infra] Add containerized test legs: Azure Linux, Alpine/musl, Nano Server",
"author": "mattleibow",
"community": false,
"tag": "product"
},
"4455": {
"url": "https://github.com/mono/SkiaSharp/pull/4455",
"title": "[memory-leak] Fix CoTaskMem pixel-buffer leak in SKImage.Create raster failure path",
"author": "github-actions[bot]",
"community": false,
"tag": "product",
"fixes": [
4454
]
},
"4523": {
"url": "https://github.com/mono/SkiaSharp/pull/4523",
"title": "docs: regenerate API diffs and release notes",
"author": "github-actions[bot]",
"community": false,
"tag": "internal"
},
"4498": {
"url": "https://github.com/mono/SkiaSharp/pull/4498",
"title": "Avoid intermediate string allocation in GetEncodedText null-terminated path",
Expand Down
36 changes: 23 additions & 13 deletions documentation/docfx/releases/_sources/4.151.0-unreleased.prose.json
Original file line number Diff line number Diff line change
@@ -1,37 +1,47 @@
{
"theme": "Performance and font improvements",
"highlights_headline": "SkiaSharp 4.151.0 delivers targeted performance fixes and adds FreeType-based font support for Windows Nano Server.",
"highlights_body": "String allocation in the text encoding hot path is eliminated, the SKRuntimeEffect uniform map is pre-sized to avoid rehashing, and a community contribution brings FreeType font rendering to environments like Windows Nano Server where the system font stack is unavailable.",
"theme": "Performance fixes and Nano Server fonts",
"highlights_headline": "SkiaSharp 4.151.0 fixes a memory leak, improves managed-code performance, and adds FreeType-backed font support for Nano Server.",
"highlights_body": "A CoTaskMem pixel-buffer leak in the SKImage raster failure path is resolved. GetEncodedText and SKRuntimeEffectUniforms see allocation and lookup optimisations. FreeType font support on Windows Nano Server containers closes a long-standing gap for that platform.",
"breaking": [],
"categories": [
{
"heading": "API Surface",
"heading": "Bug Fixes",
"bullets": [
{
"lead": "FreeType font support on Windows Nano Server",
"detail": "SKFontManager can now use FreeType as the font backend on Windows environments that lack the GDI font stack, such as Windows Nano Server containers, fixing font loading failures on those targets.",
"prs": [4280]
"lead": "Memory leak fixed in SKImage raster failure path",
"detail": "When SKImage.Create failed to create a raster image, a CoTaskMem pixel buffer was not freed. The allocation is now correctly released on all failure paths.",
"prs": [4455]
}
]
},
{
"heading": "Bug Fixes",
"heading": "Lifecycle & Internals",
"bullets": [
{
"lead": "Eliminated intermediate string allocation in GetEncodedText",
"detail": "The null-terminated code path in `GetEncodedText` no longer creates an intermediate string; the encoded bytes are written directly, reducing GC pressure in text-heavy workloads.",
"lead": "GetEncodedText avoids an intermediate string allocation",
"detail": "The null-terminated fast path in GetEncodedText no longer allocates a temporary string, reducing per-call overhead on hot text rendering paths.",
"prs": [4498]
},
{
"lead": "SKRuntimeEffectUniforms lookup map pre-sized",
"detail": "The internal uniform-name lookup dictionary is now initialised with the known uniform count, avoiding repeated resize allocations when populating effect uniforms.",
"lead": "SKRuntimeEffectUniforms lookup map pre-sized at construction",
"detail": "The uniform name-to-index dictionary is now initialised with the known count, eliminating rehash allocations when effects define many uniforms.",
"prs": [4512]
}
]
},
{
"heading": "Platform",
"bullets": [
{
"lead": "FreeType-backed font support for Windows Nano Server",
"detail": "SkiaSharp now uses FreeType for font rendering on Windows Nano Server containers, where GDI is unavailable, resolving text rendering failures in that environment.",
"prs": [4280]
}
]
}
],
"contributor_summaries": {
"jeffska": "Added FreeType-based font support for Windows Nano Server, enabling font loading in container environments where the system font stack is absent"
"jeffska": "Added FreeType font support for Windows Nano Server containers, fixing text rendering for GDI-less environments"
},
"preview_summaries": {},
"harfbuzz_summary": null
Expand Down
5 changes: 4 additions & 1 deletion documentation/docfx/releases/_sources/pr-authors.json
Original file line number Diff line number Diff line change
Expand Up @@ -1027,6 +1027,9 @@
"4505": "mattleibow",
"4507": "mattleibow",
"4510": "mattleibow",
"4515": "mattleibow",
"4517": "mattleibow",
"4519": "mattleibow"
"4519": "mattleibow",
"4522": "mattleibow",
"4528": "mattleibow"
}
9 changes: 8 additions & 1 deletion documentation/docfx/releases/_sources/pr-fixed-issues.json
Original file line number Diff line number Diff line change
Expand Up @@ -842,6 +842,9 @@
"4445": [],
"4448": [],
"4449": [],
"4455": [
4454
],
"4457": [],
"4458": [],
"4459": [],
Expand Down Expand Up @@ -874,6 +877,10 @@
4511
],
"4514": [],
"4515": [],
"4517": [],
"4519": []
"4519": [],
"4522": [],
"4523": [],
"4528": []
}
Loading