Advice fixing #13683 (DirectX mouse overlay?)

Christopher Thielen christopher at thielen.co
Thu Mar 20 21:24:37 CDT 2014


I could be running it wrong but both:

WINEDEBUG=d3d+warn wine ./u9.exe

and

WINEDEBUG=+d3d+warn wine ./u9.exe

show no lines about D3D warnings.

Just this, right at program start:
fixme:d3d:init_driver_info Unable to find a driver/device info for 
vendor_id=0x10de device_id=0x421 for driver_model=2
fixme:win:EnumDisplayDevicesW ((null),0,0x32e8c8,0x00000000), stub!
fixme:d3d:init_driver_info Unable to find a driver/device info for 
vendor_id=0x10de device_id=0x421 for driver_model=2
fixme:win:EnumDisplayDevicesW ((null),0,0x32e6a8,0x00000000), stub!
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.

apitrace is really neat, thanks for pointing it out. I ran it on Windows 
XP with the Ultima IX (GOG edition) and generated a trace - which shows 
the missing mouse cursor - then rebooted into Linux and ran the Windows 
version of apitrace's GUI using the same .trace file and it _did_ also 
show the mouse cursor, running under Wine.

What does this mean? What direction would one explore from here? How is 
it when u9.exe executes the same D3D calls (running the game under Wine) 
the cursor is missing but when Wine runs the apitrace GUI, making the 
same D3D calls and getting translated through the same Wine code, the 
cursor doesn't appear. What am I missing?

Also, I don't know apitrace that well, but is the per-frame 'texture' 
tab only showing textures utilized in that frame, not counting anything 
already in the framebuffer? I couldn't find the cursor texture after 
looking at about two dozen frames, but then again, I didn't find most 
textures using that method.

I did run an apitrace of Ultima IX (GOG edition) on Linux for kicks but 
I don't think it'll help much. There is a factor of about 4x as many 
calls per frame when running under Wine FYI, but I'm assuming the Wine 
D3D folks are already aware of that sort of issue.

On 03/19/2014 03:13 PM, Stefan Dösinger wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Am 2014-03-19 22:45, schrieb Christopher Thielen:
>> I determined this isn't the User32 cursor stuff. It's probably a
>> D3D surface with incorrect properties.
> Apitrace works for d3d9.
>
>> Can anyone recommend an OpenGL debugger or other mechanism for
>> exploring the surfaces of a given scene and playing with their
>> properties? My guess is the tools are pretty primitive for this
>> kind of thing.
> Did you see if d3d+warn writes anything about failed surface creation?
>
> You can try to record a game drawing with apitrace on Windows and see
> if it plays back correctly on Wine. Also check if the playback shows
> the mouse pointer in Windows.
>
> I don't know if d3d9 recording with apitrace works in Wine - it might
> just work, or it might be missing some DECLSPEC_HOTPATCH markers on
> some d3d9 functions.
>
> You can also use the Linux version of apitrace to record the opengl
> calls wined3d creates. This will probably not help you in your case.
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2.0.22 (GNU/Linux)
> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>
> iQIcBAEBAgAGBQJTKhZ3AAoJEN0/YqbEcdMwuxsP/iK9wDECv6CoMjYxjDo1yxQV
> jPC0KbSUw2DwUl0fFTCdWi6PxeTUoz8Hp2IC60D07BvGDiPaxJwRvewfO5jeYuqr
> sINzPgk5NgnZjkUN+cs4oGYlEFXY4p02eSe3uZhihlD0lnbJ0pV/g+8f4RPeIctM
> acTdC6kaIOUQLkRGliOotaj3w27e5QomXiaHcn1l8Ov3of7dBnJtg7hJTvlymL0g
> bUOpnCVHtN1BoeWwQUPUEzhqMjmU4gUCgBZ7lBDsbReeNmFHoeR0QaIqC8EWKr0D
> jznbKuAjuK+9GB/cVhqJj+hHlCaj6xoyNfOQQ34KHYcdtbAMhOTCkJbKzPmCeH8r
> xU3C2nSH88fld/Ie7oULE671XUNnXjPgDQPIcyeBC3PYZ33dR5vzLJrMA63/zA9X
> dP2qiF/A2N7Sk0Mq0FHtKcLICo9W+w7AXOdksZlrWEX4iiUB6LX3sQ+vMm+IePL0
> WxcxP4CEAhXGiu/bub4hj8y3BbvbfyQklrZ4cz05iIf+WS4xYo6cwZ53ciVpgwBu
> V52s8N/XpC6QSy7UpqV1b6JuvMliHlLKGSbCZMezbsB6mShKdGyq45T1JhGukkh0
> Q3DEQoX5TQSg8RqyRwr8coDZDwD0zese6uE+aVuzzznyY0LrTDo4Jio+Y3mWL45e
> jivFvw1C6uoFTKPqU8oM
> =QPSs
> -----END PGP SIGNATURE-----
>



More information about the wine-devel mailing list