Bevy Engine Changes — August 2026
Monthly tracking page for Bevy engine main-branch changes. Sister page to bevy-migration-2026-08.
Continues from bevy-game-dev-2026-07.
2026-08-18 ~ 08-19 merge-queue drain(14 PRs,合并暂停正式结束)
- 14 PRs merged Aug 18(search 窗口 merged:08-16..08-20 total 15,含 08-16 已入库的 #25391)——合并暂停正式结束:08-16 单 PR(#25391)打破后,08-18 迎来全天 14 PR 的 merge-queue drain,三波:06:36Z/07:53Z 早批次 2 个 + 20:30Z 晚批次 2 个 + 23:06–23:47Z 大批次 10 个(23:10:54Z ×4、23:44:09Z ×3 同秒批次)。main 自 08-16T20:05Z 起约 47h 静默被打破(commits API:最新 08-18T22:34Z #25414)。
- 评级分布:0 critical + 4 important(#25444/#25429/#25393/#25394)+ 10 contextual/noise。绑定 milestone:0.20 ×2(#25429/#25444)、0.19.2 ×2(#25414/#25451)。
important(4)
- #25444 — Delete all deprecated
load_*methods(D-Trivial, A-Assets, 0.20, +2/-220, 2 files, 23:10Z)。important。完成 #23663 迁移:删除全部 deprecated asset load 方法。0.20 迁移项——仍使用旧load_*API 的代码在 0.20 编译失败,迁移面收窄到新 load API。详见 bevy-migration-2026-08。- #25429 — static hint for summary tick(A-ECS, C-Performance, 0.20, +15/-13, 5 files, 07:53Z)。important。#25157(08-13 per-column change tracking)使部分 benchmark 变差;此 PR 在
QueryData::fetch中用 static hint 判断 summary tick 是否存在以恢复性能——08-13 #25157 的直接后续优化,ECS 性能线延续。- #25393 — bevy_color primaries module(C-Feature, A-Color, +270/-0, 4 files, 20:30Z)。important。新增
primaries模块:Chromaticity(CIE 1931 xy 坐标)+ RGB primary 转换矩阵。PR 明确标注 “upcoming HDR output PRs need these matrices, first piece of that series”——HDR 输出系列的第一块基建,0.20 渲染输出方向信号。- #25394 — bevy_color Unclamp with_luminance + Laba→Lcha 修复(C-Bug, A-Color, +96/-33, 8 files, 20:30Z)。important。
LinearRgba::with_luminance的[0,1]clamp 破坏 HDR/宽色域值;Laba→Lcha转换的 chroma clamp 截断宽色域颜色。与 #25393 同批合并,HDR 颜色管线配套修复。
contextual / noise(10)
- #25442 — Expose
dcamerain bevy_math(C-Feature, A-Math, +1/-0, 06:36Z)。re-exportglam::dcamera::rh::proj::directxasdproj(f64 版 DirectX 投影),为上游 #25434 做准备。- #25424 — Don’t cluster light textures as decals(C-Bug, A-Rendering, +26/-3, 2 files, 23:06Z)。fixes #24836:自 #23036(GPU clustering)起 light textures(Spot/Point/DirectionalLightTexture)被当作 clustered decal 投影到附近 mesh 上,覆盖材质颜色;
RenderClusteredDecals现在记录真正 clustered decal 的数量,GPU clustering 改用该计数替代完整 buffer 长度。0.20 渲染 bugfix。- #25421 — SpriteMesh add_material bucket 缓存 + 内存泄漏修复(C-Bug, C-Performance, A-Rendering, +118/-57, 3 files, 23:44Z)。
SpriteMesh/Anchor的 Hash 实现缺陷导致大量碰撞、spawn 新 sprite 极慢;改 bucket 缓存并修复add_material内存泄漏。bevymark--vary-per-instance验证:主分支红色峰值(spawn 哈希碰撞热点)消失。08-16 观察预言的”合并恢复后首批候选”兑现。- #25422 —
Dir2::perp方法(D-Straightforward, A-Math, +23/-1, 23:44Z)。fixes #25418(08-15 记录的新开放 issue):glamVec2::perp的Dir2对应物,旋转 90° 保持单位长度(new_unchecked)。08-15 记录的 issue → 08-18 修复落地,3 天闭环。- #25451 — Fix entity_pair_is_visible(C-Bug, A-Rendering, 0.19.2, +59/-2, 1 file, 23:10Z)。二分查找用整个 tuple 而非
main_entity排序键,导致有时返回错误的 false。0.19.2 bugfix。- #25414 — PBR Clearcoat 避免除零(C-Bug, A-Rendering, 0.19.2, +2/-1, 1 file, 23:47Z)。grazing angles 处除零导致高亮像素闪烁。08-15 记录过的 0.19.2 open PR,今日落地。
- #25440 — WESL
import package::语法(D-Trivial, A-Rendering, +221/-221, 104 files, 23:10Z)。机械替换import "this_package_name"::→import package::,对齐 WESL 规范。配合 08-05 #25088(WESL 迁移)的后续清理。- #25438 —
ImageNode::with_visual_boxbuilder(D-Trivial, A-UI, +7/-0, 23:38Z)。补齐ImageNode唯一缺的 builder 方法。- #25455 — f32
INFINITY关联常量(D-Trivial, A-Math, +2/-6, 23:10Z)。nightly 警告std::f32::INFINITYdeprecated,改用关联常量。- #25437 — AlignedVec docs typo(C-Docs, D-Trivial, +1/-1, 23:44Z)。link 指向 rkyv 而非 Bevy 的 AlignedVec。
- Milestones (08-19 check):0.19.2 2 closed / 7 open(较 08-18 6 open / 0 closed:closed +2、total 6→9 scope growth);0.20 79/118 closed(66.9%)(较 08-18 77/117:closed +2、total +1)。^[https://github.com/bevyengine/bevy/milestones]
- Releases:v0.19.1(08-13)仍为最新,无新 RC、无 0.19.2 tag。
- 模式信号:① 合并节奏恢复——08-16 单 PR → 08-18 全天 14 PR,静默期正式结束;② HDR 输出系列启动(#25393/#25394 色度学基建 + 去 clamp)——0.20 渲染输出方向新信号,值得持续跟踪;③ 0.20 asset API 收尾(#25444 deprecated load_* 全删);④ 08-15/16 观察的 3 个候选(#25421/#25414/#25422)全部兑现,前瞻性记录有效——其中 #25418(08-15 开 issue)→ #25422(08-18 合并修复)构成 3 天 issue→PR 闭环周期,可作为观察记录有效性的参照样本。
2026-08-17 ~ 08-18 静默延续 + #25391 晚点合并(合并暂停被单 PR 打破)
- #25391 merged 08-16T20:38:53Z(merge commit 9f4ff89c 于 08-16T20:05:29Z 落地 main)——08-16 凌晨 00:30Z 静默观察之后唯一一次合并,修正前次「暂停第 2 天」的连续性判定:暂停在 08-16 晚间被单个 PR 打破,而非恢复批量合并。此后 08-17(周一)/ 08-18(周二,至 check 08:16Z)0 commits(commits API since 08-17T00:00Z = 0;main 自 08-16T20:05Z 约 36h 无新 commit),静默延续。search 窗口 merged:08-16..08-19 total_count = 1,与 commits API 交叉验证一致。
- #25391 — impl EntityCommand for Arc<dyn Fn(EntityWorldMut)>(Person-93,A-ECS/C-Usability/D-Straightforward,+14/-0,1 file,无 milestone)。contextual(small usability 增量):
Box<dyn Fn(EntityWorldMut) -> Out + Send + 'static>已有EntityCommand实现,本 PR 补齐Arc版本——跨线程共享/克隆命令闭包(同一命令派发多实体、延迟/队列执行)的场景现可用 Arc 命令。纯增量 API,非迁移敏感。- Milestones (08-18 check):0.19.2 6 open(较 08-16 快照 4 open +2);0.20 77/117 closed(65.8%)(较 08-16 77/122:closed 持平、total -5——scope 收缩(5 项移出 milestone),非进展倒退)。^[https://github.com/bevyengine/bevy/milestones]
- Releases:v0.19.1(08-13)仍为最新,无新 RC、无 0.19.2 tag。
- 开放 PR 信号(开发未停):#25428 冗余 cfg 清理、#25417/#25392 Bevy_Picking MouseButton 重构(与 08-14 #25337 Flat Pointer Events 同方向)、#25390 DynamicArrayUniformBuffer(渲染新 API 候选)、#25389 multiview_mask 暴露、#25377 动画子图求值。
2026-08-15 ~ 08-16 静默观察(0 PRs merged,合并暂停第 2 天)
- 0 PRs merged(merged:2026-08-15..2026-08-17 窗口) — main 自 08-14T01:11:37Z(#25337 合并 commit)起约 47h 无新 commit(commits API 验证,非搜索索引延迟)。与 08-08~08-11 的 4 天静默不同点:本次明确为 merge pause 而非 dev stop——568 个 open PR 持续活跃更新(最晚 08-15T23:37Z #25275),开发未停,仅合并暂停(post-v0.19.1 沉淀 / 维护者节奏)。
- Releases:v0.19.1(08-13)仍为最新,无新 RC / 无 0.19.2 tag。
- Milestones (08-16 check):0.19.2 4 open(#24944 issue + 25336/25386/25414 PR,与 08-15 相同);0.20 77/122 closed(63.1%)(与 08-15 相同,无 movement)。^[https://github.com/bevyengine/bevy/milestones]
- 新开放 issue(08-15):#25418
bevy_math::Dir2缺perp方法(对应开放 PR #25422 Add perp method to Dir2);#25416mark_dirty_trees在 entity-index 复用后跳过 live entities(对应开放 PR #25419 Stop sending orphaned entity IDs through ancestor-chain traversal)——UI 脏树标记与 Entity 复用边界的正确性 bug。- 0.20 milestone 新增条目:#25413 Update to Taffy 13(bevy_ui 布局依赖大版本升级,合并后可能带来 UI 布局行为变化,0.20 迁移关注项);#25408 Mitigate insertion performance regression(0.20 ECS 性能线延续,与 08-13 的 #25157 per-column change tracking 同线)。
- 开放 PR 亮点(合并恢复后首批候选):#25421 SpriteMesh
add_materialbucket 缓存重构 + 内存泄漏修复、#25414 PBR Clearcoat div-by-zero(0.19.2 目标)、#25319 SSAO viewport 采样修复、#25244 Solari CPU 性能、#25420 VolumetricFog 大体积环境光修复。
2026-08-14 engine changes
- 2 PRs merged Aug 14(UTC 08-14 凌晨批次:00:51Z #24013 + 01:47Z #25337)— 轻量日但含金量极高:两个均为 0.20 API 迁移级变更(M-Migration-Guide)。合并后 main 自 01:47Z 起进入静默(截至 08-15 08:33Z 约 22h 无新 commit;08-11/08-13 合并爆发后节奏放缓)。
- 评级分布:2 important + 0 critical + 0 contextual + 0 noise。均绑定 0.20 milestone。
important(2)
- #25337 — Flat Pointer Events(cart,0.20,M-Migration-Guide,X-Contentious,A-Picking,+875/-792,62 files,01:47Z)。important。Pointer 事件 API 扁平化:
On<Pointer<Press>>→On<Press>。旧 API 嵌套(事件数据深一层依赖 Deref)+ 泛型(>>)双重负担;改为扁平后事件发现更容易、文档更可读、减少即时 monomorphization,同时释放Press等名字供Button等更高级事件使用。0.20 picking 用户的大迁移项,详见 bevy-migration-2026-08。- #24013 — Observer
EventPatterns(ItsDoot,0.20,M-Migration-Guide,X-Needs-SME,A-ECS,+517/-319,48 files,00:51Z)。important。On<E, B>的B类型参数是bevy_ecs中最常被误解的结构;新增EventPatterntrait(type Event; type Components: Bundle),On泛型改为On<'w, 't, E: EventPattern>——picking/自定义事件场景不再需要写 B 参数;生命周期 observer(On<Add, A>)仍保留过滤语义。提交 3.5 个月后合并。与 bevy-ecs-event-state-roadmap 的 observer 演进线直接衔接。
- 模式信号:① 08-14 双 PR 均为 0.20 API 打磨(picking 事件 + ECS observer 泛型),与 08-11 的 #25294(EntityCursor 移入 bevy_picking)共同构成 0.20 picking/输入侧迁移清单增长;② main 合并节奏自 08-11/08-13 爆发后回落(单日 2 PR 后约 22h 静默)——与 08-08~08-11 的 4 天静默不同,本次更像正常节奏回落[推测]。
- Milestones (08-15 check): 0.19.1 closed(v0.19.1 已发布);0.19.2 4 open(1 issue:#24944 Firefox web pipeline P-Regression;3 open PR:#25414 clearcoat div-by-zero、#25386 UI Node despawn crash P-Crash、#25336 fog near-plane);0.20 77/122 closed(63.1%)(较 08-14 75/115:+2 closed +7 total,scope growth——08-14 新开的 5 个 bevy_examples issue 计入 0.20)。^[https://github.com/bevyengine/bevy/milestones]
- 新开放 issue 信号(08-14):bevy_examples crate 基建系列(#25402–#25406,全部 0.20)——独立
bevy_examplescrate + 示例迁移(many_buttons/2d_shapes/testbed/ui)+ 官网导出流程,示例基建重构的明确信号;UI 布局非确定性(#25412/#25410,UiStackordering 非确定性,隐藏 bug 难写测试);sub-scene 层级 bug(#25407);WindowResolution::new()参数名 bug(#25401)。
2026-08-02 遗漏 PR 补记(4 PRs,窗口盲区补采)
- 4 个 merged 08-02 的 PR 此前从未被捕获 — 所有此前扫描窗口均从 08-03 起(08-05 ingest、08-09 gap-catchup 均未覆盖 08-02)。本次宽窗口(merged:08-01..08-12)复查发现。含 2 个 0.19.1 渲染 bugfix、1 个 API 安全标记变更、1 个移动端示例构建优化。
- #25268 — Overlapping light probes diffuse IBL: overwrite → accumulate(C-Bug, A-Rendering, 0.19.1, +1/-1, 1 file, 20:18Z)。重叠 light probes 的 diffuse IBL 由”覆盖”改为”累积”语义。1 行级修复,绑定 0.19.1。
- #25254 — Fix deferred lighting out of sync shader defs(C-Bug, A-Rendering, 0.19.1, +47/-137, 1 file, 19:50Z)。修复 deferred lighting 路径 shader defs 与渲染管线失同步;净删 90 行。
- #25267 —
RawHandleWrapper::set_display_handle标记为unsafe(无 milestone, +1/-1, 1 file, 19:52Z)。API 变更(安全标记)——跨平台窗口句柄集成的调用方需自行保证 handle 有效性。详见 bevy-migration-2026-08。- #24919 — strip bevy_mobile_example dev builds(C-Examples, O-Android, 无 milestone, +8/-0, 3 files, 19:56Z)。移动端示例 dev 构建去符号使体积可接受;构建配置级,非迁移敏感。
- 时间线:4 个 PR 在 19:50–20:18Z 密集合并,属 08-02 晚间 merge-queue 批次。
2026-08-08 ~ 08-11 静默观察(main 连续 4 天无合并,08-11 已恢复)
- main 分支自 08-07T03:06:40Z(e8b3598f, #25184)后无新 commit——08-08 起连续 4 天真实静默,非搜索索引延迟。
- 08-11 合并已恢复:单日合并 18 个 PR(8 月迄今最大合并日),打破连续 4 天静默。合并队列恢复运转。
- 开发未停止:open PR 活动持续(#25352 ShaderModule 异步编译、#25319/#25358 SSAO viewport/depth-write 修复、#25315 BundleScratch、#25231 Val::Em/Rem 等 08-10/11 仍在更新),属合并暂停而非开发停摆。推测与维护者节奏/0.19.1 发布筹备相关。[推测]
- Milestones (08-12 check): 0.19.1 milestone 76/76 closed = 100%(0 open)——较 08-11(70/79, 9 open)完成收尾;0.19.2 milestone 新出现(3 open / 0 closed);0.20 72/114 closed(63.2%, 42 open)。^[https://github.com/bevyengine/bevy/milestones]
- Releases: v0.19.0 (Jun 18) 仍为最新;0.19.1 tag 未发布但 milestone 已 100% closed,发布在即。^[https://github.com/bevyengine/bevy/releases]
2026-08-13 engine changes
- 2 PRs merged Aug 13(UTC 窗口 08-12T16:00 – 08-13T15:59)— 轻量日:1 个 ECS 多线程调度器正确性修复(important)+ 1 个示例改进(noise)。合计 +33/-5,均由 mockersf 合并。
- 评级分布:1 important + 0 critical + 0 contextual + 1 noise。两 PR 均无 milestone 绑定信息(version targeting=unknown)。
important(1)
- #25379 — Release local thread after exclusive systems complete (A-ECS, no milestone, +30/-2, 1 file). important. ECS 多线程调度器执行 send exclusive system 后,未清除
local_thread_running标记,该标记泄漏到后续系统导致调度器误判线程持有 exclusive 访问权。影响:exclusive-marker 之后的 non-send 系统触发断言崩溃(debug panic)或被静默跳过(release 下不执行)。修复:exclusive system 完成后清除标记 + 回归测试。与 #25287(08-07, P-Unsound, Miri Stacked Borrows 违反)构成multi_threaded.rs多线程执行器 bug 簇——6 天内第 2 次修复同一子系统,该子系统为当前活跃 bug 热点。noise(1)
#25381 — Improve hello world example (C-Examples, no milestone, +3/-3, 1 file). noise.
examples/hello_world.rs改用info!宏、输出 “Hello, World!”、调度从Update改为Startup(仅启动时打印一次)。零引擎/API 影响。模式信号:
multi_threaded.rs多线程执行器 6 天内第 2 次修复(#25287 08-07 P-Unsound memory-unsafe → #25379 08-13 important 正确性 bug)。#25287 为 memory-unsafe(Miri 检测的 Stacked Borrows 违反),#25379 为调度正确性 bug——两者严重性轴不同但同属一个子系统的持续加固。该子系统是当前 Bevy 的活跃质量加固区域。
2026-08-12 凌晨批次补记(3 PRs,并发实例 UTC 窗口盲区)
- 08-12 merged 4 个 PR,其中凌晨批次 3 个被并发实例遗漏(其窗口 08-12T16:00 起;本批次 merged 02:51–03:32Z)。第 4 个 #25381(08-12T23:56Z hello world 示例)已录于上方 08-13 section。按 merged_at 严格归类,08-12 应有 4 个 PR。
- #25301 — Units Support for FeathersNumberInput(C-Feature, A-UI, no milestone, +562/-32, 2 files, 02:51Z, viridia)。important。
FeathersNumberInput新增可选单位支持:新组件NumberInputUnits(unit_name);预定义length_meters/time_seconds/angle_degrees(canonical 弧度、显示用度);单位格式须先注册、以 id 引用。修复 #25241。Feathers UI 功能持续扩张(0.20 编辑器信号)。- #25362 — Migrate
wireframe_2dto useFeathersRadio(C-Examples, A-UI, +94/-44, 2 files, 03:32:40Z)。contextual。#25032(examples 迁移 Feathers UI)系列持续推进;复用examples/helpers/radio.rshelper。- #25359 — Solari: Add mirror test bed(A-Rendering, C-Examples, +942/-1, 2 files, 03:32:40Z, JMS55)。contextual。Solari 路径追踪器新增镜面反射测试台场景,为未来反射 PR 铺路——Solari 反射功能开发的前置信号。
- #25362 与 #25359 同秒合并(03:32:40Z):merge-queue 批次结构。#25301 与 #25381 各自独立时刻。
v0.19.1 正式发布(2026-08-13T00:02:58Z)🎉
- v0.19.1 发布 — 距 v0.19.0(06-18)55 天;0.19 系列首个补丁版本(release notes 仅 compare 链接)。0.19.1 milestone 100% closed 后正式落地,此前 08-11/08-12 的多轮”发布在即”观察成真。^[https://github.com/bevyengine/bevy/releases]
- 内容构成[推测]:0.19.1 收尾的渲染/UI bugfix 批次——#25253(2D flicker)、#25334/#25338(SSAO 双修复)、#25261/#25256/#25252(08-05 批次)、#25367(despawn 文档)、#25361(wayland-data-control)、#25268(light probes IBL 累积)、#25259(mesh 重分配 GPU 内存泄漏)、#25273(CursorGrabMode macOS fallback)等。
- Milestones (08-13 check): 0.19.1 closed(75 closed,total 76→75 一项移出);0.19.2 3 open / 0 closed;0.20 74/114 closed(64.9%,较 08-12 +2)。^[https://github.com/bevyengine/bevy/milestones]
2026-08-13 全天补记(8 PRs,前次 ingest 窗口 08-12T16:00–08-13T15:59 遗漏)
- 08-13 全天实际合并 10 个 PR,前次仅捕获 2 个(#25379/#25381)——本窗口(merged:08-12..08-15 宽窗口复查)发现 08-13 另有 8 个,merged 01:08–23:42Z 横跨全天。含 1 个 0.20 大特性 + 1 个 2D 渲染特性 + 1 个示例时序 bugfix。
- 评级分布:1 important(#25157,0.20 ECS 性能特性)+ 1 important/contextual(#25183,2D 材质扩展特性)+ 其余 bugfix/示例/依赖级(contextual–noise)。
important(2)
- #25157 — Per-column change tracking(pcwalton,0.20,M-Release-Note,C-Feature/A-ECS/C-Performance,+751/-39,31 files,22:41Z)。important。系统可跳过”自上一帧无组件变化”的整张表:transform propagation、visibility propagation、mesh extraction 等最贵系统无需再逐实体检查 change tick。PR 明确以 Unity Megacity demo(~450 万实体)为规模目标——0.20 大规模场景性能的关键一步。
- #25183 — Extended material 2D(cookie1170,M-Release-Note,X-Uncontroversial,+460/-114,8 files,16:04Z)。important。
bevy_pbr::ExtendedMaterial的 2D 对应物:AsBindGroup逻辑从bevy_pbr提取到bevy_render;bevy_sprite_render新增MaterialExtension2dtrait +ExtendedMaterial2dstruct。2D 自定义材质获得与 3D 相同的扩展机制(新增 API,非破坏)。contextual / bugfix(6)
#24178 — headless_renderer copy 时序修复(rectalogic,C-Bug/A-Rendering/C-Examples,+5/-2,23:42Z)。此前 render target 复制发生在 RenderGraph schedule 开头(RenderQueue submit 前),总是复制上一帧结果;改为在
RenderGraphSystems::Submit之后复制。修复后 000.png 为已知 issue #20756 的黑帧,001.png 起才是 frame 1。#25382 — Fix caching of TilemapChunk Meshes(ncbray,C-Bug/A-Rendering,+8/-5,16:02Z)。TilemapChunk mesh 缓存”读了但从未写入”(cache 读取存在但写入从未发生)——on_insert hook 中只有
DeferredWorld可用,其不支持 resource 访问导致写入被绕过。缓存此前实际从未生效。#25372 — Label component uniform buffers with component type name(stuartparmenter,C-Feature/A-Rendering,+15/-10,01:08Z)。
ComponentUniforms<C>的 uniform buffer 此前无 wgpu label,validation error 显示空 label 无法定位;现用组件类型名标记(帧抓取/调试友好)。#25397 — Allow
PanCamerainbsn!macros(Henktorius,C-Bug/A-Scenes/A-Camera,+3/-2,20:54Z)。对照FreeCamera(已支持 bsn!)补上PanCamera的宏支持。BSN 用户可直接在场景脚本中使用 PanCamera。#25364 — spin 0.10.0 → 0.12.2(mnmaita,C-Dependencies,+3/-3,13:39Z)。替换弃用 type alias(
spin::Lazy→spin::LazyLock),修复 #25324。依赖升级。#25387 — Add ViewportNode to testbed/ui(sokunrotanak,C-Examples/A-UI/C-Testing,+63/-0,13:39Z)。
bevy_ui_debugfeature 下 testbed/ui 新增 ViewportNode 测试场景(对应 #25347)。批次结构:13:39:06Z 同秒批次(#25364 + #25387,merge-queue 同秒合并);#25382(16:02Z)与 #25183(16:04Z)近似连续落地。
模式信号:① #25157 与 08-05 的 #25200(QueryManyIter Result)/ #24312(Column memcpy)同属 0.20 ECS 性能/重构线——pcwalton 主导的大规模场景性能工程持续推进,以 Unity Megacity 级场景(数百万实体)为目标;② #25183 是 2D 渲染功能线(ExtendedMaterial 2D),与 08-11 的 2D 保留式提取(#24928)方向一致——2D 管线在 0.20 显著增强。
Milestones (08-14 check): 0.19.1 closed;0.19.2 2 open(较 08-13 3 open -1);0.20 75/115 closed(65.2%)(较 08-13 74/114:+1 closed +1 total)。^[https://github.com/bevyengine/bevy/milestones]
2026-08-11 engine changes
- 8 PRs merged Aug 11(analyst 跟踪子集,当日实际合并 18 个)— 合并暂停(08-08~08-11 连续 4 天静默)正式结束。本批偏”质量坚固”而非”功能推进”:5 个 bugfix + 1 个构建修复 + 1 个性能微调 + 1 个新功能。唯一的架构级变更是 #25300(ECS 命令队列重构)。
- 评级分布:1 critical + 5 important + 2 contextual + 0 noise。版本/milestone 绑定信息缺失(全部 8 PR 无法确定落入 0.19.1 patch 还是 0.20)。
critical(1)
- #25300 — Simplify command queue implementation by removing
RawCommandQueue(A-ECS, C-Code-Quality, D-Unsafe, no milestone, +189/-349, 5 files). critical. World 命令队列重构:移除RawCommandQueueunsafe 抽象,命令队列直接存于 World 的UnsafeCell中,用泛型CommandQueueRunner统一处理路径。Commands可重新使用#[derive(SystemParam)]。净删 160 行,unsafe 代码净减少(具体行数待确认)。架构级长期影响:命令队列更安全、更可组合。important(5)
- #25334 — Fix normalization in SSAO calculation (C-Bug, A-Rendering, D-Straightforward, 0.19.1, +5/-6, 4 files). important. SSAO 着色器数学错误:
processSample()将归一化 [0,1] 法线n与fast_acos()弧度值front_back_horizon混用,量纲不一致。修复:front_back_horizon除以 PI 归一化后混合。影响环境光遮蔽正确性。- #25325 — Fix 2D materials failing to render when swapping materials (C-Bug, A-Rendering, no milestone, +16/-4, 1 file). important. 同帧移除
MeshMaterial2d<M1>+ 添加MeshMaterial2d<M2>时实例被错误移除。修复:仅类型匹配时才从RenderMaterial2dInstances删除。- #25253 — Fix 2D flicker by always dequeueing retained phase items (C-Bug, A-Rendering, D-Straightforward, 0.19.1, +8/-4, 1 file). important.
queue_material2d_meshes在render_material_instances为空时提前 return 导致 retained phase items 未出队 → 帧间闪烁。修复 #25163。- #25294 — Move EntityCursor out of
bevy_featherstobevy_picking(C-Usability, M-Migration-Guide, X-Contentious, no milestone, +47/-32, 21 files). important.EntityCursor从bevy_feathers移至bevy_picking,import 路径变更。详见 bevy-migration-2026-08。- #25329 — Fix
bevy_mathnot compiling on its own (C-Bug, A-Build-System, P-Compile-Failure, no milestone, +6/-1, 1 file). important.bevy_math依赖 glaminteger-types/float-typesfeature 但未自行启用,脱离bevy_reflect独立编译失败。修复:glam 依赖加all-typesfeature。contextual(2)
#25295 — Add earlier early-outs to bundle and component registration (A-ECS, C-Performance, X-Uncontroversial, D-Straightforward, no milestone, +25/-1, 2 files). contextual.
register_bundle/register_component前置检查存在性避免空Vec分配。小幅性能提升,无 API 变更。#25285 — Added a zoom to cursor option to PanCamera (C-Usability, A-Camera, D-Straightforward, no milestone, +60/-2, 1 file). contextual.
PanCamera新增ZoomTarget枚举(Center 默认 / Cursor),CAD/GIS 风格光标缩放。默认行为不变。Gap:全部 8 PR 无 milestone 绑定信息(仅 #25334、#25253 确认为 0.19.1,其余无法判定落入 0.19.1 patch 还是 0.20)。#25300 unsafe 净减少行数未量化。
模式信号:3 个渲染 bugfix 集中在 2D/SSAO 正确性,与 08-05 的 0.19.1 渲染 bugfix 批次(#25261/#25256/#25252)模式一致——渲染管线在 0.19 周期持续暴露边界 case bug。
补充 PR(10 个,宽窗口 merged:08-10..08-13 复查捕获,前述 8 个之外的遗漏)
- #24148 — UI CPU clipping 支持旋转/缩放:
CalculatedClip变 enum(C-Bug/C-Feature, A-Rendering/A-UI/A-Picking, 0.20, M-Migration-Guide + M-Release-Note + M-Deliberate-Rendering-Change, +758/-645, 18 files, 00:51Z)。Overflowclipping 支持变换节点;CalculatedClip变Rects/FullyClippedenum,bevy_ui_render新增clip_polygon。修复 17630/21775/25126。0.20 UI 破坏性变更,迁移动作见 bevy-migration-2026-08。- #24971 — 间接参数构建 shader 只写自己 batch range(C-Bug, A-Rendering, 0.20, P-Regression, +521/-73, 5 files, 22:49Z)。修复 #23662 引入的多视图阴影偶发闪烁(点光源 6 shadow view 场景 OBB 变化触发越界写)。
- #25058 — material bind group 复用(A-Rendering, C-Performance, +579/-147, 7 files, 22:49Z, pcwalton)。仅 POD 变化(如 color)时不重建 bind group,GPU 资源变化才重建;slab 无谓溢出减少。
- #24928 — 2D mesh 保留式提取(A-Rendering, C-Performance, +235/-46, 7 files, 01:59Z)。对齐 3D 逻辑:未变化 2D mesh 不再逐帧从 main world 重提取,改细粒度 change detection。
- #25338 — SSAO textureGather 参数修复(C-Bug, A-Rendering, 0.19.1, +1/-1, 03:12Z)。
texture_depth_2d的textureGather首参数非整数 → ChromecreateShaderModule报错;1 行修复。- #25367 — despawn 生命周期文档修正(C-Docs, 0.19.1, +2/-1, 22:32Z)。文档改为与实际运行一致:
Despawn → Discard → Remove(修复 #24217)。- #25361 — arboard wayland-data-control feature(C-Bug, A-Windowing/A-UI, 0.19.1, +2/-1, 20:20Z)。Wayland 下
bevy_clipboard与桌面剪贴板数据交换失效修复。- #25339 — transform_gizmo 示例迁移 FeathersRadio/Slider(D-Trivial, C-Examples, +117/-66, 22:49Z)。#25032(examples 迁移 Feathers UI)系列继续。
- #25354 —
FloatOrdderive Default(D-Trivial, A-Math, +1/-1, 03:14Z)。- #25247 — InfiniteGrid major line 间隔可配置(C-Usability, A-Editor, +12/-3, 18:08Z)。
InfiniteGridSettings新增配置(此前硬编码 10)。- 批次结构补充:08-11 全天两波——凌晨 00:51–03:14Z 12 个(merge-queue 恢复后第一批,含 02:39:32Z ×2、03:11:08Z ×2 同秒批次)+ 晚间 18:08–22:56Z 6 个(含 22:49:25Z ×2 同秒批次)。
2026-08-04 engine changes
- 3 PRs merged Aug 3–4 — Bevy 0.19.1 patch release tail end: two 0.19.1 bugfixes + one Feathers API improvement. All fix real user-scenario bugs (GPU memory leak + macOS editor interaction), not paper cuts.
- #25259 — Fix mesh re-allocation logic (C-Bug, A-Rendering, 0.19.1, +735/-13, 5 files). critical. Fixes a GPU memory leak (#18808) when a mesh handle is removed from
Assetsand re-inserted with the same handle in the same frame.MeshAllocator::free_meshesnow frees all meshes scheduled for reallocation this frame (the previous logic assumedextracted_meshes.addedonly contained newly-added meshes, but it actually holds all extracted meshes).slab_allocatorgainsempty_slabstracking with panic/error on reallocation without pending submit. Also addstest_utils.rsusing a wgpu noop backend, enabling render unit tests to run without a real GPU.- #25273 — CursorGrabMode fallback → None (C-Bug, A-Editor, D-Straightforward, 0.19.1, +5/-9, 2 files). important. macOS doesn’t support
CursorGrabMode::Confined; the previous fallback toLockedbroke editor gizmo dragging on Mac. Changed fallback toNone, fixing 18732/24476. Only affects macOS — X11Locked→Confinedfallback and Web behavior unchanged.- #25237 — Feathers HardLimit/SoftLimit → RangeInclusive (A-UI, C-Usability, D-Straightforward, no milestone, +65/-63, 11 files). contextual.
NumberInputRangeandHardLimit/SoftLimitchange fromRange<T>toRangeInclusive<T>, making the upper bound a closed interval. Fixes #25107 where-π..πcaused value bounce due to exclusive upper bound. 10 examples synced.- Milestones: 0.19.1 at 92.2% (59/64, 5 open — carried over from Jul 25; today’s two 0.19.1 PRs are in the final tail). #25237 has no milestone binding — likely deferred or low priority.^[https://github.com/bevyengine/bevy/milestones]
- Releases: v0.19.0 (Jun 18) remains latest. 0.19.1 patch release is imminent.
- Note: #25237 未绑定 milestone(无法确定是否计入 0.19.1 或推迟到 0.20)。
2026-08-03/04 遗漏 PR 补记(4 PRs,搜索索引延迟)
- 4 个遗漏 PR(merged 08-03/04) — 08-05 ingest 窄窗口仅捕获 3 个 PR;本次宽窗口(merged:08-03..08-10)复查发现另有 4 个。全部为 trivial/feature 级,无引擎核心逻辑变更。
- #25265 — FeathersNumberInput Modulus 支持(C-Feature, A-UI, +81/-12, 08-03T19:17Z)。新增
NumberInputWrap(值回绕),NumberInputRange::wrap区别于clamp,用于编辑旋转值场景。无 milestone。- #25233 —
try_interpolate_stable补全 ok 颜色空间 + docs(D-Trivial, A-Color, +5/-0, 08-04T01:55Z)。- #25212 — ECS 文档去除冗余措辞(C-Docs, +1/-1, 08-04T02:10Z)。
- #24595 —
-Zcache-proc-macros加入 config_fast_builds.toml(A-Build-System, +11/-0, 08-04T21:45Z)。增量编译约 -5%(Linux 实测);aarch64 Mac 稳定。
2026-08-05 engine changes(14 PRs,整日遗漏补采)
- 14 PRs merged Aug 5 — 整日遗漏(搜索索引延迟)。06:25:00-01Z 一批 5 个 merge-queue 批量合并(#25261/#25256/#25252/#25230/#25200),05:42:49Z 一批 3 个(#25159/#25140/#25050),05:30-31Z 两个(#24312/#24423)。含 3 个 migration 级变更(#25088/#25200/#24423)、1 个 M-Deliberate-Rendering-Change(#25050)、1 个 M-Release-Note(#25296)。
- #25088 — Migrate to WESL(A-Rendering, M-Release-Note, +4527/-5381, 378 files, 23:39Z)。Bevy 全部 shader 迁移到 WESL(webgpu-tools/wesl-spec,经 wesl-rs)。0.20 前最大的渲染侧基础变更——自定义 shader/material 作者需跟进。
- #24423 —
ExtractComponentPlugin等对AppLabel泛型化(M-Migration-Guide, X-Contentious, 0.20, +631/-267, 24 files, 05:31Z)。提取基建从 main→RenderApp 专用泛化为任意子应用(#[extract_app(RenderApp, AudioApp)]);tracking #24483 的倒数第二个 PR,最终 #22852 将提取逻辑迁入新 crate。- #25050 —
CornerRadius边框圆角值语义修正(M-Deliberate-Rendering-Change, 0.20, +656/-254, 8 files, 05:42Z)。单值 radius 现在 clamp 到 min 半边长(200×100 节点px(100)→ 圆形 (50,50) 而非椭圆 (100,50));轴扩展改用Val::Auto。0.20 UI 破坏性变更。- #25200 —
QueryManyIter返回Result(M-Migration-Guide, X-Contentious, +734/-265, 15 files, 06:25Z)。iter_many系列迭代Result<Item, QueryEntityError>;新增.matched()/.unwrapped()。0.20 ECS 迁移项。- #25296 — BSN: Ready event(M-Release-Note, 0.20, +166/-21, 23:42Z)。场景完全 ready(依赖加载完、层级完整、初始组件插入)时触发”自下而上”事件,与
Add事件(自上而下、子实体不可用)互补。- #25159 — scale gizmo 三轴等比例缩放(0.20, +76/-20, 05:42Z)。
TransformGizmoMode::Scale的 View 手柄现渲染中央 cuboid,支持三轴同时缩放(修复 #24435)。- 0.19.1 渲染 bugfix 批次(06:25:01Z 同一 merge-queue 批次):#25261(binding_arrays_are_usable 改查正确的 wgpu limits)、#25256(clearcoat emission 按 glTF 规范分层,修复 #25083)、#25252(shader 越界访问修复 #25251)。
- #24312 —
Column::initialize_from_uncheckedswap→memcpy(C-Performance, +130/-33, 05:30Z)。表间组件移动直接 memcpy,函数体减半。- #25230 —
Capsule3dgizmo 默认分辨率 5→4(D-Trivial, +12/-1, 06:25Z)。新增DEFAULT_CAPSULE_RESOLUTION常量,不影响其他 3D primitives。- #25189 — DebugPickingPlugin 不再修改 pointer entities(C-Bug, +38/-10, 03:08Z)。调试信息改在独立 lifecycle-linked overlay 实体渲染,修复
ViewportNode消失(#24773)。- 示例/UI:#25249(ui_widgets Character Creation 示例,+888 行,面向初学者)、#25140(clearcoat 示例 → FeathersRadio,#25032 系列)。
- Milestones (08-09 check): 0.20 68/106 closed (64.2%, 38 open) — 较 08-08 67/106 +1 closed;0.19.1 71/79 closed (89.9%, 8 open) — total 77→79(scope inflation +2 open)。v0.19.0 (Jun 18) 仍为最新 release,无 0.19.1 tag。^[https://github.com/bevyengine/bevy/milestones]
- Takeaway: 08-05 是 8 月迄今最高产的合并日,且集中了 0.20 的多个迁移级变更(WESL / QueryManyIter / ExtractComponentPlugin)+ 一个 UI 破坏性变更(CornerRadius)——0.20 迁移清单在 08-05 一天内大幅加长。
2026-08-07 engine changes
- 2 PRs merged Aug 7 — two correctness/safety bugfixes landing on
main(neither has a milestone binding; version targeting TBD). Both fix real bugs but along different severity axes: one eliminates undefined behavior, the other eliminates a panic.- #25287 — Fix UB detected by Miri in the multi-threaded executor (C-Bug, A-ECS, P-Unsound, no milestone, +13/-8, 1 file). critical. The multi-threaded executor’s
system_completedcallback held a&ScheduleSystemacross thetick_executorcall; a derivedapply_deferredtask could then&mut-borrow the same system, violating Stacked Borrows (flagged by Miri). Fix passes&SyncUnsafeCell<SystemWithAccess>instead and defers the&mutborrow to the actual mutation site. Scope is the multi-threaded path only (multi_threaded.rs); the single-threaded executor is unaffected. No observable behavior change for normal builds — the fix raises the memory-safety floor.- #25225 — Account for padding when sizing font atlases (C-Bug, A-Text, A-UI, P-Crash, no milestone, +54/-3, 1 file). important.
add_glyph_to_atlassized the per-glyph atlas from the raw glyph dimension rounded up vianext_power_of_two, butDynamicTextureAtlasBuilderreserves 2px padding at both boundaries — so a 1021px glyph needs 1025px, yet was given a 1024px atlas, triggering a panic. Fix addsGLYPH_ATLAS_PADDING * 2beforenext_power_of_twoand adds a regression test. Reported via #25224 on a WebGPU/mobileText2dlabel.- Milestones: neither PR is bound to 0.19.1 or 0.20; likely lands in a future patch or 0.20.
- Gap (contextual): #25287’s UB is Miri-detected; no known non-Miri crash case was reported (fix value is preventative).
2026-08-07 late merges 补记(4 PRs,合并队列索引延迟遗漏)
- 4 more PRs merged Aug 7 at 03:46 UTC — 上次 ingest 的搜索窗口未捕获这批(GitHub 合并队列索引延迟,典型的 late-merge 现象)。全部为 UI 渲染提取修复 / 示例迁移 / CI 配置,无引擎核心逻辑变更。
- #25188 — Extract gradients on removal of
CalculatedClip(C-Bug, A-Rendering, A-UI, P-Regression, milestone=0.20, +18/-3, 1 file)。regression 修复。UI 渐变(gradient)在CalculatedClip组件被移除时需要重新提取,否则其 render entity 会被错误 despawn。修复:将 removedCalculatedClip实体链入 UI nodes changed query,并从 cleanup iterator 中移除removed_calculated_clip_query。- #25184 —
MaterialNodechange detection fixes (C-Bug, A-Rendering, A-UI, P-Regression, milestone=0.20, +15/-2, 1 file)。regression 修复。两个 bug:(1) 材质未加载完成时加入nodes_to_reextract_next_frame等重新提取,但ui_node_query只选Changed过滤器通过的实体,asset 加载完成不改变组件状态,故不保证下帧重提取;(2)CalculatedClip从MaterialNode实体移除时ExtractedUiMaterialNode不更新而是连同 render entity 被删除。修复思路与 #25188 相同(chain removed entities)。影响 UI 自定义 Material 场景。- #25223 — Add
bevy_feathersfeature to wasm ci testing (D-Trivial, A-Build-System, no milestone, +1/-0)。CI 修复:bevy-example-runnerwasm 运行因split_screen需bevy_feathersfeature 而失败,CI wasm 构建现始终启用该 feature。间接信号:Feathers UI 在 examples 中用量增长。- #25164 — Migrate
2d_shapesto useFeathersCheckbox(C-Examples, A-UI, no milestone, +203/-30, 5 files)。Part of #25032(examples 迁移 Feathers UI):新增 checkbox helper + checkbox theming。wireframe 需POLYGON_MODE_LINE,该 feature 仅非 wasm32 启用,wasm32 未测试。- Milestones (08-08 check): 0.20 at 67/106 closed (63.2%, 39 open) — up from 50/86 (58.1%, 36 open) on Aug 4. 0.19.1 at 71/77 closed (92.2%, 6 open) — total grew 64→77 (scope inflation, +12 closed / +13 total). v0.19.0 (Jun 18) remains latest release; no 0.19.1 tag yet.^[https://github.com/bevyengine/bevy/milestones]
- Takeaway: 两个 P-Regression 修复(#25188/#25184)都是 UI 渲染提取管线在 removed-component 路径上的漏洞,且都绑定 0.20——指向 UI 渲染提取逻辑在 0.19 开发中累积的回归,0.20 正在集中清理。
2026-08-19 merge surge(25 PRs,两波;8 月单日合并纪录)
- 08-19 全天 25 PRs merged(00:22–23:37Z,两波) — 8 月迄今最大合并日(超过 08-18 的 14 与 08-05 的 14);合并暂停彻底结束且节奏高涨。前一 run(03:10Z)窗口只捕获到 08-18 的 drain,本窗口
merged:08-19..08-21的 25 个全部为新合并:wave 1(00:22–01:41Z)14 个为 merge-queue 搜索索引延迟漏采,wave 2(18:23–23:37Z)11 个为当日后续合并。- #22852 — Extract extract to
bevy_extract(M-Migration-Guide, X-Contentious, 0.20, +768/-204, 51 files, 23:07Z)。tracking #24483 的最终 PR(08-05 的 #24423 预言兑现):新建bevy_extractcrate,把bevy_render的 extract/sync 基建 +ExtractComponent/ExtractResourcederive 宏迁入;bevy_render保留 compat 类型,移除L = RenderApp默认(简化自 #23377)。0.20 渲染侧迁移项——自定义渲染/提取插件需更新 import 路径。- #25434 — bevy_editor_cam Upstream(C-Feature, M-Release-Note, +3622/-0, 27 files, 01:41Z)。Bevy Editor 项目的相机控制上游化进 bevy 核心(A-Camera);#25442(
dprojre-export)为其前置已先行落地。编辑器相机能力成为官方 API 的新信号。- #25231 — Support
Val::Em/Val::Rem(C-Feature, M-Release-Note, 0.20, +816/-139, 21 files, 01:02Z)。CSS 式相对长度单位:值存入ComputedNode,UI 布局可用相对字体尺寸。- #24922 — GpuComponentArrayBuffer 增强(pcwalton, C-Feature, A-Rendering/A-ECS, C-Performance, +1629/-170, 21 files, 23:07Z)。GPU 组件数组缓冲可存任意数据到 mesh instance 上——渲染/ECS 交叉的实例数据基建。
- #25292 — 动画目标子图求值(pcwalton, C-Performance, +576/-32, 20:59Z)。动画目标只求值相关子图,不评估无关路径。
- #25413 — Update to Taffy 13(C-Dependencies, A-UI, 0.20, +51/-50, 4 files, 00:22Z)。bevy_ui 布局依赖大版本升级(08-14 起的 0.20 迁移预备项,现落地)。
- #25245 — WebGL2 sparse buffer 修复(C-Bug, P-Regression, 0.20, +82/-71, 00:58Z)。sparse buffer 更新管线在 WebGL2 上的非法提交修复。
- #25319 — SSAO viewport depth sampling 修复(C-Bug, A-Camera, 00:22Z)。SSAO 三日三修系列(#25334/#25338/#25319)收官。
- 0.19.2 落地批次(4 个):#25386(Node despawn crash, P-Crash)、#25443(ImageNode border radius)、#25427(显示器断开不再关窗)、#25450(未解析字体的 layout/lineheight 更新不跳过)——0.19.2 补丁集实质推进(closed 2→7)。
- contextual(11 个):#25353(Table::allocate 去冗余初始化)、#25314(watcher 绝对路径 key)、#25277/#25269(unsafe 文档修复)、#25234(TryStableInterpolate 新增两方法)、#25398(GPU tracing spans +122)、#25435(嵌套 load 拒绝路径不再 panic, P-Crash)、#25219/#25465(input plugin/示例迁移, A-Editor)、#24678(okhsl 色彩空间, A-Editor)、#24934(bevy_feathers W 轴 token)、#25461(Column 字段私有化)、#25452(单线程取消 asset load, O-Web)。
- Milestones (08-20 check):0.19.2 7 closed / 3 open / 10 total(70%)(较 08-19 快照 closed +5);0.20 83/121 closed(68.6%)(较 08-19 79/118:closed +4, total +3 scope growth)。^[https://github.com/bevyengine/bevy/milestones]
- Takeaway:08-19 是 8 月合并量最高的一天,且集中兑现了多条先前预判:① extraction 基建独立 crate(#22852,08-05 预言);② 编辑器相机上游化(#25434,#25442 前置链);③ Taffy 13(#25413,08-14 迁移预备项);④ SSAO 系列收官(#25319)。0.20 渲染侧迁移面在扩大(#22852 import 路径 + #25231 新 UI 单位),同时 0.19.2 补丁集加速收尾。
2026-08-20 ~ 08-21 engine changes(8 PRs,合并节奏回落至常态)
- 08-20 全天 8 PRs merged(00:44–21:16Z)+ 08-21 凌晨 1 个(#25480, 00:13Z) — 较 08-19 的 25 大幅回落至常态日合并量;commits API 与 merged PR 一一对应,无搜索索引延迟。全部 PR 无 milestone(均未挂载)。
- #25264 — Implement parallel contiguous iteration(A-ECS, C-Performance, D-Complex, X-Contentious, M-Release-Note, +1114/-34, 13 files, 00:44Z)。important。#25157(08-13 per-column change tracking / summary ticks)的并行化补全:contiguous 迭代模式此前不支持并行,而 transform propagation / visibility propagation / mesh extraction 等最贵系统早已并行化(改串行会显著回退);本 PR 把现有
par_iter/par_iter_mut基建(跨表缓冲行、按 query 而非按 table 启动并行设施、多表 chunk 派发)带到 contiguous 场景,chunk 跨单表时以连续 slice 呈现(新ContiguousQueryDatatrait)。基准:many_cubes --instance-count 1600000 --no-cpu-culling下extract_meshes_for_gpu_building5.13 ms → 0.039 ms(132× 加速)。0.20 ECS 性能线 25157/25429/25264 三件套至此齐备。- #25480 — Move Tonemapping and DebandDither to bevy_render::view(A-Rendering, D-Straightforward, +102/-89, 4 files, 08-21 00:13Z)。
bevy_render不能依赖bevy_core_pipeline,render-world 代码读不到 camera 的Tonemapping——upcoming render-path work 需要在 camera extraction 选主纹理格式时知道是否 tonemap;定义移至bevy_render::view并从旧路径 re-export(import 兼容、无运行时变化),但 reflected type path 变化(scene 文件 / BRP 键,迁移项见 bevy-migration-2026-08)。Tonemapping::LinearPR 将构建于此之上。- #25423 — Solari: Improved reflection denoising(A-Rendering, D-Complex, C-Refinement, +283/-82, 9 files, 02:22Z)。PSR 反射去噪此前仅用于极光滑金属,现扩展至略不光滑的更多表面类型(较粗糙金属、电介质等;反射更不模糊);动态场景联动增强——glossy 表面 specular motion vectors + 深度缓冲写入、motion vector prepass texture 改 storage binding、DLSS-RR 可配置深度纹理(核心改动
resolve_dlss_rr_textures.wesl+213/-4);作者 JMS55(jms55)。Solari 质量线延续(承接 08-12 #25359 反射测试台)。详见 bevy-solari-pathtracer。- #24989 — Winit
UpdateMode::Reactive+Duration::MAX(C-Bug, A-Windowing, +6/-0, 1 file, 04:16Z)。unfocused_mode: reactive_low_power(Duration::MAX)失焦后无限重绘 bug:checked_add的 None 分支未处理,winit 永远等待一个已过去的时间点;修复为 control flow 转Wait,对齐文档承诺的”无限等待”语义。- #25493 — fix rust 1.98.0 CI failures(P-Critical, +35/-33, 8 files, 21:16Z)。Rust 1.98.0 工具链升级导致的 CI 失败修复,P-Critical 标签——工具链跟随信号。
- trivial(3 个):#25463(dummy white GPU image sampler 逻辑简化)、#25475(
DeferredPrepass加Clone,A-Scenes)、#25476(bevy_extractreadme 修正——08-19 新 crate 的文档收尾)。- Milestones (08-21 check):0.19.2 7 closed / 5 open / 12 total(58.3%)(较 08-20 快照 7/10:closed 持平、total +2 scope growth);0.20 83/122 closed(68.0%)(较 08-20 83/121:closed 持平、total +1)。^[https://github.com/bevyengine/bevy/milestones]
- Takeaway:08-20 合并量回落至常态,但含两枚关键信号:① ECS 性能线收官一步——#25264 让 #25157 的 contiguous iteration 获得并行能力(132× 实测加速),transform/visibility/extraction 最贵系统的 0.20 规模化路径成型;② 0.20 render-path work 前哨——#25480 的架构移动(Tonemapping 进
bevy_render::view)直接为 upcoming render-path 重构铺路,且带 reflected path 迁移面(scene/BRP 键)。Solari 反射质量与 winit 失焦能耗 bug 同步推进。
2026-08-22 engine changes(5 PRs,42.5h 静默后晚间 drain)
- 08-22 全天 5 PRs merged(19:27–21:01Z) — main 自 08-20T23:45Z(#25480)起约 42.5h 静默后,08-22 晚间 19:22–20:26Z 五连发 drain 批次;commits API 与 merged PR 一一对应,无搜索索引延迟。全部 PR 无 milestone。
- #24827 — Cluster RectLight(A-Rendering, C-Performance, X-Uncontroversial, +270/-74, 15 files, 19:56Z)。important(功能)。对矩形 area light 实施 GPU clustering,解除数量上限限制,行为趋近 point/spot light 并提升性能;WebGL2 等无足够 storage buffer 平台回退非聚簇路径。Addresses #23700 第一个 item——0.19 引入 Area Lights 后的 0.20 深化方向,矩形光进入聚簇管线的关键一步。
- #25489 — pan_orbit_camera 动画计时重构(C-Code-Quality, A-Camera, +27/-37, 3 files, 19:27Z)。contextual(内部重构)。Closes #25469:bevy_editor_cam 上游化版本用全局
Instant::now()做动画计时,改为Res<Time<Real>>+Timer——对齐 Bevy 推荐计时模式(真实时间资源 + 声明式定时器)。相机动画代码可参考该模式。- #25482 — Font loading regression tests(C-Testing, A-Text, +157/-0, 1 file, 20:04Z)。contextual(测试基建)。
bevy_text::font新增两个回归测试:font 资产插入时正确TextFont被标记 changed、其他 TextFont 不被误标。change detection 正确性测试。- #25299 — testbed_ui ChangeDetection scene(A-Rendering, C-Examples, A-UI, C-Testing, +162/-0, 1 file, 20:04Z)。contextual(测试基建)。新场景回归测试 clipping/shadows/materials 的 change detection:reserved material handle、零采样 shadow、gradient 组合,10 帧后移除 clipping 恢复默认。截图 CI 用。
- #25486 — Feathers color plane shader imports fix(C-Bug, D-Trivial, D-Shaders, +1/-0, 1 file, 21:01Z)。trivial bugfix。
color_plane.wesl缺okhsl_to_linear_rgbimport 声明(08-20 运行日志报错),1 行修复。- Milestones (08-23 check):0.19.2 7 closed / 5 open / 12 total(58.3%)(与 08-21 持平);0.20 83/124 closed(66.9%)(较 08-21 83/122:closed 持平、total +2 scope growth)。^[https://github.com/bevyengine/bevy/milestones]
- Takeaway:08-22 是零散日合并——42.5h 静默后一次 5 PR drain。信号:① Area Light 深化启动——#24827 RectLight 聚簇解除数量限制(#23700 系列第一个 item),0.20 渲染功能线在 clustering 上继续扩展(承接 08-18 #25424 light texture clustering bugfix 同域);② 测试基建常态化——font change detection 回归测试 + testbed_ui ChangeDetection 场景(ickshonpe 同日 3 PR);③ 计时模式参考——相机动画用
Time<Real>+Timer替代Instant::now()。
2026-08-23 engine changes(2 PRs,依赖清理日)
- 08-23 全天 2 PRs merged(19:02Z + 23:09Z) — main 自 08-22T21:01Z(08-22 批次末)起约 21.4h 静默后仅 2 个依赖层小合并;commits API 与 merged PR 一一对应,无搜索索引延迟。两个 PR 均无 milestone。
- 评级分布:0 critical + 0 important + 2 trivial(依赖卫生/例行升级)。零迁移敏感项(无 M-Migration-Guide)。
- #25522 — Removes unused
bevy_utilsdependency frombevy_ptr(mnmaita, D-Trivial, C-Dependencies, +0/-1, 1 file, 19:02Z)。trivial(依赖卫生)。#25264(08-20 parallel contiguous iteration)重写过程中bevy_ptr内部实现不再需要bevy_utils,本 PR 移除该依赖——08-20 大 PR 的遗留清理。- #25323 — Update base64 requirement from 0.22.0 to 0.23.0(dependabot[bot], D-Straightforward, C-Dependencies, +1/-1, 1 file, 23:09Z)。trivial(例行依赖升级)。dependabot 例行 bump,允许 base64 0.23.0。
- Milestones (08-24 check):0.19.2 7 closed / 5 open / 12 total(58.3%)(与 08-23 持平);0.20 83/124 closed(66.9%)(与 08-23 持平,无 movement)。^[https://github.com/bevyengine/bevy/milestones]
- Takeaway:08-23 是依赖卫生日——全天合并量 2 个且全部为依赖层清理/例行升级,合并重心暂时离开 0.19.2/0.20 milestone 内条目;#25522 是 08-20 #25264 重写的直接遗留清理(印证大 PR 的持续影响),#25323 为 dependabot 例行维护。非 merge pause(open PR 586 个持续活跃更新至 08-23T23:07Z)。
2026-08-24 ~ 08-25 静默观察(0 PRs merged,合并暂停延续)
- 0 PRs merged(merged:2026-08-24..2026-08-26 窗口) — main 自 08-23T22:25Z(#25323 base64 bump)起约 26h 无新 commit(commits API 验证,非搜索索引延迟);宽窗口 merged:08-22..08-26 total 7 全部为已入库 PR(08-22 批次 5 + 08-23 批次 2),无遗漏。与 08-08
08-11 / 08-1508-16 同型——merge pause 延续(8 月第 3 次静默窗口):open PR 活跃更新至 08-25T00:17Z(#25506),开发未停,仅合并暂停(0.19.2 补丁收尾 / 维护者节奏)。- Releases:v0.19.1(08-13)仍为最新,无新 RC、无 0.19.2 tag。
- Milestones (08-25 check):0.19.2 7 closed / 7 open / 14 total(50%)(较 08-24 7/12:closed 持平、total +2 scope growth——新增 25525/25535 两个 UI bugfix PR,open 5→7);0.20 83/125 closed(66.4%)(较 08-24 83/124:closed 持平、total +1;closed 自 08-21 起连续持平 83——0.20 冻结态)。^[https://github.com/bevyengine/bevy/milestones]
- 0.19.2 open 7 项全部为 C-Bug PR:#25535(Taffy node removal fix,08-24 新增)/ #25525(editable_text change detection bypass,08-23 新增)/ #25497(window-picking entity)/ #25474(font family resolve retry)/ #25441(Stable UiStack)/ #25419(孤儿 entity ID 祖先链遍历,S-Waiting-on-Author)/ #25336(fog near-plane,S-Merge-Conflicts)——#24944(Firefox P-Regression issue)已移出列表(关闭或调整)。补丁发布继续后移。
- 新开放 issue(08-24):#25539 Fxaa causes post processing effects to flicker rapidly(C-Bug, S-Needs-Triage)——FXAA 与后处理叠加快速闪烁,渲染链路 bug 信号,暂无 milestone 绑定。
- 开放 PR 候选(0.20 相关):#25514 Fix bevy not exporting
bevy::extract(#22852 bevy_extract crate 导出 gap 收尾)、#25542 Fix panic inTimer::almost_finish(bevy_time crash 修复)、#25513 Solari v8: Disable ReSTIR by default(路径追踪默认配置演进)、#25530 gateLocaluse in bevy_pbr for wasm。- Takeaway:08-23 两个依赖小合并后又进入静默——合并暂停模式延续(8 月第 3 次静默窗口)。信号:① 0.19.2 scope growth +2 且 closed 0——新 UI bugfix 持续计入(editable_text / Taffy node removal),补丁发布后移;② 0.20 冻结态——closed 连续持平(83,自 08-21),仅 scope 缓慢增长,等待 0.19.2 收尾;③ 新渲染 bug #25539(FXAA+后处理闪烁)与 #25542(Timer panic)值得跟踪。
2026-08-30 engine changes(4 PRs;#25574 2d-only sprite crash)
- 08-30 晚间 4 PRs merged(17:08–19:45Z) — 08-25 静默观察之后 wiki 未再入库。本窗含 1 个 P-Crash/P-Regression。无 M-Migration-Guide。
- ⭐ #25574 — Init fallback resources in
bevy_sprite_render(IceSentry, C-Bug, A-Rendering, P-Crash, P-Regression, D-Straightforward, 0.20, 18:05Z)。important。仅开 2d feature 时bevy_sprite_render未把 fallback resources 加进 RenderStartup,会崩。修:MaterialBindGroupPlugin的 RenderStartup 调init_fallback_resources。Closes 25572/25570。SideDawn 2d sprite 路径相关。- #25497 — Fix window-picking entity(laundmo, C-Bug, A-Picking, D-Straightforward, 0.19.2, 17:39Z)。窗口直接 picking 时
event.hit.camera报的是 window entity 而非 camera;改走 RayMap。作者注可能需要迁移条目(若有人 workaround 了错字段),未打 M-Migration-Guide。- trivial:#25598
RegisteredSystem改 pub(D-Trivial, A-ECS);#25485feathers_gallery示例 stack overflow(D-Trivial, C-Examples)。- Milestones (08-31 check):0.19.2 10 closed / 6 open / 16 total(较 08-30 日报 9/5:closed +1 = #25497,scope +2);0.20 87 closed / 43 open / 130 total(66.9%)(较 08-30 86/43:closed +1 = #25574)。v0.19.1 仍最新。
- Takeaway:2d-only sprite 崩溃回归修进 0.20;0.19.2 合入 window-picking camera 字段修正。无迁移标签。
Related pages
- bevy — Bevy engine/entity hub.
- bevy-rendering — Bevy rendering system concepts (mesh re-allocation fix recorded here).
- bevy-ui-text — Bevy UI text/font rendering (font atlas padding fix #25225 recorded here).
- bevy-game-dev-2026-07 — July 2026 tracking (previous month).
- bevy-migration-2026-08 — August 2026 migration-sensitive changes.
- bevy-game-dev-2026-09 — September 2026 tracking (next month).