opengl support in wine

Tomas Carnecky tom at
Thu Dec 1 15:09:02 CST 2005

Stefan Dösinger wrote:

>>I want to create fraps for linux. Using XShmGetImage() and friends is
>>too slow. So my first
>>approach was to create a fullscreen opengl app and do glReadPixels().
>>But this performs
>>very badly when there are two opengl applications running at the same
>>time (fps drops from
>>Now what are my options besides modifying the wine source?
>Do you mean the thing described at
exactly that thing :)

AnandTech has created a similar program 
They've used the same approach as me, and for run-time linking, they 
modify the binary (which I don't
want to do right now, too complicated ATM).

>It's certainly interesting, and hooking calls makes sense. There's for sure a 
>point in it. However there may still be problems:
>* There are some closed source games for Linux which load the library at run 
>time. Your approach will fail here, just as it does with Wine. I don't know 
>which games are affected, but I have read about this when searching for a 
>workaround for the slow mouse pointer problem with fglrx.
>* The fglrx driver: glReadPixels, glWritePixels, glTexImage2D and friends are 
>_terribly_ slow with this driver( 1 fps when accessing the back buffer). Just 
>follow the Direct3D discussions or search the archives, this problem has been 
>discussed before, and it will come up again(At least when my DX7 patches are 
>ready). Your glReadPixels approach won't work for radeon cards. I don't know 
>a fix / workaround. If you have one, I'd really be glad!

I have a nVidia 7800 GTX on a PCI-Express bus, and with a simple 
glReadPixels(), I can get ~700MB/s
(makes ~140 fps at 5MB/frame, 1280x1024 RGBA). Is there another function 
which can be used for
readback? I don't know any other OpenGL function that could be used for 
this. Is there any other?

What about asynchronous glReadPixels using PBOs, does this perform 
better on ATI cards? The nvidia
SDK (for windows only) has a performance test application that can be 
used to measure the different
readback techniques.


More information about the wine-devel mailing list