Skip to main content
gamedev.net
🔒 Locked

fast framebuffer access

Started by Rebuto May 24, 2006 at 4:25 PM 0 replies 800+ views
Original Post
Rebuto
Rebuto
Hello, I've had a good look through the forums but can't seem to find the "good" way of reading the frame buffer to capture the screen. I don't want to save a bmp, I'm currently passing the pixel data to an avi saver, so I can capture .avis of the output of my d3d application. What I'm doing right now is creating the back buffer as lockable, then at each frame I lock it and simply pass the pixel values to the avi dumper. It's slow, around 6-9 fps, and rendering at 60 fps takes forever! Plus, having a lockable back buffer is undesirable because degrades performance when the program is running normally. As suggested in another thread, I've tried using StretchRect to copy the back buffer into a different texture, to avoid locking the back buffer. That's no good because for it to work you have to make your texture a render target, and you can't lock render target textures (at least on my system). So, what's the best way of accessing framebuffer data? I´m using dx9 and a radeon 9800xt. thanks for your time.
Demirug
Demirug
The fastest way to get data from the GPU memory to the CPU memory is “GetRenderTargetData”. This method is the only way to make use of accelerated video to system memory copy. But it would be possible still not very fast because many GPU, Chipssets, … are not build for fast back transfers.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.