Advice fixing #13683 (DirectX mouse overlay?)

Christopher Thielen christopher at thielen.co
Sun Feb 16 03:06:16 CST 2014


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
>



More information about the wine-devel mailing list