Commit Graph

97 Commits

Author SHA1 Message Date
Dāvis Mosāns
817828ec72 proton: When copying ignore EPERM error 2019-02-14 08:32:39 -06:00
Andrew Eikum
cd12d2a634 proton: Check more environment variables for non-zero 2019-02-13 10:16:38 -06:00
Andrew Eikum
2ae0d898eb proton: Set LC_ALL to the host value if available 2019-02-13 10:16:38 -06:00
Andrew Eikum
ad35af81e9 proton: Add runtime variable to limit GL extension string length 2019-02-13 10:16:38 -06:00
Ethan Lee
3eb29f419e proton: Add PROTON_NO_D3D10 2019-01-16 08:30:35 -06:00
Andrew Eikum
1b0173de22 proton: Dump header with proton version info in logs 2019-01-15 09:07:19 -06:00
Andrew Eikum
1fb4db2331 proton: Add force large address aware runtime setting 2018-12-20 10:56:47 -06:00
Andrew Eikum
0e15c0048f proton: Don't crash on invalid VR config file 2018-12-12 09:59:37 -06:00
Andrew Eikum
414cffdfaf proton: Handle corrupted prefixes a little better 2018-11-30 09:25:32 -06:00
Andrew Eikum
ad90a3686e proton: Recreate Fonts directory if it somehow goes missing 2018-11-30 08:55:08 -06:00
Andrew Eikum
ab57ead966 proton: pylint cleanups 2018-10-31 07:48:33 -05:00
Nikolay Sivov
17e50d67ab Build replacement fonts 2018-10-31 07:48:33 -05:00
NoXPhasma
cac3a518bd Allow override of dlls with WINEDLLOVERRIDES environment variable
Proton overrides the environment variable WINEDLLOVERRIDES entirely,
this change allows to add own dll overrides.
2018-10-16 09:44:32 -05:00
Seppo Yli-Olli
aaaef10ccb Simplify XDG_CONFIG_HOME handling 2018-10-16 09:44:32 -05:00
Andrew Eikum
e5f38f9f4c proton: Use DXVK for d3d10 as well. 2018-10-16 09:44:32 -05:00
Kai Krakow
f7ea4cb866 proton: Correct wined3d symlinks 2018-10-16 07:50:33 -05:00
Andrew Eikum
cc3e4210cd Revert "build dxvk as native .so"
This reverts commits aef98f1e7d and f85b734f66.

The Steam Runtime is too old to build DXVK, so we have to continue
building it as a Windows DLL.
2018-10-16 07:50:33 -05:00
Andrew Eikum
31706aef86 proton: Python cleanup 2018-10-12 08:30:19 -05:00
Andrew Eikum
64f4d42c77 proton: Track prefix files and remove them on a major proton version change
This is to allow downgrading prefixes, for example if a user switches
from 3.16 to 3.7.
2018-10-12 08:30:19 -05:00
Andrew Eikum
a84120449d Remove macOS support 2018-10-11 08:32:16 -05:00
Andrew Eikum
5286f43fda proton: Call python3 explicitly on Linux
Frustratingly, Ubuntu ships no python binary by default, only python3,
so we can't just call python and expect it to work. This will fail on
distros that don't ship python3, but them's the breaks.
2018-08-29 09:24:41 -05:00
AsciiWolf
7081022403 proton: Fix typo 2018-08-27 08:57:09 -05:00
Adrian Torres
f9b5a08495 Make debug scripts dump dir configurable
If PROTON_DUMP_DEBUG_COMMANDS is set, the directory where
the debug scripts will be dumped to can be defined with
the env variable / setting PROTON_DEBUG_DIR.

This commit also lets users set PROTON_DUMP_DEBUG_COMMANDS
in user_settings.py, which didn't work previously because
the variable was being fetched from os.environ instead of env.

