bevy/crates
Patrick Walton 72ddac140a
Retain RenderMaterialInstances and RenderMeshMaterialIds from frame to frame. (#16985)
This commit makes Bevy use change detection to only update
`RenderMaterialInstances` and `RenderMeshMaterialIds` when meshes have
been added, changed, or removed. `extract_mesh_materials`, the system
that extracts these, now follows the pattern that
`extract_meshes_for_gpu_building` established.

This improves frame time of `many_cubes` from 3.9ms to approximately
3.1ms, which slightly surpasses the performance of Bevy 0.14.

(Resubmitted from #16878 to clean up history.)

![Screenshot 2024-12-17
182109](https://github.com/user-attachments/assets/dfb26e20-b314-4c67-a59a-dc9623fabb62)

---------

Co-authored-by: Charlotte McElwain <charlotte.c.mcelwain@gmail.com>
Co-authored-by: Alice Cecile <alice.i.cecile@gmail.com>
2025-01-22 03:35:46 +00:00
..
bevy_a11y Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_animation Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_app Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_asset Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_audio Relationships (non-fragmenting, one-to-many) (#17398) 2025-01-18 22:20:30 +00:00
bevy_color Move #![warn(clippy::allow_attributes, clippy::allow_attributes_without_reason)] to the workspace Cargo.toml (#17374) 2025-01-15 01:14:58 +00:00
bevy_core_pipeline Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_derive Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_dev_tools Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_diagnostic Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_dylib Move #![warn(clippy::allow_attributes, clippy::allow_attributes_without_reason)] to the workspace Cargo.toml (#17374) 2025-01-15 01:14:58 +00:00
bevy_ecs fix double comment characters (#17484) 2025-01-21 23:24:05 +00:00
bevy_encase_derive Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_gilrs Support non-Vec data structures in relations (#17447) 2025-01-20 21:26:08 +00:00
bevy_gizmos Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_gltf Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_image Move #![warn(clippy::allow_attributes, clippy::allow_attributes_without_reason)] to the workspace Cargo.toml (#17374) 2025-01-15 01:14:58 +00:00
bevy_input Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_input_focus Parent -> ChildOf (#17427) 2025-01-20 22:13:29 +00:00
bevy_internal Create bevy_platform_support Crate (#17250) 2025-01-20 20:45:30 +00:00
bevy_log Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_macro_utils Move #![warn(clippy::allow_attributes, clippy::allow_attributes_without_reason)] to the workspace Cargo.toml (#17374) 2025-01-15 01:14:58 +00:00
bevy_math Reworked Segment types into their cartesian forms (#17404) 2025-01-19 03:54:45 +00:00
bevy_mesh Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_mikktspace Move #![warn(clippy::allow_attributes, clippy::allow_attributes_without_reason)] to the workspace Cargo.toml (#17374) 2025-01-15 01:14:58 +00:00
bevy_pbr Retain RenderMaterialInstances and RenderMeshMaterialIds from frame to frame. (#16985) 2025-01-22 03:35:46 +00:00
bevy_picking Parent -> ChildOf (#17427) 2025-01-20 22:13:29 +00:00
bevy_platform_support Create bevy_platform_support Crate (#17250) 2025-01-20 20:45:30 +00:00
bevy_ptr Update safety docs for Ptr::assert_unique (#17394) 2025-01-16 03:25:19 +00:00
bevy_reflect Include ReflectFromReflect in all dynamic data types. (#17453) 2025-01-20 22:08:24 +00:00
bevy_remote Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_render Retain RenderMaterialInstances and RenderMeshMaterialIds from frame to frame. (#16985) 2025-01-22 03:35:46 +00:00
bevy_scene Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_sprite Retain RenderMaterialInstances and RenderMeshMaterialIds from frame to frame. (#16985) 2025-01-22 03:35:46 +00:00
bevy_state Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_tasks Create bevy_platform_support Crate (#17250) 2025-01-20 20:45:30 +00:00
bevy_text Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_time Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_transform Parent -> ChildOf (#17427) 2025-01-20 22:13:29 +00:00
bevy_ui Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_utils Create bevy_platform_support Crate (#17250) 2025-01-20 20:45:30 +00:00
bevy_window Move #![warn(clippy::allow_attributes, clippy::allow_attributes_without_reason)] to the workspace Cargo.toml (#17374) 2025-01-15 01:14:58 +00:00
bevy_winit Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00