[Bug 47419] Regression in 4.11, Dune 2000 crashes on mission start

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Jun 26 17:03:27 CDT 2019


https://bugs.winehq.org/show_bug.cgi?id=47419

Olivier F. R. Dierick <o.dierick at piezo-forte.be> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|INVALID                     |---
             Status|RESOLVED                    |REOPENED

--- Comment #3 from Olivier F. R. Dierick <o.dierick at piezo-forte.be> ---
(In reply to Henri Verbeet from comment #2)
> (In reply to Olivier F. R. Dierick from comment #1)
> > Resolving INVALID.
> > 
> Probably, but if you're up for it, it may still be interesting to figure out
> what the issue with the gdi/no3d renderer is. In particular, I guess the
> application doesn't like one of the caps set in "caps.ddsOldCaps.dwCaps". If
> you can figure out which one(s), perhaps we can just make sure they aren't
> set with the gdi/no3d renderer.

Hello,

With a debugging FIXME and filtering the caps one by one the dwCaps that causes
trouble to the gdi/no3d renderer is identified as DDCAPS_ALIGNSIZESRC.

With this debugging patch the application fails:

--- diff ---
+    FIXME("caps.ddsOldCaps.dwCaps was %#x.\n", caps.ddsOldCaps.dwCaps);
     caps.ddsOldCaps.dwCaps = caps.ddsCaps.dwCaps;
+    FIXME("caps.ddsOldCaps.dwCaps wants %#x.\n", caps.ddsOldCaps.dwCaps);
+    caps.ddsOldCaps.dwCaps &= ~DDCAPS_PALETTE;
+    caps.ddsOldCaps.dwCaps &= ~DDCAPS_OVERLAY;
+    caps.ddsOldCaps.dwCaps &= ~DDCAPS_BLTSTRETCH;
+    caps.ddsOldCaps.dwCaps &= ~DDCAPS_BLTFOURCC;
+    caps.ddsOldCaps.dwCaps &= ~DDCAPS_BLT;
+    caps.ddsOldCaps.dwCaps &= ~DDCAPS_ALIGNSTRIDE;
+    caps.ddsOldCaps.dwCaps &= ~DDCAPS_ALIGNSIZEDEST;
+    caps.ddsOldCaps.dwCaps &= ~DDCAPS_ALIGNBOUNDARYDEST;
+    FIXME("caps.ddsOldCaps.dwCaps got %#x.\n", caps.ddsOldCaps.dwCaps);
--- end of diff ---

--- output ---
(...)
002d:fixme:ddraw:ddraw7_GetCaps caps.ddsOldCaps.dwCaps was 0.
002d:fixme:ddraw:ddraw7_GetCaps caps.ddsOldCaps.dwCaps wants 0x8b76.
002d:fixme:ddraw:ddraw7_GetCaps caps.ddsOldCaps.dwCaps got 0x10.
(...)
002d:trace:ddraw:ddraw_surface1_Blt iface 0x15a760, dst_rect (0,0)-(640,400),
src_surface (nil), src_rect (null), flags 0x1000400, fx 0xacfb00.
002d:trace:ddraw:ddraw_surface7_Blt iface 0x15a750, dst_rect (0,0)-(640,400),
src_surface (nil), src_rect (null), flags 0x1000400, fx 0xacfb00.
wine: Unhandled page fault on read access to 0x00000014 at address 0x44c5cc
(thread 002d), starting debugger...
Unhandled exception: page fault on read access to 0x00000014 in 32-bit code
(0x0044c5cc).
(...)
--- end of output ---

With this debugging patch the application works:

--- diff ---
+    FIXME("caps.ddsOldCaps.dwCaps was %#x.\n", caps.ddsOldCaps.dwCaps);
     caps.ddsOldCaps.dwCaps = caps.ddsCaps.dwCaps;
+    FIXME("caps.ddsOldCaps.dwCaps wants %#x.\n", caps.ddsOldCaps.dwCaps);
+    caps.ddsOldCaps.dwCaps &= ~DDCAPS_ALIGNSIZESRC;
+    FIXME("caps.ddsOldCaps.dwCaps got %#x.\n", caps.ddsOldCaps.dwCaps);
--- end of diff ---

--- output ---
(...)
002d:fixme:ddraw:ddraw7_GetCaps caps.ddsOldCaps.dwCaps was 0.
002d:fixme:ddraw:ddraw7_GetCaps caps.ddsOldCaps.dwCaps wants 0x8b76.
002d:fixme:ddraw:ddraw7_GetCaps caps.ddsOldCaps.dwCaps got 0x8b66.
(...)
002d:trace:ddraw:ddraw_surface1_Blt iface 0x2d8a890, dst_rect (0,0)-(640,400),
src_surface (nil), src_rect (null), flags 0x1000400, fx 0xacfb00.
002d:trace:ddraw:ddraw_surface7_Blt iface 0x2d8a880, dst_rect (0,0)-(640,400),
src_surface (nil), src_rect (null), flags 0x1000400, fx 0xacfb00.
002d:trace:ddraw:ddraw_surface1_Restore iface 0x2d8a890.
002d:trace:ddraw:ddraw_surface7_Restore iface 0x2d8a880.
(...)
--- end of output ---

Regards.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list