http://bugs.winehq.org/show_bug.cgi?id=20554
Roderick Colenbrander thunderbird2k@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|winex11.drv |directx-ddraw
--- Comment #19 from Roderick Colenbrander thunderbird2k@gmail.com 2009-11-08 08:47:44 --- At WineConf I looked at this bug with Henri and in the end Alexandre joined us as well. As I mentioned before we use segmentation faults for syncing the memory of DIBSection with the X11 copy. Normally this works well. After disassembling the app it appeared that for some reason Populous is messing with the stack pointer and due to this we lose the stack and crash. For some reason we got away with this before and now it broke. Alexandre said that the only real solution to the issue would be a DIB engine in which we don't have to use this evil memory tricks.
We could copy the DIB data over to a new buffer (in ddraw) and sync that buffer later on but memcpy operations are very expensive and it would really kill performance of other games. The issue we are seeing in Heroes 3 might be related but I'm not sure.