![]() # Objective There is a large performance regression in the UI systems in 0.15 because the `UiChildren` and `UiRootRootNodes` system params (even with `ghost_nodes` disabled) are really inefficient compared to regular queries and can trigger a heap allocation with large numbers of children. ## Solution Replace the `UiChildren` and `UiRootRootNodes` system params with simplified versions when the `ghost_nodes` feature is disabled. ## Testing yellow this PR, red main cargo run --example many_buttons --features "trace_tracy" --release `ui_stack_system` <img width="494" alt="stack" src="https://github.com/user-attachments/assets/4a09485f-0ded-4e54-bd47-ffbce869051a" /> `ui_layout_system` <img width="467" alt="unghosted" src="https://github.com/user-attachments/assets/9d906b20-66b6-4257-9eef-578de1827628" /> `update_clipping_system` <img width="454" alt="clipping" src="https://github.com/user-attachments/assets/320b50e8-1a1d-423a-95a0-42799ae72fc5" /> |
||
---|---|---|
.. | ||
src | ||
Cargo.toml | ||
README.md |