auto-update vertex buffer if dirty