Announcing another ddraw/d3d7 patch

Stefan Dösinger stefandoesinger at
Fri May 26 06:15:26 CDT 2006

Merging the code into WineD3D is done now, so the last thing is to merge the 
new ddraw code. I have uploaded a new diff to, with some updated screenshots. The diff 
is against wine git from May, 26th, 12 am(yep, the site has an older date). 
It should apply to much older versions too, but it won't work because a few 
crucial patches were applied in the last 2 days. 2 games are missing in my 
game list, Anarchy Online and Worms 2 are also known to work.

Ok, what to do now? The patch fixes quite a few games, but with all bigger 
changes there are problems. I know some games which worked before that are 
broken now(Tibia, Z-Ball, Battlezone 2 and Swat 3). Battlezone 2 and Swat 3 
have fogging issues, I have to talk to Lionel Ulmer about that, and BZ2 also 
needs tripple buffering. Tibia does some Blt Voodoo which doesn't work in 
OpenGL yet, z-ball is similar. It's likely that there are other breakages 
too. Another issue is that wined3d still has a hard dependency on OpenGL, and 
that means that my DirectDraw lib cannot do 2D rendering without It 
doesn't need hardware acceleration, only the lib has to be available. Roderic 
is working on that.

So what can we do?

* Wait with the merge until WineD3D does lazy linking to libGL

* Wait with the merge until all games that worked before work now(gonna take 
some time)

* Merge it now and fix the regressions as they occur. This would have the 
advantage that the code is in and it will only improve from that point, and 
it's easier for users to test. The drawback is that some users might complain 
that their games are broken :-|. On the other had, lots of others are waiting 
for this to get their games working.

What is missing except of fixing regressions? Mostly performance improvements:

1) Make all ddraw games working with the OpenGL renderer

2) More intelligent texture upload: I have some hacks in that in my tree(Swat 
3!, Half-Life 2 maybe?)

3) The same for render targets(System shock 2, swat 3, Prince of persia 3D)

4) Try to write an OpenGL gdi driver which handles TextOut and friends 
directly in OpenGL(Age of Empires, Settlers 3 combined with 1)

5) Rendering fixes: Fog and color keying(Pop3D, Battlezone 2, Swat 3)

6) Better OpenGL state management, this the lack of that takes performance 

7) Multi-threaded D3D(Need for speed 3, Empire Earth, many others)

All this will happen in wined3d, and the improvements aren't limited to D3D7 
games. They don't have to be done in that order.

If you're on wine-users, please CC me, I'm not yet subscribed there.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url :

More information about the wine-devel mailing list