[Bug 60469] New: BioShock 2 Remastered crashes when starting or loading a game with WineD3D/OpenGL in new WoW64
http://bugs.winehq.org/show_bug.cgi?id=60469 Bug ID: 60469 Summary: BioShock 2 Remastered crashes when starting or loading a game with WineD3D/OpenGL in new WoW64 Product: Wine Version: 11.19 Hardware: x86-64 URL: https://store.steampowered.com/app/409720/BioShock_2_R emastered/ OS: Linux Status: NEW Keywords: wow64 Severity: normal Priority: P2 Component: d3d Assignee: wine-bugs@list.winehq.org Reporter: gyebro69@gmail.com Target Milestone: --- Distribution: --- Created attachment 82300 --> http://bugs.winehq.org/attachment.cgi?id=82300 backtrace BioShock 2 Remastered (32-bit, Direct3D 11, GOG and Steam version) crashes when starting a new game or loading a saved game with Wine's builtin dxgi.dll and d3d11.dll. Reproduced with Nouveau/Mesa 26.2.4 (NVK/Zink) and with NVIDIA driver 615.71.09. Both EGL and GLX backends are affected. Doesn't occur in a legacy shared-WoW. Doesn't occur with DXVK's dxgi.dll and d3d11.dll Steps to reproduce: - Start a new game. The loading screen and first introductory video appear, but skipping the video with Esc causes a crash. - Alternatively, load a saved game. The game crashes at the end of loading. Workarounds: Either of the following prevents the loading crash: - Setting `HavokNumThreads=1` instead of the default value of 2. This game option can be found in the Bioshock2SP.ini configuration file in ../drive_c/users/<username>/AppData/Roaming/BioshockHD/. This workaround works only with NVIDIA proprietary driver. - Applying `keep-vulkan-mapping.patch` from bug #60354 (attachment #82142), which retains the underlying Vulkan buffer mapping across GL map/unmap calls. This also works with `HavokNumThreads=2`. Changing `UseMultithreadedRendering` to True/1 does not help. For this "new-game/save-loading" issue, setting HavokNumThreads=1 does not prevent the crash with nouveau/Mesa configuration, although it does with the proprietary NVIDIA driver. The keep-vulkan-mapping.patch prevents the loading crash with both driver stacks. This further supports investigating the underlying buffer-mapping lifetime, while showing that reducing HavokNumThreads is not a reliable workaround across configurations. wine-11.19-151-g20315474eb2 -- 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.
http://bugs.winehq.org/show_bug.cgi?id=60469 --- Comment #1 from Béla Gyebrószki <gyebro69@gmail.com> --- Created attachment 82301 --> http://bugs.winehq.org/attachment.cgi?id=82301 Logs and diagnostic patches to investigate the crash in Bioshock 2 Remastered The attached diagnostic log (Bioshock2HD-lifetime-normal.log) was captured with Wine commit 20315474eb2 in new WoW64 mode, with bioshock2-map-probe.patch, and bioshock2-map-lifetime-probe.patch applied, BIOSHOCK2_KEEP_GL_MAPS=0, and without keep-vulkan-mapping.patch. The probes add warn+bioshock logging for D3D11 Map/Unmap calls and returned pointers, WineD3D buffer/chunk mapping lifetimes and reference counts, and the underlying WoW64 Vulkan map/unmap operations; the optional GL-mapping-retention experiment was disabled for this run. The log shows a successful D3D11 Map returning 3E980000, followed by removal of the underlying Vulkan mapping and a worker-thread write access violation at exactly that address, supporting a suspected mapped-pointer lifetime race. Retaining the underlying Vulkan mapping with keep-vulkan-mapping.patch prevents the loading crash with both the proprietary NVIDIA driver and Mesa Zink/NVK, although this may mask an application-side lifetime assumption rather than demonstrate an incorrect Wine Unmap implementation. -- 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.
participants (1)
-
WineHQ Bugzilla