Bevy Weekly #X: Floating Dialogs, Rust 1.96, Temporal Jitter Fixes & More
- Commits summarized
- 8
- Period
- Jun 22 - Jun 28, 2026
- Published
- Jun 29, 2026
Bevy Weekly #X: Floating Dialogs, Rust 1.96, Temporal Jitter Fixes & More
Period: June 22 – June 28, 2026
Repository: bevyengine/bevy
Total commits this period: 8
This week brings quality-of-life improvements across the board: floating (non-modal) dialogs land in bevy_ui_widgets and bevy_feathers, the minimum Rust version is bumped to 1.96 to keep tests passing, temporal jitter is properly accounted for in PreviousViewData, and a handful of bugs and paper-cuts are fixed. If you build editor UIs, use motion vectors, or rely on bevy_time, read on.
🖼️ UI & Editor UX
Floating (Non-Modal) Dialogs in bevy_ui_widgets and bevy_feathers
PR #24705 by Gagnus (+358 lines, 4 files)
Until now, Bevy's dialog support was limited to modal dialogs. This PR introduces floating (non-modal) dialogs that can be re-ordered and moved around — essential for editor features like settings windows, entity debuggers, and tool palettes.
- Added
Dialogtobevy_ui_widgetsalongside the existingModalDialog. - Moved
RequestClosefrommodal.rstodialog.rsso both modal and floating dialogs share the same close-request mechanism. - Added
FeathersFloatingDialoginbevy_feathers(the existingFeathersDialogremains as a modal-only dialog). - No breaking changes to existing dialog APIs.
🎨 Graphics & Rendering
Apply Temporal Jitter to PreviousViewData
PR #24672 by JMS55 (+82 lines, 7 files)
PreviousViewData previously did not account for temporal jitter, causing small inaccuracies that blocked progress on the upcoming solari PR. This fix:
- Applies temporal jitter to
PreviousViewData. - Adds
unjittered_clip_from_worldfor motion vector use cases that require unjittered matrices.
Fix Clustered Decal Docs (macOS/iOS Restriction)
PR #24770 by mgi388 (+4 lines, 2 files)
A previous fix (#21332) corrected the top-level clustered decal documentation but missed the component-level docs. This commit fixes that oversight and tidies up the doc block formatting.
⚙️ Engine Internals & Fixes
Fix Nested Entity References in BSN
PR #24742 by HeartofPhos (+62 lines, 2 files)
Fixed a bug where nested entity references in Bevy Scene format (BSN) were not resolved correctly. The fix iterates over all entity references instead of only inserting the first one. Includes a new test case.
Rename NextState::set_if_neq to set_if_different
PR #24676 by MAN$I VERMA (+67 lines, 6 files)
Resolves a name clash (issue #24655) by renaming NextState::set_if_neq to set_if_different. The new name is clearer about intent and avoids conflicts with other uses of neq in the codebase.
Fix effective_speed When Delta Is Clamped by max_delta
PR #24768 by Akshit joshi (+26 lines, 1 file)
Fixes #24715: effective_speed now reports delta / raw_delta instead of using relative_speed, so it remains accurate even when max_delta clamping occurs.
Stricter nonmax Crate Version Requirement
PR #24776 by Arnav Mummineni (+1 line, 1 file)
bevy_ecs uses nonmax::NonMaxU32::MAX, which was only added in version 0.5.4 of the nonmax crate. The dependency was previously specified as "0.5", which allowed older versions (e.g., 0.5.3) to be resolved, causing compilation failures. The requirement is now tightened to >= 0.5.4.
🛠️ Build & CI
Update Minimum Rust Version to 1.96
PR #24736 by Tyler Earls (+1 line, 1 file)
The rust-version field in the root Cargo.toml has been bumped from 1.95 to 1.96. Several tests (e.g., in bevy_math) use assert_matches!, which was stabilized in Rust 1.96. Without this change, running cargo test with Rust 1.95 would fail — though CI was already effectively enforcing 1.96 via the stable toolchain.
That's it for this week. See you next time!