http://bugs.winehq.org/show_bug.cgi?id=18989
--- Comment #13 from Christian DIWWYWDYVHQR@spammotel.com 2009-07-22 08:48:07 --- I don't know if this is helpful at all, but I was able to narrow down the cause of the bug on my computer to a few D3D formats.
If I change the original line of code: if (!GL_SUPPORT(gl_formats_template[i].extension)) continue;
to: if (!GL_SUPPORT(gl_formats_template[i].extension) && ( gl_formats_template[i].fmt == WINED3DFMT_D16_LOCKABLE || gl_formats_template[i].fmt == WINED3DFMT_D24S8 || gl_formats_template[i].fmt == WINED3DFMT_D24X8 || gl_formats_template[i].fmt == WINED3DFMT_D16_UNORM)) continue;
the game still does not start.
However, if I change the line e.g. to: if (!GL_SUPPORT(gl_formats_template[i].extension) && gl_formats_template[i].fmt != WINED3DFMT_D16_LOCKABLE) continue;
the game runs fine again. Instead of WINED3DFMT_D16_LOCKABLE, I can also use WINED3DFMT_D24S8, WINED3DFMT_D24X8, or WINED3DFMT_D16_UNORM.
So the function init_format_texture_info seems to provide wrong data, in my case at least for the D3D formats WINED3DFMT_D16_LOCKABLE, WINED3DFMT_D24S8, WINED3DFMT_D24X8, and WINED3DFMT_D16_UNORM, if executes "continue" for these formats.