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.

Related reading