I bind two PBOs at once, and one is used to asynchronously read back texture from GPU to PBO, while another asynchronously upload another texture from PBO to GPU. Does these two asynchronous transfer process execute concurrently?
Well another question: when I upload/read back data to/from GPU, could I use GPU to render in this time?That is, does the rendering and data transfer concurrently happen on the same GPU?
many thanks for your help
AFAIK they will not run concurrently.
It depends on your definition of concurrently. They both happen asynchronously, so some calls will return immediately, and the GPU will deal with them in order, like all requests. You can keep issuing GL commands after that, and they will all happen in the order they were queued. In other words - you and your CPU can carry on with whatever.
Concurrently? No, there’s probably only one transfer unit, but it may seem concurrent to you and your code.
For the sake of completeness, the answer is hardware dependent : NVidia advertises that Quadro hardware can do some actual parallel transfers while rendering is performing. See :