GPU/CPU shared memory

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.

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?

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.