Bevy 0.20 ships: Solari on macOS, ReSTIR off by default, WESL shaders adopted
Bevy 0.20, the next release of the data-driven game engine written in Rust, went out on crates.io on 8 October — the work of 227 contributors and 817 pull requests, according to the release post. As usual, a 0.19-to-0.20 migration guide comes with it, because Bevy still breaks APIs between minor versions.
Solari, the real-time path tracer. The biggest change is a trade-off. The team says DLSS Ray Reconstruction has become good enough that, in many scenes, ReSTIR costs a lot of performance without improving the image much — so ReSTIR is now optional and off by default. Projects that used Solari in 0.19 should check their scenes; with ReSTIR off, scenes with many lights get weaker shadows and missing shadows in motion, and SolariLighting::restir turns it back on. Scene management is now retained, cutting CPU cost, and new knobs (world cache size, light samples per pixel, temporal accumulation, bounce count) expose the quality–speed balance. Solari gains lighting from Atmosphere and environment maps and runs on macOS via Metal, though without a built-in denoiser there yet. The DLSS crate moves to DLSS-RR 4.5 — and 0.19 users must install the newest DLSS SDK or hit compile errors.
BSN, the new scene system. Syntax changes are meant to be the last big ones: every scene reference now takes an @ prefix, which removes the old template_value(...) wrappers around component values, and enums no longer need extra derives if they implement Default and Clone. Scene entities now fire an observable Ready event once all children have spawned.

Also in the release. Bevy officially adopts WESL, a standardised extension of WGSL, instead of its own shader dialect; custom shader materials for sprites and extendable 2D materials; a CAD-style pan-orbit camera; new Feathers editor widgets (colour input, scrollable list, dropdown, lazy menu, draggable number input, headless tabs); Val::Em and Val::Rem for UI sizing; per-column change ticks; faster bulk despawning; and schedule randomisation to flush out hidden system-ordering bugs.
For teams on 0.19, the order of work is the migration guide first, then a visual check of any Solari scene with ReSTIR off.
Source: Bevy News, "Bevy 0.20", 8 October 2026 — https://bevy.org/news/bevy-0-20/