Screen grabber on GPU for openCL/openGL/cuda

I have problem. I want to get actual frame what is displayed into gpu memory CUDA/OpenCL for compression in future before transfer it to host.

My program will be like screen saver with compression into gpu before transfer data gpu -> cpu

DISPLAY -> GET ACTUAL FRAME TO GPU MEMORY -> COMPRESSION -> TRANSFER TO HOST

You are mistaken on how OpenCL and OpenGL actually work as CUDA nor OpenCL NEVER display anything. They do not have the ability to display. They have buffers that can be displayed by OpenGL or DirectX but again to be clear there is NO part of the OpenCL or CUDA api/spec which displays data to the screen.

Also you seem to believe that OpenCL or CUDA does compression which it does not. There are libraries which are built on top of both which do compression but not on the screen data so you seem to be asking for something that simply doesn’t make since.

I would recommend reading some of the Introductions to OpenCL/Programmers guide from both ATI and Nvidia to get more familer with the subject.

thesmileman, i think dszynkarczyn just wants to grab the screen - the rest of the flow-chart is the software he wants to write.

I dunno, an accelerated/hardware assisted screen movie maker seems to make sense to me …

Screen capture is normally some horrible/slow operating system function (there are security implications to allowing it, or digital restrictions management rubbish to get in the way) and in any event falls outside of the scope of api’s like opengl.

But if it’s content you’re generating, then that’s easy.