http://bugs.winehq.org/show_bug.cgi?id=20554
--- Comment #11 from Roderick Colenbrander thunderbird2k@gmail.com 2009-11-05 04:16:15 --- Let me quickly explain the problem. Before this patch we only created X Pixmaps for DIBSections in 1-bit and the depth of the Xserver, so usually 24-bit. When a program requested 16-bit we would still allocate a 24-bit Pixmap and under the hood perform depth conversion.
The reason for not creating Pixmaps in other depths was that X doesn't allowing blitting e.g. 16-bit data to 24-bit. XRender does allow this and I did a lot of work to prepare the Wine code for this. The only places where XRender is really used is during blitting and font rendering.
The final patch for the XRender work (the one which broke your game) added X11DRV_XRender_SetPhysBitmapDepth which is used for setting the depth of a DIBSections to any depth support by XRender, so typically 1-bit, 16-bit, 24-bit and 32-bit.
I fear that some other code e.g. ddraw/wined3d or some other part of winex11.drv contains some bugs which are uncovered by this. I have no idea where to search further yet.