http://bugs.winehq.org/show_bug.cgi?id=16087
Summary: wine spews innumerable "Unable to check compatibility for Format..." errors in some games Product: Wine Version: 1.1.8 Platform: Other OS/Version: other Status: UNCONFIRMED Severity: trivial Priority: P2 Component: directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: bogdanb+bugs.winehq.org@gmail.com
Created an attachment (id=17312) --> (http://bugs.winehq.org/attachment.cgi?id=17312) avoids silly error messages
In dlls/wined3d/directx.c there is a function called IWineD3DImpl_IsPixelFormatCompatibleWithRenderFmt which tries to compute if a certain WINED3DFORMAT is compatible with a certain WineD3D_PixelFormat.
The function has separate paths for WGL_TYPE_RGBA_ARB (integer) and WGL_TYPE_RGBA_FLOAT_ARB (float) WineD3D_PixelFormats. The float path explicitly tests several WINED3DFORMATs, which seems OK. The integer part, however, tries getColorBits() on the WINED3DFORMAT and prints an error if it doesn't get a "correct" answer.
However, getColorBits() always throws an error for float formats, thus when comparing an integer WineD3D_PixelFormat with a float WINED3DFORMAT the function always outputs two errors instead of just saying "no".
The attached patch checks if the format is one where getColorBits works and avoids spewing the error messages is that case. This duplicates the check in getColorBits, so it's a bit of a hack, but a correct fix would need adding a few more functions, so someone more experienced should do it. The patch is against 1.1.8.
Fallout3 in particular is plagued by this problem: at every start-up wine spews out errors for half a minute.