Commit Graph

361 Commits

Author SHA1 Message Date
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
Andrew Eikum
c0f69f618c proton: Disable DXVK logging by default 2018-05-18 09:21:38 -05:00
Andrew Eikum
2edea745d7 Update Wine to 3.7 2018-04-30 09:02:22 -05:00
Andrew Eikum
01206c4661 proton: Show prefix path on upgrade 2018-04-20 10:11:19 -05:00
Andrew Eikum
6606a7f0e8 Update wine to 3.5 2018-04-02 09:00:33 -05:00
Andrew Eikum
69942f9fc8 proton: Start unknown filetypes with 'start.exe'
Doom II for example launches with a batch script.
2018-03-30 10:40:09 -05:00
Andrew Eikum
53c0988fc1 proton: Allow Windows apps to write to stdout 2018-03-30 10:40:09 -05:00
Andrew Eikum
430d91c888 proton: Add nod3d11 config option 2018-03-28 10:27:56 -05:00
Andrew Eikum
c5c8b90ff4 Update wine to 3.4 2018-03-19 13:28:38 -05:00
Andrew Eikum
ba3e23fb31 proton: Make debug logging a little simpler 2018-03-16 14:50:37 -05:00
Andrew Eikum
5b3ceebc20 proton: Also lock the prefix 2018-03-16 14:50:37 -05:00
Andrew Eikum
7a20ea9c1f proton: Lock on write access to the dist/ directory
Steam needs to be able to run proton several times in parallel without
it becoming corrupted.
2018-03-16 11:37:27 -05:00
Andrew Eikum
e59105dc2f proton: Improve debug scripts 2018-03-14 14:11:21 -05:00
Andrew Eikum
1ad8b530ea proton: For now, always dump debug scripts 2018-03-13 12:57:53 -05:00
Andrew Eikum
f7af914fe7 proton: Send logging to stderr
stdout is read by Steam when handling the compat path verbs. So we
should never write other stuff to stdout.
2018-03-13 12:33:07 -05:00
Andrew Eikum
3c120fa953 proton: Consistently read from os.environ, not our local copy 2018-03-13 12:33:07 -05:00
Andrew Eikum
38efd9aeed proton: Use STEAM_COMPAT_CLIENT_INSTALL_PATH if available 2018-03-13 12:33:07 -05:00
Andrew Eikum
0ddd3ff3d2 proton: Don't hard-code legacycompat path 2018-03-08 12:53:25 -06:00
Andrew Eikum
f11e36aac0 proton: Use DYLD_LIBRARY_PATH for mac 2018-03-06 12:13:55 -06:00
Andrew Eikum
f5b838c9e6 proton: Also log during winepath operations 2018-02-27 11:00:55 -06:00
Andrew Eikum
37eb221d95 proton: Fix translatepath verbs 2018-02-26 08:44:11 -06:00
Andrew Eikum
d5c916f69c proton: Delete Steam files before copying them 2018-02-20 11:23:03 -06:00
Andrew Eikum
c32f46cf00 proton: Use new translatepath API 2018-02-20 09:39:14 -06:00
Andrew Eikum
ead648522a proton: Use log function 2018-02-15 13:06:32 -06:00
Andrew Eikum
711273dd2c proton: Add prefix upgrade infrastructure 2018-02-15 12:55:40 -06:00
Andrew Eikum
5cef7459dc proton: Dump a few different debugging utilities 2018-02-15 10:22:07 -06:00
Andrew Eikum
434ed0476c proton: Disable WINEDEBUG during winedbg session 2018-02-15 09:37:19 -06:00
Andrew Eikum
0979ab9ed0 proton: Match winedbg to the architecture type 2018-02-15 09:37:18 -06:00
Andrew Eikum
8de64cea0c proton: Also dump WINEDLLOVERRIDES and PROTON_VR_RUNTIME 2018-02-15 08:09:08 -06:00
Andrew Eikum
34e8f02917 proton: Escape cwd path 2018-02-15 07:59:42 -06:00
Andrew Eikum
4a03a68b79 proton: Use root symlink instead of steam
Apparently Ubuntu mucks with Steam's internal file structure and screws
up the steam symlink. The root one isn't messed with, so we can use that
instead.
2018-02-15 07:32:44 -06:00
Andrew Eikum
dccc1f1fe8 proton: Add ability to dump debug command line 2018-02-14 14:29:28 -06:00
Andrew Eikum
0b6599c0bc proton: Set WINEDLLPATH and PATH 2018-02-14 14:03:52 -06:00
Andrew Eikum
d940c59d36 proton: Change default debug channels 2018-02-13 14:31:34 -06:00
Andrew Eikum
0686092448 proton: Support launching with dxvk 2018-02-13 14:31:34 -06:00
Andrew Eikum
6adef625fd proton: Complain if verb is missing 2018-02-12 08:08:53 -06:00
Andrew Eikum
7ef0476c2b proton: Dump stdout to /dev/null by default 2018-02-08 09:21:26 -06:00
Andrew Eikum
4367aa17e7 proton: Explicitly use python2.7 in hashbang
This will work on macOS as well as Linux.
2018-02-08 09:21:26 -06:00
Andrew Eikum
de529b4d05 Add translatepath support 2018-02-02 14:30:38 -06:00
Andrew Eikum
40aaae912c Don't install vulkan runtime 2018-02-02 08:20:15 -06:00
Andrew Eikum
ab6b25cc17 Set up winevulkan stuff at prefix create time 2018-01-29 09:08:31 -06:00
Andrew Eikum
9e15bad61c Build prefix at first-run time, not build-time 2018-01-26 08:37:36 -06:00
Andrew Eikum
04174e94e7 proton: Don't crash on setting up VR stuff in existing prefix 2018-01-26 08:11:25 -06:00
Andrew Eikum
72eb9aa791 Build and use a default prefix 2018-01-22 14:46:04 -06:00
Andrew Eikum
c162f4bd00 Use steamuser as proton username 2018-01-22 14:46:02 -06:00
Andrew Eikum
19e31c24ff proton: Fix debug printing during prefix creation 2018-01-22 14:46:02 -06:00
Andrew Eikum
74e96ab1ec Package proton into a tar.gz and extract on first-run
Valve requested that we distribute as few small files as possible, as
their content pipeline is very inefficient with small files.
2018-01-19 13:27:13 -06:00
Andrew Eikum
4f49e6e29e move proton script here 2018-01-18 14:04:18 -06:00