http://bugs.winehq.org/show_bug.cgi?id=10866
--- Comment #2 from Roderick Colenbrander thunderbird2k@gmx.net 2007-12-29 09:49:57 --- You are correct on the problem. Normally ddraw or direct3d games just render to the screen. The evilness of ddraw/d3d is that both export a 'GetDC' function which games can use to mix GDI with ddraw/d3d. In case of games on wine this is the most terrible thing a game can do. As what happens is that each GetDC call the whole framebuffer contents is downloaded and put in a sort of 'bitmap'. Then it is handled to GDI for drawing to it. Behind your back GDI uses X for drawing and this is quite inefficient.
Some time in the future we will get a 'DIB' engine in wine and when we have that the GDI drawing can be done without X and this will make it quite a bit faster but the costly download is still needed. (In case of gdi there is no download only in case of opengl; in gdi only the final result is shown on the screen, so all data is still on the cpu-side)