http://bugs.winehq.org/show_bug.cgi?id=34051
--- Comment #8 from Ken Thomases ken@codeweavers.com 2013-09-08 23:04:06 CDT --- Created attachment 45905 --> http://bugs.winehq.org/attachment.cgi?id=45905 Tighten double-buffer, stereo matching in ChoosePixelFormat
It looks like the game requests a pixel format supporting double-buffering, stereo, 24 bits of color, and 32 bits of depth. ChoosePixelFormat is returning an unaccelerated format when it shouldn't.
I think ChoosePixelFormat is supposed to restrict its search to formats supporting double-buffering and stereo if any are available. They are available, but the logic in ChoosePixelFormat is broken. Ultimately, it seems to be giving priority to the requested depth buffer size. On your system, the only formats with a 32-bit depth buffer are the software-rendered ones.
The attached patch fixes the logic of ChoosePixelFormat with respect to double-buffering and stereo. This incidentally avoids the software-rendered formats, because they don't support stereo. (I think, though, that ChoosePixelFormat would still pick a software-rendered format if the game had not requested stereo, which means there are further bugs.)
I've added some additional logging, too. So, if it is still terribly slow, please collect another log.