diff --git a/content/blog/2024-03-04-tmix-02.md b/content/blog/2024-03-04-tmix-02.md new file mode 100644 index 0000000..e73f0e7 --- /dev/null +++ b/content/blog/2024-03-04-tmix-02.md @@ -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