No luck so far: I ran the application for about 30 seconds and generated a 975 MB log file but a case insensitive "overlay" appears not at all.
Since this missing secondary mouse cursor only appears during certain game states, one idea I had is to look at the 'fixme's in the log and see if any roughly correlate to when the cursor should be on-screen. This is assuming the log growth correlates to game-time, which it probably does with the exception of program start and stop.
I don't know if that's the next best way to debug this but there are two fixme lines that come up a lot (hundreds and hundreds of times):
fixme:d3d:wined3d_debug_location Unrecognized location flag(s) 0xfffffc00.
(and somewhat less often though still prevalent):
fixme:d3d:debug_d3dusage Unrecognized usage flag(s) 0x10000000
Do any of these fixmes sound to be likely candidates to the more knowledgeable DirectX folks? (The former sounds like a DX surface is supposed to be blitted somewhere but the request is invalid - perhaps that's the missing cursor?)
- Christopher Thielen
On 02/15/2014 05:05 PM, Ken Thomases wrote:
On Feb 15, 2014, at 6:17 PM, Christopher Thielen wrote:
I'm attempting to fix http://bugs.winehq.org/show_bug.cgi?id=13683 but need some advice as to where to start. I'm not too familiar with hacking on Wine.
I'd like to test Stefan Dösinger's theory outlined in the comments for #13683 that the missing second mouse cursor is perhaps being implemented using DirectX overlays and that Wine's lack of overlay compatibility flags is to blame.
Would the proper action to test this theory be to fake a certain set of flags in dlls/d3d8/device.c's static HRESULT WINAPI d3d8_device_GetDeviceCaps(IDirect3DDevice8 *iface, D3DCAPS8 *caps) ? If that proves to be the issue, I'd then need to write proper code to report the correct set of flags presumably.
Probably you should start by collecting a log with the +ddraw,+d3d,+d3d_surface channels and looking for messages that mention "overlay".
From a cursory look, it seems that wined3d supports some types of overlay surfaces and some operations on those surfaces, but not all.
Is there any easy way to see which DLLs Wine loads when running an application?
You can look at a +module log.
-Ken