Quick answer: GameMaker sharing a vertex buffer across objects causing freeze on Submit? GPU-resident buffer can't be modified during submission - per-object copies or sync between submits.
Multiple objects use the same vertex_buffer for instanced rendering. Submit one; freeze.
Per-object buffer
Each object owns its vertex buffer. No GPU contention; trades memory for clarity.
Or sync between submits
Wait for previous submit to complete before modifying. vertex_freeze after population; reuse safely.
Use static buffers
For non-changing data, freeze once; submit many times. No contention.
“GPU buffers don't tolerate concurrent modification. Submit and modify must not overlap.”
If you share vertex buffers, the lifecycle discipline is mandatory. Per-object buffers are usually simpler.