GL_ARB_vertex_buffer_object details


It seems to me that glBufferDataARB copies the data not only into the AGP or video memory but into driver internal buffer also for future possibility of relocation or glGetBufferSubDataARB. Probably glUnmapBufferARB do the same.
Is it true? If yes it means one more copy operation in contrast to NVidia’s glVertexArrayRangeNV using.
From the other hand driver could decide do not make a copy relying on for example STREAM_DRAW usage flag and for fast relocation it could copy AGP to AGP directly.

So, any comments.