Hi,
Following trace has a BadMatch error related to DIB and XShm.
Strangely, if I do:
--- bitblt.c 2001/01/15 22:30:51 1.28 +++ bitblt.c 2001/04/29 17:06:14 @@ -1461,7 +1461,8 @@ sDst = X11DRV_LockDIBSection( dcDst, DIB_Status_None, FALSE ); sSrc = X11DRV_LockDIBSection( dcSrc, DIB_Status_None, FALSE );
- if ((sSrc == DIB_Status_AppMod) && (rop == SRCCOPY)) { + if (0 && (sSrc == DIB_Status_AppMod) && (rop == SRCCOPY)) { + FIXME("in fast branch\n"); /* do everything ourselves; map coordinates */ xSrc = dcSrc->DCOrgX + XLPTODP( dcSrc, xSrc ); ySrc = dcSrc->DCOrgY + YLPTODP( dcSrc, ySrc );
it no longer does crash, but proceeds happily. So something is broken in the fast path, but what :/
Ciao, Marcus
Call user32.GetDesktopWindow() ret=60cb02ca tid=08063358 Ret user32.GetDesktopWindow() retval=0000008c ret=60cb02ca tid=08063358 Call user32.GetDC(0000008c) ret=60cb02d4 tid=08063358 Call x11drv.GetDC(0000008c,00000088,00000000,0001001a) ret=40783118 tid=08063358 Ret x11drv.GetDC() retval=00000001 ret=40783118 tid=08063358 Ret user32.GetDC() retval=00000088 ret=60cb02d4 tid=08063358 Call gdi32.CreateDIBSection(00000088,40454704,00000000,4a9a94a0,00000000,00000000) ret=60cb02e7 tid=08063358 trace:bitmap:X11DRV_DIB_CreateDIBSection format (16,16), planes 1, bpp 24, size 768, colors 0 (RGB) trace:bitmap:CreateCompatibleBitmap (0ce4,16,16) = trace:bitmap:CreateBitmap 16x16, 65536 colors returning 00000ce8 trace:bitmap:CreateCompatibleBitmap 0ce8 trace:bitmap:X11DRV_DIB_DoProtectDIBSection Changed protection from 4 to 2 Ret gdi32.CreateDIBSection() retval=00000ce8 ret=60cb02e7 tid=08063358 Call user32.ReleaseDC(0000008c,00000088) ret=60cb02f6 tid=08063358 Ret user32.ReleaseDC() retval=00000001 ret=60cb02f6 tid=08063358 Call kernel32.IsBadReadPtr(4ad30000,00000001) ret=60cb08f2 tid=08063358 Ret kernel32.IsBadReadPtr() retval=00000000 ret=60cb08f2 tid=08063358 Call ntdll.RtlEnterCriticalSection(60cc1298) ret=60c9d188 tid=08063358 Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=60c9d188 tid=08063358 Call kernel32.CreateFileA(4a8aafb0 "Y:\programme\Mindjet\MindManager\sys\codes\code6.bmp",80000000,00000001,00000000,00000003,00000080,00000000) ret=60c9e56a tid=08063358 Ret kernel32.CreateFileA() retval=00000068 ret=60c9e56a tid=08063358 Call kernel32.ReadFile(00000068,405b6adc,0000000e,405b6aec,00000000) ret=60c9dfbd tid=08063358 Ret kernel32.ReadFile() retval=00000001 ret=60c9dfbd tid=08063358 Call kernel32.ReadFile(00000068,405b6ab4,00000028,405b6aec,00000000) ret=60c9dfed tid=08063358 Ret kernel32.ReadFile() retval=00000001 ret=60c9dfed tid=08063358 Call kernel32.CloseHandle(00000068) ret=60c9e0b4 tid=08063358 Ret kernel32.CloseHandle() retval=00000001 ret=60c9e0b4 tid=08063358 Call kernel32.CreateFileA(4a8aafb0 "Y:\programme\Mindjet\MindManager\sys\codes\code6.bmp",80000000,00000001,00000000,00000003,00000080,00000000) ret=60c9e56a tid=08063358 Ret kernel32.CreateFileA() retval=00000068 ret=60c9e56a tid=08063358 Call kernel32.SetFilePointer(00000068,00000036,00000000,00000000) ret=60c9d217 tid=08063358 Ret kernel32.SetFilePointer() retval=00000036 ret=60c9d217 tid=08063358 Call kernel32.HeapAlloc(4a260000,00000000,00018010) ret=60cb15a0 tid=08063358 Ret kernel32.HeapAlloc() retval=4a26546c ret=60cb15a0 tid=08063358 Call kernel32.ReadFile(00000068,4a26546c,00018000,405b6ad0,00000000) ret=60c9d4ff tid=08063358 Ret kernel32.ReadFile() retval=00000001 ret=60c9d4ff tid=08063358 trace:bitmap:X11DRV_DIB_Lock Locking 0x40455ea8 from thread 08063358 trace:bitmap:X11DRV_DIB_Coerce AppMod requested in status InSync trace:bitmap:X11DRV_DIB_DoProtectDIBSection Changed protection from 2 to 4 trace:bitmap:X11DRV_DIB_Unlock Unlocking in status AppMod trace:bitmap:X11DRV_DIB_Unlock Unlocked 0x40455ea8 Call kernel32.ReadFile(00000068,4a26549c,00017fd0,405b6ad0,00000000) ret=60c9d4ff tid=08063358 Ret kernel32.ReadFile() retval=00000001 ret=60c9d4ff tid=08063358 Call ntdll.RtlEnterCriticalSection(60cc17d0) ret=60cb3773 tid=08063358 Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=60cb3773 tid=08063358 Call ntdll.RtlLeaveCriticalSection(60cc17d0) ret=60cb3789 tid=08063358 Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=60cb3789 tid=08063358 Call kernel32.HeapFree(4a260000,00000000,4a26546c) ret=60cb1124 tid=08063358 Ret kernel32.HeapFree() retval=00000001 ret=60cb1124 tid=08063358 Call kernel32.CloseHandle(00000068) ret=60c9d22f tid=08063358 Ret kernel32.CloseHandle() retval=00000001 ret=60c9d22f tid=08063358 Call ntdll.RtlLeaveCriticalSection(60cc1298) ret=60c9d236 tid=08063358 Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=60c9d236 tid=08063358 Call ntdll.RtlEnterCriticalSection(60cc1298) ret=60c9d91d tid=08063358 Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=60c9d91d tid=08063358 Call kernel32.CreateFileA(4a8aafb0 "Y:\programme\Mindjet\MindManager\sys\codes\code6.bmp",80000000,00000001,00000000,00000003,00000080,00000000) ret=60c9e56a tid=08063358 Ret kernel32.CreateFileA() retval=00000068 ret=60c9e56a tid=08063358 Call kernel32.ReadFile(00000068,405b6a90,0000000e,405b6aa0,00000000) ret=60c9dfbd tid=08063358 Ret kernel32.ReadFile() retval=00000001 ret=60c9dfbd tid=08063358 Call kernel32.ReadFile(00000068,405b6a68,00000028,405b6aa0,00000000) ret=60c9dfed tid=08063358 Ret kernel32.ReadFile() retval=00000001 ret=60c9dfed tid=08063358 Call kernel32.CloseHandle(00000068) ret=60c9e0b4 tid=08063358 Ret kernel32.CloseHandle() retval=00000001 ret=60c9e0b4 tid=08063358 Call ntdll.RtlLeaveCriticalSection(60cc1298) ret=60c9d9db tid=08063358 Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=60c9d9db tid=08063358 Call gdi32.CreateCompatibleDC(00000000) ret=0040fcda tid=08063358 Ret gdi32.CreateCompatibleDC() retval=00000cec ret=0040fcda tid=08063358 Call gdi32.CreateCompatibleDC(00000000) ret=0040fce2 tid=08063358 Ret gdi32.CreateCompatibleDC() retval=00000cf0 ret=0040fce2 tid=08063358 Call gdi32.CreateBitmap(00000010,00000010,00000001,00000001,00000000) ret=0040fcf5 tid=08063358 trace:bitmap:CreateBitmap 16x16, 2 colors returning 00000cf4 Ret gdi32.CreateBitmap() retval=00000cf4 ret=0040fcf5 tid=08063358 Call gdi32.SelectObject(00000cec,00000cf4) ret=0040fd02 tid=08063358 Ret gdi32.SelectObject() retval=00000044 ret=0040fd02 tid=08063358 Call gdi32.SelectObject(00000cf0,00000ce8) ret=0040fd0c tid=08063358 Ret gdi32.SelectObject() retval=00000044 ret=0040fd0c tid=08063358 Call gdi32.SetBkColor(00000cf0,00c080ff) ret=0040fd1b tid=08063358 Ret gdi32.SetBkColor() retval=00ffffff ret=0040fd1b tid=08063358 Call gdi32.BitBlt(00000cec,00000000,00000000,00000010,00000010,00000cf0,00000000,00000000,00cc0020) ret=0040fd33 tid=08063358 trace:bitblt:BitBlt hdcSrc=0cf0 0,0 16 bpp->hdcDest=0cec 0,0 16x16x1 rop=cc0020 trace:bitmap:X11DRV_DIB_Lock Locking 0x40455ea8 from thread 08063358 fixme:bitblt:X11DRV_BitBlt in fast branch trace:bitmap:X11DRV_DIB_CopyDIBSection (0x4045610c,0x40455ee8,0,0,0,0,16,16) trace:bitmap:X11DRV_DIB_DoCopyDIBSection Copying from DIB bits to Pixmap trace:bitmap:X11DRV_DIB_SetImageBits XPutImage(0x8054790,29361387,0x8074680,0x808bbe8,0,0,0,0,16,16) X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 147 (MIT-SHM) Minor opcode of failed request: 3 (X_ShmPutImage) Serial number of failed request: 5544 Current serial number in output stream: 5545 [