Deadlocking problems in winmm

Robert Lunnon bobl at optushome.com.au
Sat Apr 9 17:55:10 CDT 2005


On Sat, 9 Apr 2005 06:17 pm, Eric Pouech wrote:
> Robert Lunnon a écrit :
>
> sounds like the callback for the wave header is not called, so
> +audioio,+winmm,+mmtime would be helpful.
> A+

More insight,

Perhaps the problem isn't specifically audio related even though it ONLY happens when the audio driver is loaded and a driver (wodPlayer) thread is running

I seems to be getting lots of sections like below, note the DDERR_SURFACEBUSY returns from almost all of the direct draw calls
Dunno how this ties in with DSOUND but it's mighty suspicious.



0009:Call winmm.timeGetTime() ret=00439301
0009:Call kernel32.GetTickCount() ret=7f5e9c03
0009:Ret  kernel32.GetTickCount() retval=000014c9 ret=7f5e9c03
0009:Ret  winmm.timeGetTime() retval=000014c9 ret=00439301
0009:Call winmm.timeGetTime() ret=0043930a
0009:Call kernel32.GetTickCount() ret=7f5e9c03
0009:Ret  kernel32.GetTickCount() retval=000014c9 ret=7f5e9c03
0009:Ret  winmm.timeGetTime() retval=000014c9 ret=0043930a
0009:trace:ddraw:DIB_DirectDrawSurface_Blt (7ff307c8)->(0,0,0,01000400,7fd8fb44)
0009:trace:ddraw:DIB_DirectDrawSurface_Blt 	flags: DDBLT_COLORFILL DDBLT_WAIT 
0009:warn:ddraw:DIB_DirectDrawSurface_Blt  Surface is busy, returning DDERR_SURFACEBUSY
0009:trace:ddraw:DIB_DirectDrawSurface_Blt (7ff307c8)->(7fd8f708,0,0,01000400,7fd8f718)
0009:trace:ddraw:DIB_DirectDrawSurface_Blt 	destrect :0x0-794x550
0009:trace:ddraw:DIB_DirectDrawSurface_Blt 	flags: DDBLT_COLORFILL DDBLT_WAIT 
0009:warn:ddraw:DIB_DirectDrawSurface_Blt  Surface is busy, returning DDERR_SURFACEBUSY
0009:trace:ddraw:DIB_DirectDrawSurface_Blt (7ff307c8)->(7fd8f6e0,7ffeb6e0,7fd8f704,01000000,0)
0009:trace:ddraw:DIB_DirectDrawSurface_Blt 	destrect :155x135-651x215
0009:trace:ddraw:DIB_DirectDrawSurface_Blt 	srcrect  :0x41-496x121
0009:trace:ddraw:DIB_DirectDrawSurface_Blt 	flags: DDBLT_WAIT 
0009:warn:ddraw:DIB_DirectDrawSurface_Blt  Surface is busy, returning DDERR_SURFACEBUSY
0009:trace:ddraw:DIB_DirectDrawSurface_Blt (7ff307c8)->(7fd8f6e0,7ffeb6e0,7fd8f704,01000000,0)
0009:trace:ddraw:DIB_DirectDrawSurface_Blt 	destrect :263x242-545x361
0009:trace:ddraw:DIB_DirectDrawSurface_Blt 	srcrect  :0x125-282x244
0009:trace:ddraw:DIB_DirectDrawSurface_Blt 	flags: DDBLT_WAIT 
0009:warn:ddraw:DIB_DirectDrawSurface_Blt  Surface is busy, returning DDERR_SURFACEBUSY
0009:trace:ddraw:Main_DirectDrawSurface_GetDC (7ff307c8)->(7fd8f77c)
0009:trace:ddraw:Main_DirectDrawSurface_Lock (7ff307c8)->Lock(0,7fd8f6c0,00000000,00000000)
0009:trace:ddraw:Main_DirectDrawSurface_Lock  - locking flags : DDLOCK_SURFACEMEMORYPTR 
0009:warn:ddraw:Main_DirectDrawSurface_Lock  Surface is busy, returning DDERR_SURFACEBUSY
0009:trace:ddraw:Main_DirectDrawSurface_GetDC (7ff307c8)->(7fd8f764)
0009:trace:ddraw:Main_DirectDrawSurface_Lock (7ff307c8)->Lock(0,7fd8f6a8,00000000,00000000)
0009:trace:ddraw:Main_DirectDrawSurface_Lock  - locking flags : DDLOCK_SURFACEMEMORYPTR 
0009:warn:ddraw:Main_DirectDrawSurface_Lock  Surface is busy, returning DDERR_SURFACEBUSY
0009:trace:ddraw:Main_DirectDrawSurface_GetDC (7ff307c8)->(7fd8f74c)
0009:trace:ddraw:Main_DirectDrawSurface_Lock (7ff307c8)->Lock(0,7fd8f690,00000000,00000000)
0009:trace:ddraw:Main_DirectDrawSurface_Lock  - locking flags : DDLOCK_SURFACEMEMORYPTR 
0009:warn:ddraw:Main_DirectDrawSurface_Lock  Surface is busy, returning DDERR_SURFACEBUSY
0009:trace:ddraw:DIB_DirectDrawSurface_Blt (7ff307c8)->(7fd8f6e0,7da71080,7fd8f6f0,01008000,0)
0009:trace:ddraw:DIB_DirectDrawSurface_Blt 	destrect :581x462-592x481
0009:trace:ddraw:DIB_DirectDrawSurface_Blt 	srcrect  :0x0-11x19
0009:trace:ddraw:DIB_DirectDrawSurface_Blt 	flags: DDBLT_KEYSRC DDBLT_WAIT 
0009:warn:ddraw:DIB_DirectDrawSurface_Blt  Surface is busy, returning DDERR_SURFACEBUSY
0009:trace:ddraw:DIB_DirectDrawSurface_Blt (7ff307c8)->(7fd8f6e0,7da71080,7fd8f704,01008000,0)
0009:trace:ddraw:DIB_DirectDrawSurface_Blt 	destrect :581x462-794x550
0009:trace:ddraw:DIB_DirectDrawSurface_Blt 	srcrect  :1431655765x1431655765-1431655978x1431655853
0009:trace:ddraw:DIB_DirectDrawSurface_Blt 	flags: DDBLT_KEYSRC DDBLT_WAIT 
0009:warn:ddraw:DIB_DirectDrawSurface_Blt  Surface is busy, returning DDERR_SURFACEBUSY
0009:trace:ddraw:DIB_DirectDrawSurface_Blt (7ff301d0)->(44e1d8,7ff307c8,0,01000000,0)
0009:trace:ddraw:DIB_DirectDrawSurface_Blt 	destrect :3x22-797x572
0009:trace:ddraw:DIB_DirectDrawSurface_Blt 	flags: DDBLT_WAIT 
0009:warn:ddraw:DIB_DirectDrawSurface_Blt  Surface is busy, returning DDERR_SURFACEBUSY
0009:Call user32.PeekMessageA(7fd8fd10,00000000,00000000,00000000,00000000) ret=004392c9
0009:Call kernel32._CheckNotSysLevel(7fb44c80) ret=7fa9f995
0009:Ret  kernel32._CheckNotSysLevel() retval=00000009 ret=7fa9f995
0009:Call x11drv.MsgWaitForMultipleObjectsEx(00000000,00000000,00000000,000000ff,00000000) ret=7faec89b
0009:Call ntdll.NtCurrentTeb() ret=7f37fdd0
0009:Ret  ntdll.NtCurrentTeb() retval=d1d10000 ret=7f37fdd0
0009:Call ntdll.RtlEnterCriticalSection(7f3cbf80) ret=7f39ae49
0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=7f39ae49
0009:Call ntdll.RtlLeaveCriticalSection(7f3cbf80) ret=7f39ae6a
0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=7f39ae6a
0009:Call ntdll.RtlEnterCriticalSection(7f3cbf80) ret=7f39ae49
0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=7f39ae49
0009:Call ntdll.RtlLeaveCriticalSection(7f3cbf80) ret=7f39ae6a
0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=7f39ae6a
0009:Call kernel32.WaitForMultipleObjectsEx(00000001,7fd8f9d8,00000000,00000000,00000000) ret=7f37feef
0009:Call ntdll.NtWaitForMultipleObjects(00000001,7fd8f7e4,00000000,00000000,7fd8f7d8) ret=7fe2e4a1
0009: select( flags=12, cookie=7fd8f6c8, timeout=1113085739.911636 (-0.000036), handles={60} )
0009: select() = TIMEOUT
0009:Ret  ntdll.NtWaitForMultipleObjects() retval=00000102 ret=7fe2e4a1
0009:Ret  kernel32.WaitForMultipleObjectsEx() retval=00000102 ret=7f37feef
0009:Ret  x11drv.MsgWaitForMultipleObjectsEx() retval=00000102 ret=7faec89b
0009:Call ntdll.NtCurrentTeb() ret=7fa9bc7a
0009:Ret  ntdll.NtCurrentTeb() retval=d1d10000 ret=7fa9bc7a
0009:Call kernel32.GlobalLock16(00001117) ret=7fa9bcb8
0009:Ret  kernel32.GlobalLock16() retval=7ff1c858 ret=7fa9bcb8
0009: get_message( flags=0, get_win=0, get_first=00000000, get_last=ffffffff, get_next_hw=0 )
0009: get_message() = PENDING { type=0, win=0, msg=00000000, wparam=00000000, lparam=00000000, x=0, y=0, hook=0, hook_proc=0, time=00000000, info=00000000, total=0, data={} }



More information about the wine-devel mailing list