Huw,
I put you on Cc for this thread in the hope to get some information on this issue. Is there any side effect if undefining STRETCH_VIA_DIB? Also, do you know where the problem might be?
Regards, Cihan
Walt Ogburn wrote:
Hi Cihan,
I'm glad it works. It looks like Huw D M Davies changed STRETCH_VIA_DIB from being unset to set in 2002. I think he's still around at huw@codeweavers.com. Maybe you could ask him whether it could be changed back to the other method.
- Walter
On Thu, 12 Jan 2006, Cihan Altinay wrote:
Hi Walter,
Walt Ogburn wrote:
Hi Cihan,
What happens if you comment out #define STRETCH_VIA_DIB in dlls/gdi/mfdrv/bitblt.c? This will make it use GetBitmapBits instead of GetDIBits.
Indeed, this does the trick! No locking problems... Will try to look into that.
- Walter
Thanks a lot, Cihan
On Wed, 11 Jan 2006, Cihan Altinay wrote:
Since nobody seems to be able to help me with this problem at the moment I opened a bug report[1] for it. I would appreciate if somebody with more knowledge could take a quick look at it. Thanks!
Cihan
[1] http://bugs.winehq.org/show_bug.cgi?id=4284
Cihan Altinay wrote:
Hi,
I am still trying to finding the reason for PowerPoint 2000 causing a deadlock if a file is opened that contains a preview which itself contains a bitmap >90x90 pixels (ie. on the first slide). After inserting some traces I feel I am pretty close but I'm stuck since before the holidays. The problem is connected to GDI's and/or metafile's StretchBlt (bitblt.c). It calls MFDRV_StretchBlt and then the trouble begins as can be seen
from the output:
<snip> trace:bitblt:StretchBlt --Start-- trace:gdi:GDI_GetObjPtr (0x3b0c): enter 1 trace:dc:DC_GetDCPtr trace:gdi:GDI_ReleaseObj (0x3b0c): leave 1 trace:gdi:GDI_GetObjPtr (0x3aec): enter 1 trace:dc:DC_GetDCPtr trace:gdi:GDI_GetObjPtr (0x3b0c): enter 2 trace:dc:DC_GetDCPtr trace:bitblt:StretchBlt 0x3aec 0,0 160x120 -> 0x3b0c 0,0 960x720 rop=cc0020 trace:gdi:GDI_GetObjPtr (0x3aec): enter 3 trace:dc:DC_GetDCPtr trace:gdi:GDI_ReleaseObj (0x3aec): leave 3 trace:gdi:GetObjectW 0x3af8 24 0x7fc2f760 trace:gdi:GDI_GetObjPtr (0x3af8): enter 3 trace:gdi:GDI_ReleaseObj (0x3af8): leave 3 trace:gdi:GDI_GetObjPtr (0x3aec): enter 3 trace:dc:DC_GetDCPtr trace:gdi:GDI_ReleaseObj (0x3aec): leave 3 trace:gdi:GDI_GetObjPtr (0x3aec): enter 3 trace:dc:DC_GetDCPtr trace:gdi:GDI_ReleaseObj (0x3aec): leave 3 trace:gdi:GDI_GetObjPtr (0x3aec): enter 3 trace:dc:DC_GetDCPtr trace:gdi:GDI_ReleaseObj (0x3aec): leave 3 trace:metafile:MFDRV_StretchBlt MF_StretchBltViaDIB->len = 20292 rop=cc0020 PixYPM=3780 Caps=96 trace:bitmap:GetDIBits trace:dc:CreateCompatibleDC --Checking lock-- hdc=0x3aec err:syslevel:_CheckNotSysLevel Holding lock 0x7fad49e0 level 3 </snip>
Yes well... hdcDst and hdcSrc aren't freed yet from within StretchBlt. There is a comment "FIXME: there is a race condition here". Could that be the cause for the deadlock? Btw. this might be the same problem as bug #3125 as both refer to the preview and both cause a deadlock.
Can somebody give me a hint on how to tackle this? It is really important for us... If you need more output please let me know.
Thanks a lot, Cihan