Bug 3885

Oliver Stieber oliver_stieber at yahoo.co.uk
Thu Dec 22 11:14:57 CST 2005

--- Aric Cyr <Aric.Cyr at gmail.com> wrote:

> Tom Spear <speeddymon <at> gmail.com> writes:
> > 
> > Aric Cyr wrote:
> > >>>I took a look at the D3D_OK hack, and I believe the problem to be
> > >>>CheckDeviceFormat in wined3d/directx.c.  This function should return an
> > >>>error if
> > >>>D3DFMT_D32 is checked for on cards which don't support 32bit depth.  
> > >>>Currently
> > >>>it just returns OK for most formats though.  This code is really just a 
> > >>>stub as
> > >>>it stands, and needs to be converted to check if there are any visuals that
> > >>>meet
> > >>>the requested format's requirements, and if there is, return D3D_OK, 
> > >>>otherwise
> > >>>
> > >>>To test my theory, try returning D3D_NOTAVAILABLE for the D3DFMT_D32 case
> > >>>(you'll need to add it) in wined3d/directx.c in
> > >>>IWineD3DImpl_CheckDeviceFormat()
> > >>>and see if that fixes that issue or not.  This would be just another hack
> > >>>though, so a real patch would still be necessary as I decribed above.
> > 
> > Well I took a stab at adding the case for D3DFMT_D32, to the bottom of 
> > the other cases, and let it return the D3DERR_NOTAVAILABLE (as opposed 
> > to D3D_NOTAVAILABLE), and ran the benchmarks again..  Now it finishes 
> > the first one and then goes to do the second one, but crashes in a 
> > different spot, so it seems we also have some stack corrupion (as was 
> > mentioned in the bug)..  So that hack works for now, I would suggest 
> > that since the rest of that code is stubbed out, we should probably go 
> > ahead and submit a patch so we can at least run the darn thing and then 
> > start debugging the stack corruption issue.
> Thanks for testing this out.  You have proved my theory correct, so I'll see
> about making a patch which will correct CheckDeviceFormat().  Basically that
> whole function needs a re-write, so I'd rather do it that way than to put this
> hack in there.  Especially since, I assume, this problem is not present on
> nVidia systems, only ATI.

I'm part of the way through re-writing this function to use an inclusive list per usage instead of
an exclusive list for all usages and should hopefully have the re-write finished by the end of the
week along with CheckDeviceType and friends.

> Regards,
>   Aric

Does your mail provider give you FREE antivirus protection? 
Get Yahoo! Mail http://uk.mail.yahoo.com

More information about the wine-devel mailing list