bevy/crates
JMS55 5e8dec8a90 Have the mesh allocator handle modified meshes (#18531)
# Objective
Fixes https://github.com/bevyengine/bevy/issues/16586.

## Solution
- Free meshes before allocating new ones (so hopefully the existing
allocation is used, but it's not guaranteed since it might end up
getting used by a smaller mesh first).
- Keep track of modified render assets, and have the mesh allocator free
their allocations.
- Cleaned up some render asset code to make it more understandable,
since it took me several minutes to reverse engineer/remember how it was
supposed to work.

Long term we'll probably want to explicitly reusing allocations for
modified meshes that haven't grown in size, or do delta uploads using a
compute shader or something, but this is an easy fix for the near term.

## Testing
Ran the example provided in the issue. No crash after a few minutes, and
memory usage remains steady.
2025-03-27 23:31:05 +01:00
..
bevy_a11y Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_animation Fix animation transitions affecting other entities (#18572) 2025-03-27 22:58:21 +01:00
bevy_app Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_asset Revert PR #15481 to resolve a regression. (#18567) 2025-03-27 22:58:18 +01:00
bevy_audio Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_color Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_core_pipeline Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_derive Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_dev_tools Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_diagnostic Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_dylib Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_ecs Fix relationship macro for multiple named members fields (#18530) 2025-03-27 22:58:21 +01:00
bevy_encase_derive Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_gilrs Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_gizmos Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_gltf Revert PR #15481 to resolve a regression. (#18567) 2025-03-27 22:58:18 +01:00
bevy_image Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_input Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_input_focus Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_internal Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_log Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_macro_utils Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_math Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_mesh Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_mikktspace Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_pbr Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_picking Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_platform_support Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_ptr Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_reflect Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_remote Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_render Have the mesh allocator handle modified meshes (#18531) 2025-03-27 23:31:05 +01:00
bevy_scene Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_sprite Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_state Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_tasks Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_text Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_time Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_transform Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_ui Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_utils Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_window Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00
bevy_winit Release 0.16.0-rc.2 2025-03-26 19:18:20 +01:00