Hi everyone.
I'm developing a custom application on AMD fusion platform, which shares GPU and CPU memory. I've discovered a weird quirk related to memory buffer access.

1) initialise OpenGL buffer, and each frame render a scene from the buffer. Get 52 fps.
2) initialise OpenGL buffer. Each frame, modify the buffer, then render it. Get 60 fps.

Code :
modify fVertices
glBindBuffer(fVerticesBuffer);
glBufferSubData(fVertices);
glDrawArray(..)
 
vs
 
glDrawArray()

Essentially, touching the buffer with the CPU seems to trigger a scenario where the GPU can access it faster. It is as if the memory caching/prefetching code favours CPU access compared to GPU access only.

Anyone discover anything similar?