Closes #511
2018-08-27 08:56:06 -05:00
Andrew Eikum
e7c4d12f8d proton: Fix byte string comparison 2018-08-24 13:48:57 -05:00
Andrew Eikum
088c88b745 Merge remote-tracking branch 'MayeulC/python3' into proton_3.7 2018-08-24 11:19:10 -05:00
Mayeul Cantan
0f80f2f52c Import print_function from __future__ for python compatibility
This alters the behaviour of python2's print statement to be compatible
with python3's print function. While not strictly necessary for now,
this might help future compatibility.
Thanks to Seppo Yli-Olli (@nanonyme) for suggesting this.
2018-08-24 09:28:52 +02:00
Andrew Eikum
fa8f06efaf proton: Move debug scripts to /tmp/proton_$USER/
To avoid conflicts between multiple Unix accounts.
2018-08-23 11:29:56 -05:00
Andrew Eikum
1b9d405d14 proton: Only dump debug scripts when requested 2018-08-23 11:29:54 -05:00
Andrew Eikum
af9eb02401 proton: Dump some default logging if PROTON_LOG is set 2018-08-23 11:29:54 -05:00
Andrew Eikum
8dc036b298 proton: Drop WINEARCH from environment 2018-08-23 11:29:49 -05:00
Andrew Eikum
10012eee17 proton: Fix null deref 2018-08-23 09:43:12 -05:00
Andrew Eikum
4d127190a6 proton: Fix for broken 64-bit-only prefix shipped 20180822 2018-08-23 09:10:15 -05:00
Mayeul Cantan
9c3667c083 Make proton, gen_wrapper and user_settings python scripts version-agnostic 2018-08-23 14:24:39 +02:00
Sebastian Wick
2863402e9e move proton from python2.7 to python3 2018-08-23 12:05:35 +02:00
Seppo Yli-Olli
6f0a6f656d
Sanitize hashbang 2018-08-22 16:50:20 +03:00
Andrew Eikum
dea40ea0a8 Revert "proton: Use $USER instead of "steamuser""
This reverts commit 935875ceab.
2018-08-20 10:45:38 -05:00
Andrew Eikum
935875ceab proton: Use $USER instead of "steamuser" 2018-08-20 10:45:08 -05:00
Andrew Eikum
9cae619993 proton: Change waitforexit to waitforexitandrun 2018-08-08 08:01:55 -05:00
Andrew Eikum
17294f3b4a proton: Add waitforexit verb
The Steam client only sets critical environment variables for the game
process itself, not for getcompatpath etc. This verb lets the Steam
client wait for the prefix to shut down so it can restart the prefix
with the variables set.

Required to avoid duplicate controllers when controller config support
is enabled, for example.
2018-08-06 08:12:01 -05:00
Andrew Eikum
1846fe4260 Copy default prefix into place even if files are already present there
Steam cloud sync places save files into pfx/ before proton is ever
invoked. Previously we would assume the prefix is valid if pfx/ exists
and run wine, which lead to very broken prefixes. Instead we should
check for files that cloud sync will never create (user.reg) and merge
the default prefix into any existing prefix tree.
2018-07-20 09:48:32 -05:00
Andrew Eikum
cf10d17310 proton: Handle errors in user_settings better 2018-07-12 11:16:45 -05:00
Andrew Eikum
39d80d114c copy openvr_api.dll into place for DXVK
DXVK needs to make some calls to openvr_api, but the game may not ship
it in a predictable location. So we provide a fallback called
openvr_api_dxvk.dll, which DXVK knows to load.
2018-07-12 11:16:45 -05:00
Andrew Eikum
81a56ba815 proton: Don't crash if we're missing SteamGameId 2018-06-27 08:17:11 -05:00
Andrew Eikum
971ba6438b proton: Load environment overrides from a file on disk 2018-06-25 14:25:13 -05:00
Andrew Eikum
2da8976160 proton: Always enable Wine esync 2018-06-25 14:25:13 -05:00
Andrew Eikum
17bb46c5af proton: Use wine64 for all winedbg invocations 2018-06-20 14:37:17 -05:00
Andrew Eikum
aae498498f proton: Add +debugstr to default channels
Some games dump useful debug info here, especially Id Software games.
2018-05-31 12:42:21 -05:00
Andrew Eikum
e31b4f2b02 proton: Fix checking environment overrides 2018-05-25 11:24:12 -05:00
Andrew Eikum
3e05e9bb1a proton: Use DXVK by default, add PROTON_USE_WINED3D11 switch 2018-05-23 13:56:38 -05:00
Andrew Eikum
dde8da9f00 proton: Also dump STEAM_COMPAT_CLIENT_INSTALL_PATH to debug scripts 2018-05-18 09:21:38 -05:00