Screen capturing entirely done on the GPU

Hi all.
I’m new to CUDA, and currently trying to do some research to see how can I utilize this technology for business needs.
I currently need to perform video capture of the screen, compress each frame and save the result to disk.
I want to do this with minimal impact on system usability (in terms of CPU/GPU performance, memory bus getting choked, etc.)
I figured that if I could use the GPU (well, graphics adapter in general) to perform the capture and the compression, then copy only the compressed data back to the host process for packaging and disk-writing I could save quite a lot of time.
Thing is I could not find out how to copy the video memory (specifically the same buffer that gets transmitted to the monitor) to a texture buffer (or to any other buffer I can use on the graphics adapter).
It this possible at all? If it is - how?


I think the answer you want is in CUDA links to either DirectX or OpenGL. See CUDA D3Dx or CudaGL

See: [url=“DirectX Video Stream and frame capture - CodeProject”][/url] for video capture in DirectX

The 'Print Screen" button doesn’t work?

The ‘Print Screen’ button is irrelevant, as I want to capture video, not a single frame.

As of now it doesn’t seem like CUDA provides any access to the framebuffer. If you want to capture something that you are rendering yourself, you can try to render to a texture and pass it over to CUDA.

However, from your original post it looks like you want a screen capture. I don’t think it’s possible in CUDA 2.1. Perhaps someone from NVIDIA can shed more light on their plans to make (or not to make) the framebuffer available.