Bevy Engine Changes — July 2026
Monthly tracking page for Bevy engine main-branch changes. Sister page to bevy-migration-2026-07.
Continues from bevy-game-dev-2026-06.
2026-07-01 engine changes
- 0 PRs merged Jun 30–Jul 1 — extremely quiet day. No merges in the 24-hour window.
- 0.19.1 milestone: 20/38 closed (52% complete), 18 open. Scope expanded from 35 → 38 total items (3 new items added). Closed count unchanged at 20.^[https://github.com/bevyengine/bevy/milestones]
- 0.20 milestone: 25/34 closed/open (42% complete), 34 open. Scope unchanged at 59 total items. Closed count unchanged at 25.^[https://github.com/bevyengine/bevy/milestones]
- v0.19.0 stable remains latest release. No new RC or patch release.
2026-07-02 engine changes
- 1 PR merged Jul 1–2 — quiet day with a single crash fix landing in 0.19.1.
- #24807 — Prevent panic in
check_dir_light_mesh_visibility(dylansechet, merged by alice-i-cecile, A-Rendering, D-Straightforward, P-Crash, 0.19.1). Fixes #24804. A subtleLocal<Parallel<...>>buffer resizing bug in directional-light shadow visibility checking caused out-of-bounds indexing when mesh counts dropped and cascade counts rose in the same frame. Fix: resize all per-thread buffers before the parallel loop.- 0.19.1 milestone: 21/39 closed (53% complete), 18 open. Closed +1, scope +1 since yesterday.^[https://github.com/bevyengine/bevy/milestones]
- 0.20 milestone: 25/59 closed/open (42% complete), 34 open. Unchanged.^[https://github.com/bevyengine/bevy/milestones]
- v0.19.0 stable remains latest release. No new RC or patch release.
2026-07-03 engine changes
- 0 PRs merged Jul 2–3 — no merges in the 24-hour window.
- 0.19.1 milestone: 21/39 closed (53% complete), 18 open. Unchanged since yesterday.^[https://github.com/bevyengine/bevy/milestones]
- 0.20 milestone: 25/60 closed/open (~42% complete), 35 open. Scope expanded from 59 → 60 total items (1 new open item added). Closed count unchanged at 25.^[https://github.com/bevyengine/bevy/milestones]
- v0.19.0 stable remains latest release. No new RC or patch release.
2026-07-04 engine changes
- 2 PRs merged late on Jul 3 (caught in today’s scan) — both documentation fixes, no functional changes.
- #24852 — Fixes archived rfcs repo link in README.md (razlani, merged Jul 3, C-Docs, D-Trivial). Fixes stale README link to archived rfcs repository (#24709).
- #24830 — document settings save location and TOML format (akshitj11, merged Jul 3, C-Docs, D-Trivial). Documents
SettingsPluginsave paths across platforms and TOML format (#24699).- 0 PRs merged on Jul 4 itself.
- 0.19.1 milestone: 21/39 closed (53% complete), 18 open. Unchanged since Jul 2.^[https://github.com/bevyengine/bevy/milestones]
- 0.20 milestone: 25/60 closed/open (~42% complete), 35 open. Scope +1 total item since Jul 3; closed count unchanged.^[https://github.com/bevyengine/bevy/milestones]
- v0.19.0 stable remains latest release.
2026-07-05 engine changes
- 2 PRs merged Jul 4–5 — one rendering micro-optimization, one input bug fix.
- #24844 — Increase
MaterialProperties::draw_functionsinline capacity (beicause, merged Jul 5, A-Rendering, D-Trivial, S-Ready-For-Final-Review). Increases the inline SmallVec capacity for draw functions in material properties. Rendering micro-optimization.- #24829 — Fix
bevy_gilrsweak rumble motor never being driven (francisdb, merged Jul 5, A-Input, C-Bug, D-Trivial, S-Needs-Review). Fixes a bug where the weak rumble motor on gamepads was never actually driven. Only the strong motor worked.- 0.19.1 milestone: 21/40 closed (52% complete), 19 open. Scope +1 from Jul 4 (39 → 40 total). Closed count unchanged.^[https://github.com/bevyengine/bevy/milestones]
- 0.20 milestone: 25/60 closed (~42% complete), 35 open. Unchanged.^[https://github.com/bevyengine/bevy/milestones]
- v0.19.0 stable remains latest release.
2026-07-07 engine changes
- 12 new PRs merged Jul 5–7 (excluding #24844 and #24829 already logged on 07-05) — significant burst of activity after a quiet period.
- #24885 — Fix HandleTemplate::Value not adding the asset directly (andriyDev, merged ~Jul 6, A-Assets, A-Scenes, C-Bug, D-Straightforward, 0.19.1). Fixes a bug where
HandleTemplate::Valuedid not correctly add the asset during scene/asset loading. Scene loading with inline handle values now works correctly.- #24880 — Solari: Fix normal maps and support two-channel maps (JMS55, merged ~Jul 6, A-Rendering, C-Bug, D-Straightforward, 0.19.1). Fixes normal map handling in Solari GPU path tracer and adds two-channel normal map support.
- #24879 — Fix MP4 Audio Playback Failure in Bevy 0.19.0 (merged ~Jul 6, A-Audio, C-Bug, D-Straightforward, 0.19.1). Fixes MP4 audio playback failure introduced in Bevy 0.19.0.
- #24859 — Text measurement min-content fix (merged ~Jul 6, A-UI, C-Bug, D-Straightforward, 0.19.1). Fixes text measurement behavior with
min-contentsizing. UI text layout bugfix.- #24781 — Update parley to version 0.11 (merged ~Jul 6, A-Text, C-Dependencies, 0.19.1). Bumps parley text layout dependency to v0.11.
- #24764 — Solari: Fix removed RaytracingMesh3d component (merged ~Jul 6, A-Rendering, C-Bug, D-Straightforward, 0.19.1). Fixes an issue where
RaytracingMesh3dcomponent was removed in Solari path tracer.- #24863 — Expose bevy::pbr::gltf module (merged ~Jul 6, A-Rendering, C-Docs). Makes
bevy::pbr::gltfmodule public.- #24838 — Remove old docs that no longer apply (merged ~Jul 6, C-Docs, D-Trivial). Documentation cleanup.
- #24819 — Ignore ttf-parser advisory (merged ~Jul 6, C-Dependencies, D-Trivial). Cargo audit ignore for ttf-parser advisory.
- #24761 — Bump super-linter/super-linter/slim from 8.6.0 to 8.7.0 (merged ~Jul 6, C-Dependencies, D-Trivial). CI dependency bump.
- #24758 — Updated multiple_text_inputs example to use an observer (merged ~Jul 6, C-Docs, D-Trivial, A-Text). Example update to use observer pattern.
- #24620 — Fix ScrollArea scroll speed (merged ~Jul 6, A-UI, C-Bug, D-Straightforward). Fixes scroll speed in ScrollArea UI widget.
- 0.19.1 milestone: 29/48 closed (60% complete), 19 open. Significant progress since 07-05 (21/40 → 29/48). 8 new items closed, 8 new items added to scope.^[https://github.com/bevyengine/bevy/milestones]
- 0.20 milestone: 25/61 closed (~41% complete), 36 open. Scope +1, closed unchanged.^[https://github.com/bevyengine/bevy/milestones]
- v0.19.0 stable remains latest release. No new RC or patch release.
2026-07-08–23 engine changes
Gap update — 150 PRs merged across 16 days. Major milestones: 0.19.1 at 90.6% (imminent patch release), 0.20 at 57.6%. Key themes: wgpu 30, Solari v7, MeshUniform GPU allocation, bindless 2D, Feathers UI example migration (~30+ PRs), fallback fonts, rendering optimizations.
- 0.19.1 milestone accelerated dramatically — 29/48 (60%) → 58/64 (90.6%). Only 6 open items remaining. A patch release is imminent.^[https://github.com/bevyengine/bevy/milestones]
- 0.20 milestone — 25/61 (41%) → 49/85 (57.6%). Steady progress with both new features and example migrations.^[https://github.com/bevyengine/bevy/milestones]
Architectural Milestones
- #23662 — Move MeshUniform allocation from CPU to GPU (pcwalton, merged Jul 7). Major rendering architecture change. Mesh uniform data is now allocated directly on the GPU via
AtomicSparseBufferVec, reducing CPU overhead.- #24841 — Upgrade to wgpu 30 (ChristopherBiscardi, merged Jul 16, 0.20). Significant graphics stack upgrade from wgpu 29 to wgpu 30.
- #24767 — Solari v7 (JMS55, merged Jul 14, 0.20). 7th iteration of Bevy’s experimental GPU path tracer.
- #24833 — Add bindless support for 2D materials (pcwalton, merged Jul 8). Extends bindless architecture from 3D to 2D materials.
- #25005 — Use ECS for render world window data (IceSentry, merged Jul 22, M-Migration-Guide, 0.20). Breaking change: direct window data access in render systems replaced with ECS resource/component access.
- #24378 — Fallback fonts (ickshonpe, merged Jul 17, 0.20). Support for fallback font chains, resolving missing glyphs from secondary fonts. Critical for CJK and emoji.
Rendering & Solari Fixes
- #25070 — Remove expensive queue submit from sparse buffer vec (JMS55, Jul 21, C-Performance).
- #25045 — Solari: Reduce transform GPU binding by 16 bytes per transform (JMS55, Jul 18, C-Performance).
- #25046 — Solari: Reduce temporal shadow lag (JMS55, Jul 21).
- #25043 — Fix previous frame depth-stencil view (JMS55, Jul 17, C-Bug).
- #24957 — Fix parallel render graph (JMS55, Jul 14, P-Regression, 0.20).
- #24984 — Fix crash in Bistro binning (pcwalton, Jul 16, P-Crash, P-Regression, 0.20).
0.19.1 Bugfix Cluster
- #25068 — Fix Steam OSK shifted text input (0xEgao, Jul 22).
- #24999 — Don’t cull rotated UI text glyphs (0xEgao, Jul 16).
- #24998 — Fix atmosphere in rotated/Z-up worlds (Supremesv715, Jul 16).
- #24982 — Wrong UI camera fix (ickshonpe, Jul 14).
- #24977 — Fix crash adding ContactShadows at runtime (voidreamer, Jul 14, P-Crash).
- #24972 — Fix remote entity allocation (ElliottjPierce, Jul 14, P-Unsound).
- Plus #24861, #24843, #24866, #24876, #24817, #24802, #24797, #24749, #24746, #24734, #24674 — all 0.19.1 bugfixes.
New Features
- #25007 — Entity label resolution for entity inspectors (alice-i-cecile, 0.20).
- #24995 — Display impls for reflected types (alice-i-cecile, 0.20).
- #24779 — Elliptical border radius support (ickshonpe).
- #24784 — New menu-related widgets (viridia).
- #25061 — ensure! macro for BevyError (0xEgao).
- #24753 — World::resource_entity (Miguel0312).
Bulk UI/Feathers Migration
~30+ PRs from kfc35, taearls, and others migrating Bevy examples from legacy
ui::widget::Buttonto Feathers UI widgets and bsn! syntax. This is Phases 1-6 of a systematic example overhaul, indicating Feathers is becoming the default widget framework.
Releases
No new releases since v0.19.0 (Jun 18). With 0.19.1 at 90.6%, patch release is imminent.
2026-07-24 engine changes
- 3 PRs merged Jul 23 — all Feathers UI Phase 4 example migration (no functional changes).
- #25130 — Migrate
mixed_lightingto useFeathersRadio(kfc35, C-Examples).- #25124 — Migrate
box_shadowto useFeathersRadio/FeathersNumberInput/FeathersButton+ fullbsn!(kfc35, C-Examples).- #25091 — Migrate
occlusion_cullingto useFeathersRadio(tevans-3, C-Examples).- Milestones: 0.19.1 unchanged at 58/64 (90.6%), 6 open; 0.20 scope +1 to 86 items, 49 closed (57.0%).^[https://github.com/bevyengine/bevy/milestones]
- Releases: v0.19.0 (Jun 18) remains latest. No new RC or patch release.
- Synthesis: Extremely quiet day. The Feathers UI example migration campaign continues steadily (Phase 4). No functional changes, no breaking changes, no performance impact.
2026-07-25 engine changes
- 3 PRs merged Jul 24 — more substantive than yesterday: a Gizmo bug fix for 0.19.1, a Solari performance improvement, and code quality cleanup.
- #25106 — Transform Gizmo Rendering Bug fix for custom viewport cameras (MrVintage710, milestone: 0.19.1). The overlay camera’s viewport was not being updated during position sync, causing place.
- #25082 — Solari retained extract: only extracts changed entities instead of all entities per frame. 4 specialized systems replace the single extract-all loop. Performance improvement for the GPU path tracer (JMS55).
- #25119 —
Entity::PLACEHOLDERtoOption<Entity>conversions in straightforward code paths. Progress on #25118 which aims to eliminate PLACEHOLDER as a null sentinel. Minor performance win. X-Contentious (greeble-dev).- No new releases. v0.19.0 (Jun 18) remains latest.
- Milestones: 0.19.1: 59/64 (92.2%), 5 open (+1 since Jul 24). 0.20: 50/86 (58.1%), 36 open (+1 since Jul 24).^[https://github.com/bevyengine/bevy/milestones]
Related pages
- bevy — Bevy engine/entity hub.
- bevy-migration-2026-07 — July 2026 migration-sensitive changes.
- bevy-rendering — Bevy rendering system concepts.
- bevy-solari-pathtracer — Bevy Solari GPU path tracer.