Surprised by EXT_pbo

I am developing an application which will need to have a lot of CPU-GPU pixel data transfer so I started toying a bit with a prototype EXT_pbo application.

I was pretty confident leaving EXT_pbo allocate all the memory areas would have been a win, mainly because of the better DMA pull.
Now, I have done something really wrong OR I have a very weak DMA puller OR a much faster CPU push.

The problem is that I’m unable to reach decent transfer speeds in the prototype application. Using ‘standard’ methods, I end catching up to 350MB/s. I was expecting something like this.
Using PBO, this becomes much lower. The higher I got was rougly 380MB/s (STREAM_DRAW) while the lower is ~70MB/s. This ‘low’ performance applies to STATIC_DRAW and DYNAMIC_DRAW.
There’s something I cannot get away with here. I believe in all the case the whole ‘runtime’ performance won’t be affected anyway (could you confirm that?).
It goes somewhat better with direct mapping but still far from AGP rates.

If I would hit decent speeds (say 20-30% slower of CPU push) I would still consider it a win because of being asyncronous but with so low performance I hardly believe I cannot get stuck with it.

By the way, I use EXT_pbo instead of ARB_pbo becuase I’m running an old driver which does not have support for the latter. Maybe it’s time to update it?
As far as I know there are only ‘minor’ behaviour differences between ARB and EXT.
I’ve checked the EXT spec and I see in the usage examples my program is pretty close to it.

I’m actually generating a test procedural texture to be updated to the video card. I’ve used RGBA and BGRA, unsigned byte components.

Can someone give me suggestions on how to fix this?

I’ve updated my drivers to last nVIDIA official version. The behaviour is changed but it’s way sub optimal anyway. I also changed AGP aperture from 64 to 128MB.

On average, I believe the new driver to be even worse than before.
I have now support for the ARB version. I’ll try it out (although I hardly believe it will change something).

UPDATE (11-15-2005): after trying the ARB version, I began thinking I’m doing something really bad or abusing completely PBOs. I’ll try a different kind of test. Maybe this shall be posted in the advanced forum?