http://bugs.winehq.org/show_bug.cgi?id=29279
Bug #: 29279 Summary: Window stops being refreshed when partially off-screen (WinUAE) Product: Wine Version: 1.3.27 Platform: x86-64 URL: http://www.winuae.net/files/InstallWinUAE2330.exe OS/Version: Linux Status: UNCONFIRMED Severity: minor Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: markk@clara.co.uk Classification: Unclassified Regression SHA1: e1ab5f6e6bf251566289ccf3177ebaf8102cb72b
Hi,
Recent Wine versions have a bug which shows up with WinUAE, an Amiga emulator.
I tested WinUAE 2.3.3 on a system running Lubuntu 11.10 64-bit (Openbox 3.5.0 window manager) with Nvidia driver 96.43.20.
When the emulation window is partly off-screen, it stops being refreshed; the previous image remains static. If you drag another window over the emulation window, parts of the emulation window which are covered then exposed are just black. Once you move the emulation window to be completely on-screen, it is refreshed correctly again.
I tested with several versions of Wine. The bug was present in Wine 1.3.22, 1.3.24 and 1.3.25. With those Wine versions however, if I dragged the emulation window so it was partially off the *left* edge of the screen, the window continued to be refreshed. Dragging the window so its right or bottom parts were off-screen, the window stopped being refreshed.
The bug was not present in Wine 1.3.26. It was present again in 1.3.27. (From then the window stopped being refreshed whichever part is off-screen.)
To reproduce the problem: - Download an example disk image, e.g. http://www.amigaemulator.org/files/rsi1.adf.gz - Download and run InstallWinUAE2330.exe. Check the box to run WinUAE at the end. - Click OK at the dialog box about system ROMs. The WinUAE Properties window opens. - Click Floppy drives, then the ... button at the top right of the window. Choose the rsi1.adf.gz file. - Click Start. After a while the demo will start. - Using the mouse, drag the emulation window so it is partly off-screen, keeping the mouse pointer held down. The window still updates correctly as long as you keep the button pressed. - Release the mouse button. (Lots of fixmes are printed saying "fixme:d3d_surface:wined3d_surface_blt Blit clipping not implemented.") Notice the window is no longer updated. Move the window back on-screen again.
A regression test between 1.3.26 and 1.3.27 gave this result:
e1ab5f6e6bf251566289ccf3177ebaf8102cb72b is the first bad commit commit e1ab5f6e6bf251566289ccf3177ebaf8102cb72b Author: Henri Verbeet hverbeet@codeweavers.com Date: Sun Aug 21 21:34:55 2011 +0200
wined3d: Don't allow blits with an invalid destination rectangle when a clipper is set either.
Clippers don't really work. Previously we mostly didn't run into this because the rectangle was already rejected by ddraw_surface7_Blt(), although ddraw_surface7_BltFast() might have been affected in a couple of cases. We should of course implement clippers, but until that happens, completely rejecting the blit is better than introducing memory corruption.
This fixes a regression introduced by commit 92e616f355ded5f3634625dba245e9b437e3ad6a.
:040000 040000 337be3b566b3d8ecbd08a9f6cd74ce5000a2bed8 d2ac7ed003018b74313198315aa73c0ef7f4d2be M dlls