from the pov of the GL driver, vertex arrays are a 'non-cacheable' operations - each time you specify a gl*Pointer() you effectively command the GL to flush its knowledge of this buffer and re-read it anew from user space
That's unrelated to gl*Pointer(), though. GL has to read data from client arrays
at every draw call, since it has no knowledge over when you modify data in these arrays.
doh. a deserved correction, Xmas. i'm getting rusty with client arrays.
lulzfish said:
If the SGX shares memory with the CPU, isn't OpenGL always reading stuff from memory anyway?
chances are SGX's uma spot and your process' heap are not the same physical memory - data still has to get from the latter to the former. VBO's are your friends .