[Bug 60313] New: Culpa Innata: savegame preview captures the menu instead of the game scene with EGL
http://bugs.winehq.org/show_bug.cgi?id=60313 Bug ID: 60313 Summary: Culpa Innata: savegame preview captures the menu instead of the game scene with EGL Product: Wine Version: 10.18 Hardware: x86-64 URL: https://store.steampowered.com/app/12310/Culpa_Innata/ OS: Linux Status: NEW Keywords: regression Severity: normal Priority: P2 Component: opengl Assignee: wine-bugs@list.winehq.org Reporter: gyebro69@gmail.com CC: rbernon@codeweavers.com Target Milestone: --- Regression SHA1: 63e6cfa106a0b12351e8d01eb5bfefd925c3a74e Distribution: --- Created attachment 82068 --> http://bugs.winehq.org/attachment.cgi?id=82068 screenshot Culpa Innata (2007, Direct3D 8) has a regression introduced between Wine 10.17 and Wine 10.18. The game creates a small preview image for every savegame. Normally this preview contains the current in-game scene at the moment the game is saved. Since the regression the generated preview instead contains an image of the Save Game menu itself. This makes the preview practically useless for identifying where in the game a particular save was created. I bisected this regression to commit 63e6cfa106a0b12351e8d01eb5bfefd925c3a74e opengl32: Implement front buffer rendering emulation The parent of this commit works correctly. The regression appears to be specific to the EGL OpenGL backend: forcing the legacy GLX backend restores the correct savegame preview. Steps to reproduce: 1. Start Culpa Innata 2. Start a new game or load a saved game. You can use the right mouse button to skip cinematics. 3. Right-click to open the game menu then open the Save Game screen 4. Save the game in an empty save slot. 5. Check the preview image generated for the new savegame...The preview shows the Save Game menu itself instead of the in-game scene. I also tested the current Wine version with both the proprietary NVIDIA driver (615.71.09) and nouveau, using X11, XWayland and the native Wayland driver. With nouveau the problem occurs in both fullscreen and Wine virtual desktop mode under X11, XWayland and native Wayland. With NVIDIA 615.71.09 the problem occurs with: -X11 fullscreen -XWayland fullscreen and virtual desktop mode -native Wayland Interestingly, NVIDIA + X11 + Wine virtual desktop works correctly and produces the expected in-game save preview. The attached screenshot shows both behaviours at the same time. The left save slot (GAME 1) shows the regression: its preview contains the Save Game menu. The slot immediately to its right (GAME 2) shows the correct behaviour: its preview contains the actual in-game location where the save was created. Still present in wine-11.17-136-g913e31f201d -- 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=60313 --- Comment #1 from Rémi Bernon <rbernon@codeweavers.com> --- Yeah EGL doesn't let us render to the front buffer. This commit introduced a tentative emulation for that but it's still broken if the game is doing funny things like switching read/draw back and forth the front buffer, it's probably what is happening here. Ultimately the display mode emulation and the framebuffer surface should allow us to implement this properly. Using EmulateModeset = Y may help in this case. -- 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=60313 --- Comment #2 from Béla Gyebrószki <gyebro69@gmail.com> --- Created attachment 82083 --> http://bugs.winehq.org/attachment.cgi?id=82083 crash log with 'EmulateModeset = Y' (In reply to Rémi Bernon from comment #1)
Yeah EGL doesn't let us render to the front buffer. This commit introduced a tentative emulation for that but it's still broken if the game is doing funny things like switching read/draw back and forth the front buffer, it's probably what is happening here.
Ultimately the display mode emulation and the framebuffer surface should allow us to implement this properly. Using EmulateModeset = Y may help in this case. I tested EmulateModeset = Y with both NVIDIA and nouveau, under both X11 and Wayland. Unfortunately it does not help with this game.
In Wine virtual desktop mode the game exits immediately on startup with: "Fatal Error! ChangeResolution Error!" In fullscreen mode, Wine crashes instead. The crash is reproducible with both NVIDIA and nouveau and under both X11 and Wayland. The relevant part of the backtrace is: Unhandled exception: page fault on read access to 0x0000003c in wow64 32-bit code. =>0 context_release+0x9(context=00000000) in wined3d 1 texture_resource_unload() in wined3d 2 wined3d_texture_destroy_object() in wined3d 3 wined3d_cs_exec_callback() in wined3d -- 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=60313 --- Comment #3 from Rémi Bernon <rbernon@codeweavers.com> --- Created attachment 82099 --> http://bugs.winehq.org/attachment.cgi?id=82099 Fix for the emulate modeset mode Hmm, right well this is a genuine bug which the attached patches should fix. -- 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=60313 --- Comment #4 from Béla Gyebrószki <gyebro69@gmail.com> --- (In reply to Rémi Bernon from comment #3)
Created attachment 82099 [details] Fix for the emulate modeset mode
Hmm, right well this is a genuine bug which the attached patches should fix. I tested the patch on X11 with the proprietary NVIDIA driver. With EmulateModeset=Y the patch fixes the crash in Wine fullscreen mode. The game now starts and runs correctly in fullscreen. The original savegame preview issue is also fixed with EmulateModeset=Y: the preview contains the actual game scene instead of the Save Game menu.
Wine virtual desktop mode still does not work with the patch. The game exits during startup with: Fatal Error! ChangeResolution Error! I have only tested X11 + NVIDIA so far. -- 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=60313 --- Comment #5 from Béla Gyebrószki <gyebro69@gmail.com> --- I tested again the game after today's commit round which includes commit 7468d80c. With EmulateModeset=Y and Wine fullscreen mode, the game works as expected: the crash is fixed, and the savegame preview now correctly contains the in-game scene. However, with the current default EmulateModeset=N, the original bug is unchanged: the savegame preview still captures the Save Game menu instead of the in-game scene. So commit 7468d80c fixed the separate crash in the FBO surface / EmulateModeset=Y path, but it doesn't fix the original preview regression with the default configuration. wine-11.17-288-gafccd681beb -- 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