Advice fixing #13683 (DirectX mouse overlay?)

Stefan Dösinger stefandoesinger at
Fri Mar 21 04:14:27 CDT 2014

Hash: SHA1

Am 2014-03-21 03:24, schrieb Christopher Thielen:
> 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.
It means one thing for sure: The cursor is not a user32 cursor.
Otherwise it would not show up in the captures.

I have two theories: Either the game looks at the d3d capabilities
(CheckDeviceFormat, GetDeviceCaps, mostly IDirect3D9 methods) and
concludes that something is missing, enters a bad codepath and does
not draw the pointer.

Or some function unrelated to d3d does not work and the game fails to
read the pointer from its resources.

Since this is a glide application running through a glide wrapper the
second case is much more likely. (Unless my memory is completely broken)

You can compile wined3d for Windows. The basic idea is to set
CFLAGS=-DUSE_WIN32_OPENGL and compile it with mingw on Windows, or
Cross-Compile it from Linux. I also have a hacky Visual Studio 2013
based build setup, but you'll have a hard time generating a binary
that works on Windows XP with that. With a Win32 build of wined3d.dll
and our d3d9.dll you can run the game on Windows with our d3d code. If
the pointer shows up in that case this demonstrates that it is not a
d3d issue. If it does not, it shows that the issue is a capability
flag problem.

> 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.
No idea :-(

> 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.
Did you run the Linux apitrace? In this case you'll see OpenGL calls
instead of d3d calls. Or did you use the Windows apitrace version
inside Wine?

Version: GnuPG v2.0.22 (GNU/Linux)
Comment: Using GnuPG with Thunderbird -


More information about the wine-devel mailing list