-
Notifications
You must be signed in to change notification settings - Fork 769
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
System compiled dxvk causes stack smashing with wine when playing yakuza-0/kiwami. #3981
Comments
Post a full Wine log if you can. Maybe ran with |
Without a log, best guess would be that you probably mixed up system32 and syswow64 when installing
Also you should probably know that Yakuza 0 needs esync to reliably save: ValveSoftware/Proton#492 (comment) |
If there's no log despite setting |
In order to setup dxvk in my wineprefix, which I created a brand new one just for yakuza-0 I did the following:
Then I just replaced the setup line with wine <game_dir>/<yakuza.exe> I will try enabling wine debugging hopefully that will help. |
I just tried WINEDEBUG=+all and WINEDEBUG=+loaddll and I am getting no extra output other than what I said. |
That's impossible, there can't just be that one line with +all |
Maybe its due to the strip useflag in gentoo I will remove it and see if it provides a log. The thing is with +all I ran it without dxvk and was getting a lot more lines of output than I usually get so I thought it was working. |
I don't think it should be related to the wine build config, i don't think it's possible to disable the logging completely at build time, and it seems like it works without DXVK? But I also don't see how there could possibly be only that one line in the log and nothing else with +loaddll and DXVK loaded, it should at least print a line for loading the dlls, if nothing else. |
I still couldn't figure out why the debug wasn't showing anything extra. However, I think I have solved part of the issue already. It seems that when I used setup_dxvk.sh (which is shipped with gentoo repos dxvk) the symlinked dxvk dlls were not working as it should. So after I did setup_dxvk.sh install --symlink and then replaced the symlinks with the dlls that you have on github it seems that dxvk is running finally (although the framerate is less than when I used to play with my amd rx 6800 could be just nvidia drivers or something) but its a lot more than stock wine. I am confused on this as some games i.e fallout 4 is able to use the symlinked dlls however games like yakuza 0 and fallout new vegas can't. What could be the issue? I am not using crossdev-mingw useflag so its using dev-util/mingw64-toolchain rather than crossdev. |
I was trying this again today and it seems like I was able to obtain a wine log with +loaddll. Thanks for the wait. |
looks like when using system compiled dxvk on gentoo and running yakuza creates some sort of stack smashing. |
have you tried using our release binaries instead? I'm seeing exactly zero dxvk messages in that log though so it seems to just fail horribly before reaching any of our code for some reason. |
Yes I meant I used your release binaries and it was working. However, the ones that my system compiled for some reason in these games it wasn't working which is very weird. So the release binaries on github for this version of dxvk worked for yakuza 0 etc however when I try compiling these versions of dxvk on my system and used setup_dxvk.sh it doesn't work and provides that wine.log that I have posted. |
For comparison this is the wine.log when I use the dxvk binaries provided on github. If you compare lines 217 onwards for both logs you can see that this is where it differs. |
Gentoo here, while we do default to Does indicate there may be something wrong with either dxvk or mingw64-runtime, but to have a shot at reproducing would need to build both with it (haven't tried, Edit: and I assume the binaries here do not already). If really needed, Gentoo could work around this by forcing explicit |
As ionenwks stated its because mingw64-toolchain was compiled with -fstack-protector-strong. However, while this does indicate that something is "wrong" disabling this and recompiling dxvk does make it work. |
Not sure how to provide any help here, things like asan unfortunately don't work with mingw and we obviously can't use native builds with Windows games. FWIW, building dxvk itself with |
Yeah that gave me no issues either, I needed to build mingw's runtime itself with it then build dxvk against these to start having issues. fwiw doing that doesn't seem to break wine itself built using the same mingw. Unfortunate but if debugging is going to be hard, guess passing -fno-stack-protector is still what we can go with downstream anyhow. |
Actually, I just remembered that support for this is kind of new in mingw64 11 (it used to be straight up broken with <=10). This gives decent chances of the issue being in mingw itself rather than dxvk. Think it can be considered experimental and skipping using it seems fair in that context. |
Tried playing yakuza-0 / yakuza-kiwami. Both work with wine on its own; its just when I install dxvk they don't even start and show an error message.
distribution: Gentoo Linux
gpu: RTX 4080 SUPER
gpu driver: proprietary nvidia drivers version 550.78
wine version: wine-vanilla-9.7
dxvk version: 2.3.1-r1
vulkan-loader version: 1.3.280.0
I have tried enabling the environment variables below but they didn't give me anything for some reason.
The text was updated successfully, but these errors were encountered: