http://bugs.winehq.org/show_bug.cgi?id=8194
------- Additional Comments From stefandoesinger@gmx.at 2007-08-06 16:36 ------- No, the game didn't feel slow here. You can get rid f the error messages by running them with WINEDEBUG=-all . Its not the fastest though. WINEDEBUG=fps gives me 30 fps ingame, mostly independent of the scene rendered. This is on an intel core 2 duo in powersafe mode(1ghz).
The old ddraw code gets 35 fps, I think it is faster because of the asynchronous frontbuffer update hack Alexandre didn't accept back after the merge. This could speed things up on my dual core cpu since the offscreen frontbuffer -> window HDC blit is one of the main performance hogs. Otherwise the 2D rendering code stayed the same pretty much.
The major change during the rewrite was the d3d code. The ddraw(2D) rendering code from old ddraw(dlls/ddraw/surface_dib.c) was moved to dlls/wined3d/surface_gdi.c, but the old direct3d7 implementation from dlls/ddraw/device_opengl.c was dropped, and ddraw uses the d3d8/9 implementation now(which supports all d3d versions now, based on the features of the opengl implementation found).
WineD3D also has a (rudimentary) hardware accelerated DirectDraw implementation based on opengl. You can enable it by setting the following registry key:
HKEY_CURRENT_USER/Software/Wine/Direct3D/DirectDrawRenderer = "opengl"
The code that gets activated by that is mainly used to make Direct3D games happy which perform DDraw Blits on the d3d target. The opengl'ed ddraw renderer does not cope well with the nastiness of many ddraw apps, like render target locking or GetDC on render targets though. And the drivers don't do that either. So in most cases the hardware ddraw is slower, or does not work at all. I get 30 fps with it, so EU2 works surprisingly well that way.