https://bugs.winehq.org/show_bug.cgi?id=56113
Bug ID: 56113 Summary: Unfortunate Spacemen crashes on start Product: Wine Version: 9.0-rc1 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: alexhenrie24@gmail.com Distribution: ---
This is a regression that happened between Wine 8.21 and Wine 9.0-rc1. I have not been able to pin down the exact commit that caused it.
https://bugs.winehq.org/show_bug.cgi?id=56113
Alex Henrie alexhenrie24@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |https://store.steampowered. | |com/app/408900/Unfortunate_ | |Spacemen/ Keywords| |download, regression
https://bugs.winehq.org/show_bug.cgi?id=56113
Alex Henrie alexhenrie24@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com Regression SHA1| |5b60f4649b15efb9ef10b63da3e | |f2c42f8665078 Component|-unknown |d3d
--- Comment #1 from Alex Henrie alexhenrie24@gmail.com --- Bisecting was tricky because the crash happens intermittently, so I had to test several times on each revision to be sure that the game wasn't going to crash. In the end `git bisect` said:
5b60f4649b15efb9ef10b63da3ef2c42f8665078 is the first bad commit commit 5b60f4649b15efb9ef10b63da3ef2c42f8665078 Author: Zebediah Figura zfigura@codeweavers.com Date: Fri Jul 14 17:44:02 2023 -0500
wined3d: Set d3d 1-9 textures in the state as SRVs.
The idea is to reuse the existing code to handle SRVs, which simplifies the GL code and essentially allows the Vulkan code to work "for free" (which is to say, by writing this patch, rather than by adding support for flat textures to the Vulkan renderer.)
This is a large patch; it consists the following parts:
* Create identity SRVs for d3d 1-9 textures. Store those in state->shader_resource_view instead of in state->texture.
* (Re)use wined3d_context_gl_bind_shader_resources() instead of state_sampler() to bind them.
- Introduce code to that function to handle FFP textures.
- Bind the sRGB texture if necessary in wined3d_shader_resource_view_gl_bind.
* (Re)use context_gl_load_shader_resources() instead of context_preload_textures() to load them.
- Introduce code to that function to handle FFP textures.
- Load the sRGB texture if necessary.
- Port the SRV/RTV feedback loop check from context_preload_textures().
* Invalidate STATE_GRAPHICS_SHADER_RESOURCE_BINDING in places that now need to account for texture binding being guarded by that state instead of STATE_SAMPLER.
Transitioning the remaining users of STATE_SAMPLER to STATE_GRAPHICS_SHADER_RESOURCE_BINDING, and removing STATE_SAMPLER, is left for future patches.
dlls/wined3d/arb_program_shader.c | 6 +-- dlls/wined3d/context.c | 71 ---------------------------- dlls/wined3d/context_gl.c | 85 ++++++++++++++++++++++++++++++++- dlls/wined3d/cs.c | 99 ++++++++++++++++++++++----------------- dlls/wined3d/device.c | 13 ----- dlls/wined3d/glsl_shader.c | 9 +--- dlls/wined3d/shader.c | 11 +++-- dlls/wined3d/state.c | 57 +--------------------- dlls/wined3d/stateblock.c | 37 +++++++-------- dlls/wined3d/texture.c | 8 +--- dlls/wined3d/view.c | 2 +- dlls/wined3d/wined3d_private.h | 11 +++-- 12 files changed, 177 insertions(+), 232 deletions(-)
https://bugs.winehq.org/show_bug.cgi?id=56113
--- Comment #2 from Alex Henrie alexhenrie24@gmail.com --- https://gitlab.winehq.org/wine/wine/-/merge_requests/4756 does not fix the crash.
https://bugs.winehq.org/show_bug.cgi?id=56113
--- Comment #3 from Zeb Figura z.figura12@gmail.com --- I can't seem to reproduce this after like 8 tries. I assume by "on start" you mean I don't have to get any further than the menu, right?
I do have merge requests 4756 and 4757 applied.
On the assumption I can't reproduce this, can you get a backtrace? Or at least determine the faulting address and line number?
https://bugs.winehq.org/show_bug.cgi?id=56113
--- Comment #4 from Alex Henrie alexhenrie24@gmail.com --- Created attachment 75787 --> https://bugs.winehq.org/attachment.cgi?id=75787 Backtrace
Here's the backtrace from the crash dialog.
Combining merge requests 4756 and 4757 doesn't fix the crash either.
https://bugs.winehq.org/show_bug.cgi?id=56113
--- Comment #5 from Alex Henrie alexhenrie24@gmail.com --- The crash happens on the screen that says "RETRIEVING DATA FROM STEAM".
https://bugs.winehq.org/show_bug.cgi?id=56113
--- Comment #6 from Zeb Figura z.figura12@gmail.com --- Is this reproducible with WINEDEBUG=csmt=0?
I guess probably not, but is this reproducible with +d3d, or warn+heap, or both?
https://bugs.winehq.org/show_bug.cgi?id=56113
--- Comment #7 from Alex Henrie alexhenrie24@gmail.com --- Created attachment 75788 --> https://bugs.winehq.org/attachment.cgi?id=75788 WINEDEBUG=csmt=0,+d3d,warn+heap
It still crashes with WINEDEBUG=csmt=0, WINEDEBUG=+d3d, or WINEDEBUG=warn+heap. Here's the terminal output when running with all three.
https://bugs.winehq.org/show_bug.cgi?id=56113
--- Comment #8 from Zeb Figura z.figura12@gmail.com --- Created attachment 75797 --> https://bugs.winehq.org/attachment.cgi?id=75797 patch
Thanks. I have no idea why you can reproduce it consistently and I can't, but this should hopefully fix it?
https://bugs.winehq.org/show_bug.cgi?id=56113
--- Comment #9 from Alex Henrie alexhenrie24@gmail.com --- (In reply to Zeb Figura from comment #8)
Created attachment 75797 [details] patch
Thanks. I have no idea why you can reproduce it consistently and I can't, but this should hopefully fix it?
You are a wizard! After applying that patch, I can no longer reproduce the crash. However, I get a compiler warning: What should i be set to if use_ffp_ps returns false?
https://bugs.winehq.org/show_bug.cgi?id=56113
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED Fixed by SHA1| |a79db19fdc20afc9820a9311c76 | |e55d7a4e73b77
--- Comment #10 from Zeb Figura z.figura12@gmail.com --- Fixed upstream by https://source.winehq.org/git/wine.git/commitdiff/a79db19fdc20afc9820a9311c76e55d7a4e73b77.
https://bugs.winehq.org/show_bug.cgi?id=56113
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #11 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 9.0-rc5.