I'm trying to dynamically modify a mesh using RenderingServer.mesh_surface_update_vertex_region and finding it to have really bad performance with ~100 meshes each with ~200 vertices.
I'm doing this to implement curving lasers, which are implemented as a list of points in the last n frames (the game runs at a fixed framerate for determinism), example video of what one looks like is embeded.
The lasers are managed in a GDExtension plugin and all the other parts of the code seem performant enough, disabling the line updating the laser's vertices instantly returns the game to regular speed.
Is there some other way I could be rendering this that's of satisfactory performance?