pbo update : refresh rate non constant


I use windows Seven, nvidia card, double buffering, vsync on
I wants to use pbo to improve movie update to texture (large movie 5760x1080 resolution!) … I am near ok with standard geltexsubimage2D… I wants to improve using pbo (the best match seems to be (GL_BGRA_EXT, GL_UNSIGNED_BYTE,GL_RGBA for internal) … its’strange in my old thinking, it was GL_UNSIGNED_INT_8_8_8_8_REV ?

If I have no pbo it takes about 15ms to update, if I use pbo :
I have some frame 3 or 4ms to do the memcpy,and gltexsubimage2D with null as parametre… but alternatively some frame it takes more than 30 ms !!! If i disable the vsync, I take always 3 or 4 ms … I have implemented double pbo but it’s the same …

I don’t what is wrong : it seems that the format are good but I don’t understand why time to update is so changing : it’s like that the opengl driver is locked to wait for a frame rendering

There is a common misconception about PBOs: they don’t magically make image transfers faster. They don’t help increasing the available bandwidth. PBOs help to do image transfers asynchronously, the the application can do something else while the transfer happens (i.e. do rendering or other stuff). This helps to somehow “hide” the image transfer time which can make the application seem to work faster.

My guess on your problem is: using PBOs seems to slow you down and in turn you fall below the vsync threshold, so you end up with 30fps instead of 60. But this also tells me, that you don’t measure the data transfer itself, but the frame as a whole which might not be what you should measure…