Closed ell1e closed 6 months ago
Hello @ell1e, please see the discussion on #5927. You can use the WINE_CPU_TOPOLOGY
environment variable to limit the CPU cores available to games.
Thanks so much for responding! Does that mean WINE_CPU_TOPOLOGY=0 %command%
should work? Sadly it also doesn't seem to, inside Steam this still crashes. Since taskset -c 0 wine ...
outside of Steam works, is it possible that something with e.g. pressure vessel is conflicting with this?
Total core count should start with 1, not index 0. Blind guess that you're seeing a regression or other issue that's unrelated to CPU core count.
You're right, I just retried outside of Steam and it's also crashing no matter if taskset
is used or not. The one time it didn't was probably just random.
For what it's worth, it still looks like an obvious way to launch a different .exe in proton is missing. This can be required e.g. to skip launchers.
Also, it would be nice if https://help.steampowered.com/en/faqs/view/7D01-D2DD-D75E-2955 listed common workaround options like WINE_CPU_TOPOLOGY
(while it didn't end up helping me, it seems to be a common workaround).
Feature Request
I confirm:
Description
Divinity Original Sin 2 is completely broken on some setups with Proton, unless limited to one CPU. It is basically impossible for even an advanced user to figure out how to do this via the "Launch Options":
taskset -c 0 %command%
doesn't seem to apply and the game crashes anyway, I assume since it probably only applies to the launcher and not the game started from within the launcher.taskset -c 0 "Z:/path/to/game/bin/EoCApp.exe"
doesn't work because proton doesn't seem to understand what to do with thatThere seem to be multiple big annoyances that ultimately make this near impossible to figure out:
There is no info available in the "Launch Options" dialog what I need to enter into "Launch Options" to launch a different exe with proton but to still prefix it with something else that is a linux-native command.
There is no info available in the "Launch Options" dialog on how to specify a command relative to the app's install dir, like via something like
%installdir%
(made-up suggestion, i don't think it exists or works that way but it would make specifying the .exe path less of a nuisance to figure out).There is no toggle of any kind for limiting a game to one CPU core without such manual launch command changes, which seems to be a commonly required workaround.
The page on the "Launch Options" generally seems pretty useless and doesn't even explain
%command%
let alone anything proton related: https://help.steampowered.com/en/faqs/view/7D01-D2DD-D75E-2955Justification [optional]
Would make games playable if any way to make this work actually worked out. Like Divinity Original Sin 2 where it doesn't seem like Proton devs can reliably figure out how to not make it crash if running multithreaded.
Risks [optional]
There could probably be many confusing ways to implement this that would confuse users. Easiest for the user would probably be a simple toggle in the compatibility options tab that applies a one core limit to the launched process and all subprocesses in the whole pressure vessel sandbox, which I heard you're supposedly using on Linux. Second best would be to somehow recognize
taskset -c 0 "Z:/.../some/path/to/windowsprogram.exe"
and run that via proton rather than directly, but maybe that's too specific and weird to implement. Third best to provide any sort of tooltip or info inside the "Launch Options" dialog on how to write such a command manually.References [optional]