Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add This Month in Xilem 02 blog #41

Merged
merged 4 commits into from
Mar 5, 2024
Merged
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
38 changes: 38 additions & 0 deletions content/blog/2024-03-04-tmix-02.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
+++
title = "This Month in Xilem, February 2024"
authors = ["Raph Levien"]
date = "2024-03-04 07:34:42"
+++

Early this year, we made a decision to use the winit crate for window creation, as opposed to rolling our own.
That work has now landed in main ([xilem#176] was the main PR, with a number of followups).
A major motivation was to enable more platforms, with Android being a major goal.
That work is in progress; a major subtask is enumerating the system fonts.
As expected, this move has uncovered rough edges in winit and some regressions in behavior.
We plan to address those, with the improvements hopefully benefiting the entire Rust UI ecosystem.

The [Vello crate] has been published as version 0.1, with significant documentation improvements and a friendly example.
We consider this an alpha-quality release, as there are known issues.
Even so, we want to get a release out to facilitate integrations and shake out problems.

Another major area of work on Vello is investigation of startup time, which can take multiple seconds when the platform's GPU drivers are slow at compiling the compute shaders.
A number of techniques mitigate that.
One is to compile shaders in parallel, using multiple cores, and that has landed ([vello#455]).
An even bigger improvement will be caching compiled shaders.
Daniel McNab has made an encouraging prototype ([vello#459]), and the ultimate goal is to land that in wgpu so projects across the ecosystem can benefit from it ([wgpu#5292]).

The work to compute strokes on the GPU using Euler spirals continues, but has not yet landed.
The current state is a draft PR that implements the logic in Rust code, which now needs to be translated to WGSL for GPU evaluation ([vello#496], draft PR).

There has been progress at higher levels of Xilem.
Among other things, Nico Burns landed a scroll view implementation ([xilem#155]), and Philipp Mildenberger has been steadily refining xilem_core and xilem_web, including fine grained tree structure tracking and minimal/efficient DOM-tree-updates ([xilem#160]).

[Xilem]: https://github.com/linebender/xilem
[xilem#176]: https://github.com/linebender/xilem/pull/176
[vello#455]: https://github.com/linebender/vello/pull/455
[vello#459]: https://github.com/linebender/vello/pull/459
[wgpu#5292]: https://github.com/gfx-rs/wgpu/pull/5292
[xilem#155]: https://github.com/linebender/xilem/pull/155
[xilem#160]: https://github.com/linebender/xilem/pull/160
[vello#496]: https://github.com/linebender/vello/pull/496
[Vello crate]: https://crates.io/crates/vello
Loading