Profiing windows apps

Ralph Little littlesincanada at yahoo.co.uk
Wed Feb 8 15:48:56 CST 2012


Hi,
> Also please attach a full +ddraw log to the bug report. If it is too big 
> compress it. bzip2 should do a pretty decent job, if all fails try lrzip.

OK, done!

> If the testing doesn't reveal anything, look out for IDirectDraw::GetCaps 
> calls in the logs or IDirect3Dx::EnumZBufferFormats. IDirectDraw::GetCaps 
> returns a DDCAPS structure which has dwZBufferBitDepths containing some flags 
> for z buffer bit depths. EnumZBufferFormats calls a callback multiple times 
> with available DDPIXELFORMAT structures. The application may not like some 
> flags we set there.

The Sims calls EnumDevices and I presume calls EnumZBufferFormats within the callback for each device:

trace:ddraw:d3d3_EnumDevices Enumerating WineD3D D3DDevice interface.
trace:ddraw:d3d3_EnumZBufferFormats iface 0x13d04c, device_iid {a4665c60-2673-11cf-a31a-00aa00b93356}, callback 0x586a7d, context 0xabc198.
trace:ddraw:d3d7_EnumZBufferFormats iface 0x13d048, device_iid {a4665c60-2673-11cf-a31a-00aa00b93356}, callback 0x586a7d, context 0xabc198.
trace:ddraw:d3d7_EnumZBufferFormats Asked for SW device.
trace:ddraw:PixelFormat_WineD3DtoDD Converting wined3d format 0x52 to DDRAW.
trace:ddraw:PixelFormat_WineD3DtoDD Returning: ( DDPF_ZBUFFER , Z bits : 16)
trace:ddraw:d3d7_EnumZBufferFormats Enumerating wined3d format 0x52.
trace:ddraw:d3d7_EnumZBufferFormats Format enumeration cancelled by application.
trace:ddraw:d3d3_EnumDevices Enumerating HAL Direct3D device.
trace:ddraw:d3d3_EnumZBufferFormats iface 0x13d04c, device_iid {84e63de0-46aa-11cf-816f-0000c020156e}, callback 0x586a7d, context 0xabc198.
trace:ddraw:d3d7_EnumZBufferFormats iface 0x13d048, device_iid {84e63de0-46aa-11cf-816f-0000c020156e}, callback 0x586a7d, context 0xabc198.
trace:ddraw:d3d7_EnumZBufferFormats Asked for HAL device.
trace:ddraw:PixelFormat_WineD3DtoDD Converting wined3d format 0x52 to DDRAW.
trace:ddraw:PixelFormat_WineD3DtoDD Returning: ( DDPF_ZBUFFER , Z bits : 16)
trace:ddraw:d3d7_EnumZBufferFormats Enumerating wined3d format 0x52.
trace:ddraw:d3d7_EnumZBufferFormats Format enumeration cancelled by application.
trace:ddraw:d3d3_EnumDevices End of enumeration.

I don't know if this looks sensible, though.
I see from the code that there are a lot of "gotchas" (both in d3d7_EnumZBufferFormats and d3d3_EnumDevices) for a number of games expecting things to happen in specific sequences and containing specific responses.
I wonder if the Sims is going to turn out to be another.

Cheers,
Ralph
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20120208/8e867aa5/attachment.html>


More information about the wine-devel mailing list