On 7/1/06, Stefan Dösinger stefandoesinger@gmx.at wrote:
Hi, The attached patch modifies IWineD3D::CheckDeviceFormat to whitelist supported formats and return unsupported on unknown formats. Games which use funky float formats or simmilar things should then see that the formats aren't supported and (hopefully) fall back to less fancy formats. Before I send it to wine-patches I'd like to know however how those games react to the change. (Do they just fail with an error message or fall back to other formats).
Here are my [limited] results:
Prior to your patch, I'd get these errors from the startup of newer games (Oblivion, Civ4 at least):
err:d3d:IWineD3DImpl_IsGLXFBConfigCompatibleWithRenderFmt unsupported format WINED3DFMT_A4R4G4B4 err:d3d:IWineD3DImpl_IsGLXFBConfigCompatibleWithRenderFmt unsupported format WINED3DFMT_A8 ...
That list would go on for a ton of formats. After this patch, I still get it for the following formats:
WINED3DFMT_X4R4G4B4 WINED3DFMT_A4R4G4B4 WINED3DFMT_A8 WINED3DFMT_A8R3G3B2
But, everything else remains the same in those apps.
Half Life 2, on the other hand, won't launch the level after the patch (at least with pixel shaders enabled). I've attached the d3d_caps logs grepped for "CheckDeviceFormat" from before and after for comparison. The game launches, but it gets about half-way through the status bar loading the first level (Point Insertion), and then crashes.
On 7/7/06, Jason Green jave27@gmail.com wrote:
On 7/1/06, Stefan Dösinger stefandoesinger@gmx.at wrote: Half Life 2, on the other hand, won't launch the level after the patch (at least with pixel shaders enabled). I've attached the d3d_caps logs grepped for "CheckDeviceFormat" from before and after for comparison. The game launches, but it gets about half-way through the status bar loading the first level (Point Insertion), and then crashes.
Reporting that we support V8U8 and V16U16 (like the old code did) fixes Half Life 2. Apparently it needs to have at least one bump mapping format available.