Frogging-Family / wine-tkg-git

The wine-tkg build systems, to create custom Wine and Proton builds
851 stars 153 forks source link

Street Fighter 6 crashes shortly after startup #1116

Open gardotd426 opened 7 months ago

gardotd426 commented 7 months ago

This only happens on Proton-TKG, I've tried 3 builds, 1 from November, one from December, and one from yesterday.

This is what I get:

(wine:165304): GStreamer-WARNING **: 03:25:51.428: Failed to load plugin '/home/matt/.local/share/Steam/compatibilitytools.d/proton_tkg_experimental.bleeding.edge.8.0.74664.20240120/files/lib64/gstreamer-1.0/libgstcurl.so': /home/matt/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_64/libcurl.so.4: version `CURL_OPENSSL_4' not found (required by /home/matt/.local/share/Steam/compatibilitytools.d/proton_tkg_experimental.bleeding.edge.8.0.74664.20240120/files/lib64/gstreamer-1.0/libgstcurl.so)

(wine:165304): GStreamer-WARNING **: 03:25:51.430: Failed to load plugin '/home/matt/.local/share/Steam/compatibilitytools.d/proton_tkg_experimental.bleeding.edge.8.0.74664.20240120/files/lib64/gstreamer-1.0/libgstladspa.so': /home/matt/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_64/libcurl.so.4: version `CURL_OPENSSL_4' not found (required by /usr/lib/libraptor2.so.0)
GameOverlay: started '/home/matt/.local/share/Steam/ubuntu12_32/gameoverlayui' (pid 165531) for game process 165304
tid(165531) burning pthread_key_t == 0 so we never use it
01/24 03:25:51 Init: Installing breakpad exception handler for appid(gameoverlayui)/version(20240120025900)/tid(165531)
01/24 03:25:51 Init: Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)/tid(165531)
Fossilize WARN: Pipeline library handle 0x00007f62ab0e18b0 is not registered.
It has either not been recorded, or it failed to be recorded earlier (which is expected if application uses an extension that is not recognized by Fossilize).
Fossilize WARN: Pipeline library handle 0x00007f62ab618fe0 is not registered.
It has either not been recorded, or it failed to be recorded earlier (which is expected if application uses an extension that is not recognized by Fossilize).
ERROR: ld.so: object '/home/matt/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/matt/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/matt/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
src/steamnetworkingsockets/clientlib/steamnetworkingsockets_lowlevel.cpp (3789) : Trying to close low level socket support, but we still have sockets open!
src/steamnetworkingsockets/clientlib/steamnetworkingsockets_lowlevel.cpp (3789) : Trying to close low level socket support, but we still have sockets open!
01/24 03:25:59 Failed writing minidump, nothing to upload.
gamemodeauto:
pid 164957 != 164956, skipping destruction (fork without exec?)

Proton Experimental, GE-Proton8-25, and 8.0 work fine.

Tk-Glitch commented 7 months ago

I didn't test with current but since we had a gstreamer issue (fixed with https://github.com/Frogging-Family/wine-tkg-git/commit/62ef06b03210017ae6e84e09b00171f2716a621e), I tested against that and game works on my end.

That's, of course, with a valve bleeding-edge based build.

Tk-Glitch commented 6 months ago

Doesn't work on mainline due to video decoding, which is upstream.

Arastais commented 5 months ago

Can also confirm this exact issue occurs with mainline (against wine-staging 9.3.r16.gec3dd19d), but not with valve-based builds. Is there an Issue or PR about this on the upstream WineHQ repo?

Tk-Glitch commented 5 months ago

The issue is tracked internally (CW-Bug-Id: #22045) and there is a hack in Proton to workaround it for the time being (https://github.com/ValveSoftware/wine/commit/68e03e86e112c1d76b0c9704a254f82939f25090). It might apply to upstream trees as userpatch, possibly.

Edit: Also, this: https://github.com/ValveSoftware/wine/commit/e0981e129041084d1727b73a2757044f0c17bcc1

Arastais commented 5 months ago

It might apply to upstream trees as userpatch, possibly.

Anyway I can add this as a userpatch to proton-tkg (built against mainline wine) myself in the meantime?

Tk-Glitch commented 5 months ago

It might apply to upstream trees as userpatch, possibly.

Anyway I can add this as a userpatch to proton-tkg (built against mainline wine) myself in the meantime?

Absolutely. You can grab both patches: https://github.com/ValveSoftware/wine/commit/68e03e86e112c1d76b0c9704a254f82939f25090.patch https://github.com/ValveSoftware/wine/commit/e0981e129041084d1727b73a2757044f0c17bcc1.patch

Then drop them in your wine-tkg-git/wine-tkg-git/wine-tkg-userpatches dir (with a .mypatch extension). See https://github.com/Frogging-Family/wine-tkg-git/blob/master/wine-tkg-git/wine-tkg-userpatches/README.md They may not apply against current upstream trees, but worth a try nonetheless.

Arastais commented 4 months ago

Just tried proton-tkg against wine-staging 9.6.r0.g506d9500, both with and without the patch on the wayland driver, and now the game just opens to an infinite black screen, doesn't even get to the part where it crashes. Sometimes the game even crashes my entire GNOME session when I close it.

proton debug log: sf6.log stdout and stderr don't output anything useful.

This part of the log:

0170:err:sync:RtlpWaitForCriticalSection section 000002000440C848 "?" wait timed out in thread 0170, blocked by 0224, retrying (60 sec)
0228:err:sync:RtlpWaitForCriticalSection section 000002000440C848 "?" wait timed out in thread 0228, blocked by 0224, retrying (60 sec)

loops infinitely once the game is open and while it's at the black screen.

This may be a regression, because IIRC the wayland driver on older versions of proton-tkg would reach the same place as the x11 driver and crash from video decoding.


On X11 either with or without the patch, just crashes exactly the same as before. In other words, the patch doesn't seem to work.

Arastais commented 3 months ago

Retried against 9.7.r16.g0f06925b.

The patches successfully apply, but wine itself fails to build with them applied due to this error:

../wine-git/dlls/ntdll/unix/loader.c: In function ‘check_vmsplit’:
../wine-git/dlls/ntdll/unix/loader.c:2251:9: error: ‘sgi’ undeclared (first use in this function)
 2251 |     if (sgi && (0
      |         ^~~
../wine-git/dlls/ntdll/unix/loader.c:2251:9: note: each undeclared identifier is reported only once for each function it appears in

It looks like upstream wine doesn't even have a way to check for steam game IDs, and there's no hacks_init function either. There probably needs to be more patches added to wine-tkg, or have WINE_ENABLE_GST_LIVE_LATENCY be set from a corresponding environment variable.

Here is the full wine build log