PBOs, memory location


I am working on a project where rendering big 2D datasets is crucial.
Data size is usually bigger than the max texture size allowed, so the data is represented by a meta-texture which is a set of smaller textures tiling the spaces.

Usually, each of these textures have a pbo associated, and everything is sent on the GPU once… each portion of the meta-texture has it’s own texture on the VRAM. that’s the ideal.

In some occasion, the data is larger than VRAM. I read that the driver is supposed to handle how to manage memory in this case… but I end up with crashes in most cases.

So I designed another loading system. The meta-texture is rendered using only one texture and pbo at a time. A portion is rendered, I use the same texture, fill it the data of the next portion, render the next portion, etc…

Now it is unclear to me where pbo data is stocked. Because in the second scheme, I use a lot of cpu constantly updating the pbo.
If pbo data is stocked outside the GPU, then I could still use a set of pbo filled once as in first scheme, the only work left would be the locate the right pbo.

Does that make sense?
Are pbo located in RAM?

Thx for any anwser :slight_smile: