Sparse Strips v0.2.0
This release has an MSRV of 1.88.
Vello CPU
Vello CPU is our 2D renderer which doesn't use a GPU.
The imaging model exposed by Vello CPU is very similar to that of current Vello.
This implementation is now broadly usable, with a reasonably complete imaging model and competitive performance.
It does not, however, have any API stability guarantees, as we intend to redesign the API to be consistent across the Vello renderers.
Performance information can be seen at https://laurenzv.github.io/vello_chart/ (although this URL is not time-locked, so it might show results from a slightly newer or older version than this tag).
Fixed
Optimized
- Multi-threaded render contexts now initialize task dispatch lazily on the first drawing operation, avoiding unnecessary setup for empty frames and after resets. (#1787 by @LaurenzV, @yezhizhen)
Vello Hybrid
This release is a minor release of Vello Hybrid, which uses the CPU for preprocessing and the GPU for rasterization. The imaging model exposed by Vello Hybrid is very similar to that of current Vello.
This implementation is in its early stages and does not yet provide any API stability guarantees (see the roadmap for more details). It also doesn't have feature parity with Vello CPU. A few known issues remain, which we plan to address soon.
Added
- Support for sampling from external textures through
Scene::draw_texture_rectsin thewebglbackend, bringing it to parity with thewgpubackend. Textures are bound at render time through the newWebGlTextureBindings. (#1792 by @grebmeg) ProbeResult::statistics,ProbeStatistics, andProbeFeaturefor diagnosing which renderer-probe features and pixels differ from the reference output. (#1779 by @LaurenzV)PROBE_ELEMENTSfor inspecting the active features used by the WebGL compatibility probe. (#1801 by @LaurenzV)
Changed
- Breaking change:
Renderer::new,Renderer::new_with,WebGlRenderer::new, andWebGlRenderer::new_withnow return the renderer and its associatedResourcesas a tuple.Resourcescan no longer be constructed directly and must only be used with the renderer instance that generated it. (#1794 by @LaurenzV) - Breaking change:
Scene::new_withnow takes aLevelinstead ofRenderSettings. (#1794 by @LaurenzV) - Breaking change:
WebGlRenderer::renderandWebGlRenderer::render_to_atlasnow takeWebGlTextureBindings, providing the external textures referenced by the scene. Pass&WebGlTextureBindings::new()if the scene does not use any. (#1792 by @grebmeg) - Breaking change: Image-atlas allocation errors now include allocation and free-space diagnostics, while intermediate-texture failures use the new
IntermediateTextureErrorvariants for oversized allocations and texture-count limits. (#1778 by @grebmeg)
Fixed
- Image tints with zero opacity now make the image fully transparent. (#1791 by @LaurenzV)
- WebGL image-atlas allocation and growth on Mali-G52 GPUs, avoiding application-not-responding errors. (#1800 by @grebmeg)
Optimized
- WebGL intermediate textures are destroyed before resized replacements are allocated, reducing peak texture memory while render targets grow. (#1781 by @LaurenzV)
Vello Common
This release also contains Vello Common, a support crate used by Vello CPU and Vello Hybrid.
Vello Common itself does not currently have any stable API surface, as it is only an implementation detail of Vello CPU and Vello Hybrid.
Added
ProbeResult::statistics,ProbeStatistics, andProbeFeaturefor diagnosing which renderer-probe features and pixels differ from the reference output. (#1779 by @LaurenzV)PROBE_ELEMENTSfor inspecting the active features used by the shared probe scene. (#1801 by @LaurenzV)
Changed
- Breaking change:
AtlasErrorvariants now report configured limits and allocation sizes, with the newAtlasSpaceDiagnosticsandAtlasLayerDiagnosticstypes providing per-layer free-space, utilization, and fragmentation details. (#1778 by @grebmeg)
Vello Sparse Shaders
This release also contains Vello Sparse Shaders, a support crate used by Vello Hybrid.
This crate does not currently have any stable API guarantees.
Full Changelog: sparse-strips-v0.1.0...sparse-strips-v0.2.0