# Changelog
# 1.0.2 - 2026-09-29
- Every test suite has a 10-minute timeout, so the slower GPU suites pass on software Vulkan in CI and the release workflow publishes the prebuilt SDK, which 1.0.1 did not.
# 1.0.1 - 2026-09-29
- Prebuilt Linux x86_64 SDK attached to every GitHub release, built and tested by the new release workflow.
- Documented consumption with
FetchContent, verified from a separate project. - The version lives in
project()ofCMakeLists.txt; theVERSIONfile is gone. - Tests pass on software Vulkan (lavapipe): the affine test is compiled without floating-point contraction, the filter contract test fits the device's buffer limit, and the large-filter test has a longer timeout.
# 1.0.0 - 2026-09-29
C++23/WebGPU image primitives with linear premultiplied float32 RGBA images, HDR and negative color support, and A8 selection masks.
- Commands grow automatically from an initial capacity hint. Recording failures
preserve earlier work. Each processing pipeline compiles on its first
submission;
Context::prepare()compiles them all up front.Context::limits()reports resource limits,Context::is_complete()polls submissions, andDisplay::draw()returns one. - Large GPU working storage is reserved before recording. Filters and effects,
geometry reductions, selection edits, focus and smudge take a caller-created
Workspacesized by their*_requirementsquery; plans merge for reuse. Stroke continuation states and viewport caches are reserved explicitly by their owners. Resources are released when their last owner lets them go. - Filters include exact local float medians, bounded box and round morphology dispatches, and bounded native submission storage.
- Painting provides image and mask brushes/erasers, stroke continuation states,
alpha preservation, gradient replacement through
gradient_fill.replace, and selection-only bucket filling throughpaint_bucket.match_seed = false. - Mask edits and geometry support write masks and regions. A8 transfers support
partial regions and configurable buffer capacity;
apply_maskapplies coverage to image pixels.select_color_rangeandselect_magic_wanduse normalized color-distance controls. - Image and mask levels share
LevelsTransfer; color controls shareColorEncoding, and measurements shareAnalysisOptions. Geometry includes fractionalPointzoom centers and affine/projectivetransformoverloads. - The public header and generated reference group the API by area. Rendered examples and native tests cover the public API.