http://bugs.winehq.org/show_bug.cgi?id=11295
Summary: Photoshop 7 crashes if you activate it while there's an image in the clipboard Product: Wine Version: CVS/GIT Platform: Other OS/Version: other Status: NEW Keywords: download Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: dank@kegel.com
Created an attachment (id=10385) --> (http://bugs.winehq.org/attachment.cgi?id=10385) +clipboard,+seh,+text,+dialog log of Photoshop 7 crashing
I originally described this in a comment on bug 4523, but perhaps it deserves its own bug.
Start Firefox 2 and Photoshop 6 or 7 in wine. Copy an image in Firefox. (Oddly, Firefox in Linux doesn't seem to have a "Copy Image" option, this is a Windows thing.) Switch to Photoshop -- you don't even have to do anything but activate it -- and Photoshop crashes after putting up a dialog box "Could not complete your request because of a program error." I'll attach a +text,+seh,+clipboard log of Photoshop 7 crashing like that.
http://bugs.winehq.org/show_bug.cgi?id=11295
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Photoshop 7 crashes if you |Photoshop 6 and 7 crash if |activate it while there's an|you activate them while |image in the clipboard |there's an image in the | |clipboard
--- Comment #1 from Dan Kegel dank@kegel.com 2008-01-20 20:25:28 --- The crash in that log occurs here:
fixme:palette:GetICMProfileA (0x213c, 0x34dee0, 0x34dee4): partial stub trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7ee32180
Everything before the GetICMProfileA is before I activated the Photoshop window.
Same thing happens in Photoshop 6. Here's +relay around the crash:
002f:Call gdi32.GetICMProfileA(0000ccc4,0034e9dc,0034e9e0 "@\xe7\xff~") ret=003916b4 fixme:palette:GetICMProfileA (0xccc4, 0x34e9dc, 0x34e9e0): partial stub 002f:Ret gdi32.GetICMProfileA() retval=00000001 ret=003916b4 002f:Call gdi32.DeleteDC(0000ccc4) ret=003916c0 002f:Ret gdi32.DeleteDC() retval=00000001 ret=003916c0 002f:Call KERNEL32.CreateFileA(0034e9e0 "winefake.icm",80000000,00000003,0034e8ac,00000003,00000080,00000000) ret=003c8749 002f:Ret KERNEL32.CreateFileA() retval=ffffffff ret=003c8749 002f:Call KERNEL32.GetLastError() ret=003c8755 ... 002f:Call KERNEL32.RaiseException(e06d7363,00000001,00000003,0034e914) ret=003be706 trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7ee32180
Looks like the app is taking Wine at its word, and trying to open the fake color profile file itself, and barfing?
http://bugs.winehq.org/show_bug.cgi?id=11295
Hans Leidekker hans@it.vu.nl changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |hans@it.vu.nl
--- Comment #2 from Hans Leidekker hans@it.vu.nl 2008-01-21 03:18:32 --- I remember looking into this while working on mscms. I even have a patch that changes GetICMProfile to return the right file after installing a copy of the standard sRGB color profile, like from here:
http://download.microsoft.com/download/whistler/hwdev1/1.0/wxp/en-us/ColorPr...
Perhaps we should add it to winetricks? I'll polish up the patch and submit.
http://bugs.winehq.org/show_bug.cgi?id=11295
--- Comment #3 from Hans Leidekker hans@it.vu.nl 2008-01-21 10:49:31 --- Do the patch and instructions from this mail fix the crash?
http://www.winehq.org/pipermail/wine-patches/2008-January/049249.html
http://bugs.winehq.org/show_bug.cgi?id=11295
--- Comment #4 from Dan Kegel dank@kegel.com 2008-01-21 11:09:59 --- They certainly help -- the log shows we're on to the next problem -- but the user symptoms stay the same, so I guess I'll continue with this bug report. The new problem comes after retrieving the clipboard data:
trace:clipboard:GetClipboardData 0008 trace:clipboard:X11DRV_GetClipboardData (0008) trace:clipboard:X11DRV_CLIPBOARD_RenderFormat 0x0008 hData32((nil)) hData16(0x00000000) trace:clipboard:X11DRV_CLIPBOARD_ReadSelectionData 8 trace:clipboard:X11DRV_CLIPBOARD_ReadSelectionData Requesting conversion of L"WCF_DIB" property (20) from selection type 00000105 trace:clipboard:X11DRV_CLIPBOARD_ReadProperty Reading property 427 from X window 50331781 trace:clipboard:X11DRV_CLIPBOARD_ReadProperty Retrieving 4 bytes trace:clipboard:GetOpenClipboardWindow hWndClipWindow(0x10026) trace:bitmap:X11DRV_DIB_CreateDIBFromPixmap Pixmap properties: width=200, height=150, depth=24 trace:bitmap:CreateBitmapIndirect 200x150, 16777216 colors returning 0xdb4 err:x11drv:X11DRV_CreateBitmap Trying to make bitmap with planes=1, bpp=24 trace:seh:raise_exception code=c0000005 flags=0 addr=0x7e3dbc2d ... trace:text:DrawTextExW L"Could not complete your request because of a program error.", -1, [(0,0)-(238,26)] 00000850
http://bugs.winehq.org/show_bug.cgi?id=11295
--- Comment #5 from Dan Kegel dank@kegel.com 2008-01-21 11:26:13 --- FWIW, the image I copy to repeat this is the screenshot near the top of winehq.org, http://winehq.org/images/shots/wine_14.png
http://bugs.winehq.org/show_bug.cgi?id=11295
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |x11-driver
--- Comment #6 from Dan Kegel dank@kegel.com 2008-01-22 13:15:01 --- With today's git and a clean .wine, we seem to get past the first problem, but the second problem remains.
Changing dlls/winex11/bitmap.c like this:
- ERR("Trying to make bitmap with planes=%d, bpp=%d\n", - bitmap.bmPlanes, bitmap.bmBitsPixel); + ERR("Trying to make bitmap with planes=%d, bpp=%d when screen_bpp is %d\n", + bitmap.bmPlanes, bitmap.bmBitsPixel, screen_bpp);
shows that it seems to be yet another 24 vs. 32 bpp issue:
err:x11drv:X11DRV_CreateBitmap Trying to make bitmap with planes=1, bpp=24 when screen_bpp is 32
Amusingly, xwininfo shows that my desktop background, Photoshop CS2's background, and the "Untitled" window I just opened in Photoshop are all 24bpp, so I don't know where this 32 bpp screen_bpp is coming from...?
Switching category to x11-driver (hmm, shouldn't that category be called winex11?).
http://bugs.winehq.org/show_bug.cgi?id=11295
--- Comment #7 from Dmitry Timoshkov dmitry@codeweavers.com 2008-01-23 00:37:39 --- Probably the problem comes from X11DRV_DIB_CreateDIBFromPixmap in dlls/winex11.drv/dib.c. The 24 vs. 32 bit mismatch comes from the fact that Wine doesn't report 24 bpp depth for a DC in GetDeviceCaps and 32 instead, but X11 uses 24 in that case.
A solution should be to fix X11DRV_DIB_CreateDIBFromPixmap to use 32 if XGetGeometry returns depth 24.
http://bugs.winehq.org/show_bug.cgi?id=11295
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |stefan@codeweavers.com
--- Comment #8 from Dmitry Timoshkov dmitry@codeweavers.com 2008-01-23 02:21:06 --- After reading various documents found by Google on the net I think that not allowing 24 bpp depth and replacing it in winex11.drv by 32 is wrong. It's clear that Windows drivers do support 24 bpp screen depth.
Adding Stefan to the cc: list since his patch is related to this.
http://bugs.winehq.org/show_bug.cgi?id=11295
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Photoshop 6 and 7 crash if |Photoshop 6 and 7 crash on |you activate them while |24 bit screens if you |there's an image in the |activate them while there's |clipboard |an image in the clipboard
--- Comment #9 from Dan Kegel dank@kegel.com 2008-01-23 10:54:50 --- Workaround: edit /etc/X11/xorg.conf and change DefaultDepth 24 to DefaultDepth 16
which kind of confirms that the 24 vs. 32 bit confusion is a real problem.
http://bugs.winehq.org/show_bug.cgi?id=11295
Stefan Dösinger stefandoesinger@gmx.at changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |stefandoesinger@gmx.at
--- Comment #10 from Stefan Dösinger stefandoesinger@gmx.at 2008-01-24 17:11:22 --- This might have a relation to bug 2680
http://bugs.winehq.org/show_bug.cgi?id=11295
Stefan Dösinger stefandoesinger@gmx.at changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|stefan@codeweavers.com |
http://bugs.winehq.org/show_bug.cgi?id=11295
--- Comment #11 from Dmitry Timoshkov dmitry@codeweavers.com 2008-01-25 03:06:36 ---
From the very first lines of dlls/winex11.drv/settings.c:
/* All Windows drivers seen so far either support 32 bit depths, or 24 bit depths, but never both. So if we have * a 32 bit framebuffer, report 32 bit bpps, otherwise 24 bit ones. */
So, apparently forbidding 24 bpp in GetDeviceCaps is wrong. But that's a different story.
http://bugs.winehq.org/show_bug.cgi?id=11295
--- Comment #12 from Dmitry Timoshkov dmitry@codeweavers.com 2008-01-25 03:16:00 --- Created an attachment (id=10435) --> (http://bugs.winehq.org/attachment.cgi?id=10435) Convert 24 to 32 bpp for consistency with x11drv_main.c
Does the atatched patch help? It just does the same thing as x11drv_main.c, process_attach() does (even if it seems to be wrong).
http://bugs.winehq.org/show_bug.cgi?id=11295
--- Comment #13 from Dan Kegel dank@kegel.com 2008-01-25 08:08:51 --- Yes, that seems to make the problem go away.
http://bugs.winehq.org/show_bug.cgi?id=11295
--- Comment #14 from Dmitry Timoshkov dmitry@codeweavers.com 2008-01-25 09:08:00 --- I sent it to wine-patches.
http://bugs.winehq.org/show_bug.cgi?id=11295
--- Comment #15 from Dmitry Timoshkov dmitry@codeweavers.com 2008-01-25 09:54:47 --- While investigating this bug Alexandre found several bugs which cause all this grief. He said that it needs to wait to be fixed properly later, once he is back from ski skating.
http://bugs.winehq.org/show_bug.cgi?id=11295
--- Comment #16 from Dmitry Timoshkov dmitry@codeweavers.com 2008-01-25 09:55:30 --- ... in a week.
http://bugs.winehq.org/show_bug.cgi?id=11295
--- Comment #17 from Dan Kegel dank@kegel.com 2008-01-26 01:37:21 --- Great news, thanks!
http://bugs.winehq.org/show_bug.cgi?id=11295
--- Comment #18 from Dmitry Timoshkov dmitry@codeweavers.com 2008-02-04 09:05:19 --- Alexnadre committed a bunch of fixes for this problem, please re-test.
http://bugs.winehq.org/show_bug.cgi?id=11295
--- Comment #19 from Dmitry Timoshkov dmitry@codeweavers.com 2008-02-23 09:17:49 --- Does this problem still exist in 0.9.56?
http://bugs.winehq.org/show_bug.cgi?id=11295
--- Comment #20 from Dan Kegel dank@kegel.com 2008-02-23 09:19:13 --- I'll try to test soon...
http://bugs.winehq.org/show_bug.cgi?id=11295
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Photoshop 6 and 7 crash on |Adobe Photoshop 6 and 7 |24 bit screens if you |crash on 24 bit screens if |activate them while there's |you activate them while |an image in the clipboard |there's an image in the | |clipboard
http://bugs.winehq.org/show_bug.cgi?id=11295
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #21 from Dan Kegel dank@kegel.com 2008-02-28 13:03:52 --- Yes, fixed, thanks.
http://bugs.winehq.org/show_bug.cgi?id=11295
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #22 from Alexandre Julliard julliard@winehq.org 2008-03-07 11:28:35 --- Closing bugs fixed in 0.9.57.
http://bugs.winehq.org/show_bug.cgi?id=11295
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|CVS/GIT |unspecified