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
> > >>>D3D_NOTAVAILBLE.
> > >>>
> > >>>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.
Does your mail provider give you FREE antivirus protection?
Get Yahoo! Mail http://uk.mail.yahoo.com
More information about the wine-devel