Open
Description
Summary
On MacOS (and iOS) roughly every frame the render pipeline allocates a new temporary buffer, it also reinterprets the currently used texture buffers. This is bad practise as when using the Metal framework MTLBuffers should persist as long as possible and not just a single frame. Also whilst the texture reinterpretations aren't costly at all they do make a small obj-c allocation every frame for every texture.
This might (but probably not directly) be related to the high cpu usage found in #10261
Additionally:
- An Apple Instruments metal allocations trace of the 3d_scene example can be found https://bevy.inpolen.nl/traces/3d_scene.trace.zip
- Debugging this yourself requires you to properly sign the executable
Bevy version
Tested on:
0d23d71
bevy 0.11.36178ce9
cb64a4a
bevy 0.17-dev (current main)
All of these have the same bug