https://bugs.winehq.org/show_bug.cgi?id=45289
Bug ID: 45289 Summary: Wine Crashes Some Programs If Compiled with AVX Support Product: Wine Version: 3.9 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: ben@xnode.org Distribution: ---
This is a really specific bug and I'm not sure what other programs/games it affects. I assume there are more, but this is the only example that I've reliably run into at the moment:
== To Recreate Run Cemu under a 64bit Prefix. Start Mario Kart 8. After Mario announces the game, it will crash.
== Workaround Compiling Wine without AVX support (i.e. adding the -mno-avx C/XXFLAG) negates the issue.
People won't see this when using distro packages because they'll be compiled using something like -march=x86-64 which doesn't enable any of the AVX options (as they aren't available in all processors). If you compile it yourself using something like -march=native then GCC will enable the AVX functions which in turn triggers this issue.
I saw this behaviour on both my old i7-5775C and the i7-8700K which has since replaced it.
In case it's relevant, it looks like this problem may have not existed before Wine 3.0 because I've tracked down an old post of my own wherein I stated (regarding the Mario Kart 8 crash on Cemu):
======================= Tried on a brand new Wine 3.2 prefix, same issue (Segmentation fault after the splash screen). Works fine with Staging 2.21.
More specifically: 002c:fixme:seh:RtlCaptureStackBackTrace (0, 40, 0x25152ba0, (nil)) stub! 002c:err:seh:call_stack_handlers invalid frame 25153728 (0x116a0000-0x117a0000) 002c:err:seh:NtRaiseException Exception frame is not in stack limits => unable to dispatch exception
EDIT: The issue was vcrun2015. Wine-staging didn't need it. Standard wine does, for some reason. =======================
Not sure if the vcrun2015 issue was a red-herring as that's installed now but no-longer fixes the issue.