accessing the framebuffer


is it possible to read the current image data from the framebuffer using CUDA?

The project I have in mind is quite similar to VNC, I want to

  • read the current image data
  • and compress it directly on the graphic card
  • then pass it down to the cpu and let it handle the rest

thanks in advance

No. CUDA has no direct access to anything inside an OpenGL context. Only PBOs can be mapped to linear memory CUDA buffers. So you need to copy the framebuffer to a PBO and map that one to a CUDA buffer. As CUDA and OpenGL live in different contexts, the mapping involves another copy.


Also VBOs.

what about FBO’s ?

No, not directly.

We’re investigating ways to improve graphics interop in future releases.