Bevy 0.20 adds Solari path tracing upgrades, WESL shaders and BSN syntax changes
Bevy 0.20 is out on crates.io, with a faster Solari path tracer that now runs on macOS, a move to the WESL shader language, and breaking BSN syntax changes. Existing projects should read the 0.19 to 0.20 migration guide before upgrading.
Digital Developer Desk, 20d ago, 3 min read

Bevy 0.20 has been released on crates.io. The Bevy team credits 227 contributors and 817 pull requests. Highlights include Solari and DLSS updates, BSN syntax changes, a new Ready event, more Feathers UI widgets, adoption of the WESL shader language, custom sprite materials, extended 2D materials and a pan orbit camera.
Solari, the realtime path tracer, gets the biggest changes. Improvements to the ReSTIR implementation make rendering mostly unbiased, and the team says shadows on moving objects no longer lag and reflections shimmer less. ReSTIR is now optional and off by default, because DLSS-RR has improved enough that ReSTIR often costs performance without a big quality gain. With it off, expect weaker shadows in scenes with many lights. If you used Solari in 0.19, check your scenes and re-enable SolariLighting::restir if needed. Scene management is now retained, which cuts CPU cost, and SolariLighting has new settings for world cache size, per-pixel light samples, temporal accumulation and bounce count.
Solari now supports lighting from Atmosphere and EnvironmentMapLights on cameras, alongside DirectionalLight and emissive meshes. PointLight, SpotLight and RectLight support is something the team says it hopes to add in the near future. Solari also runs on macOS, but bevy_solari has no built-in denoiser there. The dlss_wgpu crate now supports DLSS-RR 4.5. If you used DLSS in 0.19, download and set up the newest DLSS SDK or you will hit compiler errors.
BSN, the new scene system, has breaking syntax changes that the team says should largely settle the syntax. All scene references now need an @ prefix. The template_value wrappers can be removed in general, including for chained method calls. Enums no longer need VariantDefaults or FromTemplate if they implement Default and Clone, but you must now specify every enum field. Entities in a list are separated with -- instead of commas or parentheses, which are deprecated in that context. The team also recommends bsn_list! {} over [] or () because of rustfmt behavior, and says it plans to build a BSN auto-formatter.
A new Ready event fires for each entity in a spawned scene once its full spawn logic, including descendants, has run. That gives you a bottom-up counterpart to the top-down Add event. Feathers, the editor-centric UI toolkit, adds Color Input, Scrollable List View, Dropdown Selection and Lazy Menu widgets, and its Number Input can now be dragged. bevy_ui_widgets gains headless tab widgets. Bevy's shaders are now written in WESL, and support for the old custom WGSL dialect has been removed, so check any custom shaders. The full list is in the release post and migration guide.
Sources
Get the daily brief
The five stories that matter, every weekday morning. Free.
DirectX Agility SDK 1.620 goes retail; 1.722-preview adds DXR Clustered Geometry
Microsoft released Agility SDK 1.620 retail and 1.722-preview on October 28, and AMD shipped matching drivers the same day. The retail release brings crash dump files and Partial Graphics Programs to production games, while the preview adds new DirectX Raytracing features.
gpuopen.comjust now4 min read
IllFonic used UE5 dynamic lighting and Nick Castle mocap for Halloween: The Game
IllFonic's Chief Creative Officer Jared Gerritzen explains how the studio built Halloween: The Game in Unreal Engine 5, from dynamic lighting to motion capture of original Michael Myers actor Nick Castle. The interview covers the shift away from baked lighting and the game's reactive NPC systems.
80.lv4d ago2 min read
Epic removes AI training restrictions from Unreal Engine EULA Section 6e
Epic Games has deleted two restrictions from Section 6e of the Unreal Engine EULA, covering generative AI training and MetaHuman data use. The change applies to all versions of Unreal Engine.
reddit.com4d ago2 min read

