c++ - OpenGL Buffer Object internal workings? -


I have started using pixel buffer objects and when I think how to use them and what they do It's a summary, I do not really know what's going on under the hood. I know that OpenGall speck allows for the exemption in relation to exact execution, but it's still in front of me.

By now I understand that the buffer object is usually on the server side in GRAM; Although it may apparently vary on the basis of target and usage , it is entirely understandable because this is the reason that OOPL will work so fast on call-board. But in such cases it remains in the AGP or system memory? (Side Q: Is PCI-A equivalent to AGP memory?)

In addition, GlamorBuffers () gives an indicator in a block of memory of the bo so that the data is read / Written / changed, but how is this done? Manipulations are taking the side of the client, so the data should still go to the client from some clients. If it is, then how is better than glReadPixels () ? PBA is clearly better than glReadPixels () , just as the performance difference is clear, I just can not understand how.

I have not used FBOs yet, but I have heard that they are better to use, is this true? If so, why?

I can not tell you how the buffer object will be allocated. Actually you have answered most questions by yourself, so you can hope that a good driver will actually do this.

The Mac Map Buffer can be implemented just like Memory Mapped files. Remember the difference between physical memory and virtual address space: When you type in a memory location, the address is mapped to a physical location through a page table. If the required page is marked as swap, an interrupt occurs and the system swaps the required page into the RAM. This mechanism can be used to map your files and other resources (such as GPU memory) to the virtual address space of your process. When you call GlamBeppuffer, the system allocates some address range (not memory, addresses only) and creates related entries in the page table when you try to read / write these addresses, the system loads / GPU Sends to Of course it will be slow, so some buffering is done in the way.

If you continuously transfer data between the CPU and the GPU, then I suspect that PBO will be faster. When you make many manipulations on the GPU (like loading the frame buffer, changing some texts with the CPU, and re-generating it on the GPU), it is fine, they can be faster in terms of integrated graphics processor or AGP memory Because, in that case glamor buffers can map physical memory directly to the address, can effectively delete a copy operation.

Is FOB Better? why? They are better when you need to render the texture. This is again because they eliminate a data copy operation.


Comments