Commit Graph

420 Commits

Author SHA1 Message Date
Paul Gofman
ccc1fda889 HACK: proton: Add PROTON_HEAP_ZERO_MEMORY runtime config option.
Based on Paul's patches for CW bug 23394.

And enable this heap zero hack for Call of Juarez: Bound in Blood (21980).

CW-Bug-Id: #23394
CW-Bug-Id: #23466
2024-03-25 23:45:46 +08:00
Arkadiusz Hiler
c17db0b838 proton: Don't use copy_file_range if fs doesn't support it. 2024-03-22 13:30:06 +02:00
Anna Lasky
b7f80e85d0 proton: Disable nvapi for Carmageddon: Max Damage
CW-Bug-Id: 23594
2024-03-19 14:42:59 -05:00
Anna Lasky
0d54d1fa40 proton: Disable nvapi for Divinity: Original Sin 2 - Definitive Edition
CW-Bug-Id: #23561
2024-03-13 13:09:38 -05:00
John Brooks
d3fb3759a6 proton: Enable gamedrive compat option for Descent 3
Descent 3 corrupts its stack if the installation path is too long. The
return pointer gets overwritten with the path to the intro movie and we
crash.

Signed-off-by: John Brooks <john@fastquake.com>
Link: https://github.com/ValveSoftware/Proton/pull/7365
2024-03-11 12:18:16 -05:00
Anna Lasky
c48b88d7b9 proton: Disable nvapi for Alan Wake (108710)
CW-Bug-Id: #23545
2024-03-11 11:40:04 -05:00
Paul Gofman
d3f7ecfc32 proton: Add hideapu config option and enable it for Deathloop.
CW-Bug-Id: #23489
2024-03-04 22:37:52 +02:00
Anna Lasky
e78a69d011 Revert "proton: Disable nvapi for THE FINALS"
This reverts commit 24d5272316.
2024-02-28 08:35:06 -06:00
Anna Lasky
436634421b proton: Added Iragon and Iragon 18+ to MFDXGI hack
CW-Bug-Id: #23184
2024-02-15 15:19:16 -06:00
Arkadiusz Hiler
809b6b66dc proton: Remove PROTON_DUMP_DEBUG_COMMANDS. 2024-02-15 15:53:29 +02:00
Anna Lasky
500d6608c4 proton: Added Iragon: Prologue 18+ (1522260) to MFDXGI hack
CW-Bug-Id: #23184
2024-02-15 15:53:29 +02:00
Zhiyi Zhang
44c58e0857 proton: Add Iragon: Prologue (2229490) to MFDXGI manager hack.
CW-Bug-Id: #23184
2024-02-15 15:53:29 +02:00
Rémi Bernon
9982db7405 proton: Enable the new SDL 2.30 Steam Input integration.
CW-Bug-Id: #23185
2024-02-15 15:53:29 +02:00
Anna Lasky
24d5272316 proton: Disable nvapi for THE FINALS 2024-02-15 15:53:29 +02:00
Anna Lasky
5f9603eb23 proton: Enable gamedrive compat option for Bayonetta.
CW-Bug-Id: #22421
2024-02-15 15:53:29 +02:00
Paul Gofman
49b1120eb9 proton: Copy more VC runtime redists.
CW-Bug-Id: #23227
2024-02-15 15:53:29 +02:00
Paul Gofman
1eb8799803 proton: Use server sync for Disaster Report 4: Summer Memories.
CW-Bug-Id: #22415
2024-02-15 15:53:29 +02:00
Paul Gofman
2781aa3d1c proton: Add ir50_32.dll to dll copy list.
CW-Bug-Id: #23172
2024-02-15 15:53:29 +02:00
Paul Gofman
6858265bd3 proton: Enable WINE_HEAP_DELAY_FREE for WITCH ON THE HOLY NIGHT.
CW-Bug-Id: #23142
2024-02-15 15:53:29 +02:00
Joshua Ashton
46c2f720d2 proton: Enable forcenvapi for Tony Hawk's Pro Skater 1 + 2
CW-Bug-Id: #23140
2024-02-15 15:53:29 +02:00
Joshua Ashton
0f45b24677 proton: Add forcenvapi
To allow titles like Tony Hawk's Pro Skater 1+2 to support HDR on
SteamOS by default.

These games use statically linked AMD AGS.

CW-Bug-Id: #23140
2024-02-15 15:53:29 +02:00
Paul Gofman
b9040886de proton: Add hidevggpu option and enable it for Serious Sam 4.
CW-Bug-Id: #20527
2024-02-15 15:53:29 +02:00
Andrew Eikum
de63ea5341 Handle steampipe quirks in deploy builds 2024-02-15 15:53:29 +02:00
Andrew Eikum
3d5022de71 Don't ship proton dist files in a tarball anymore 2024-02-15 15:53:29 +02:00
Arkadiusz Hiler
05d8723647 proton: Remove enableamdags.
CW-Bug-Id: #22976
2024-02-15 15:53:29 +02:00
Adam Moss
eda0f05272 proton: Change DXVK-NVAPI to enabled-by-default.
it's now disabled by PROTON_DISABLE_NVAPI=1

Link: https://github.com/ValveSoftware/Proton/pull/7335
2024-02-15 15:53:29 +02:00
Rémi Bernon
dc9220271e proton: Bump proton and prefix version. 2024-02-15 15:53:29 +02:00
Paul Gofman
623d71250f proton: Disable forced LAA for Final Fantsy X/X-2.
CW-Bug-Id: #22930
2024-02-15 15:50:55 +02:00
Anna Lasky
0a19090d66 proton: Enable AMD AGS for Devil May Cry 5 2023-12-15 18:32:25 +01:00
Arkadiusz Hiler
0bcc20cbc1 proton: Enable AMDAGS for Japanese versions of RE 2,3,7 and 8. 2023-12-12 17:37:45 +02:00
Paul Gofman
8eea1df800 proton: Enable AMD AGS for Injustice 2. 2023-12-12 17:37:45 +02:00
Paul Gofman
c6c9bf0a2a proton: Enable AMD AGS for Mass Effect Legendary Edition. 2023-12-12 17:37:45 +02:00
Timo Gurr
fb588c5389 proton: Enable amdags for The Last of Us Part I
WINEDLLOVERRIDES="amd_ags_x64=b" was required before to fix:

* outdated graphics driver warning on game start
* wrong vram reported in options
* delayed texture loading

https://github.com/ValveSoftware/Proton/issues/6653
2023-12-12 17:37:45 +02:00
Arkadiusz Hiler
99009e774c proton: Enable nvapi for Satisfactory. 2023-12-12 17:37:45 +02:00
Arkadiusz Hiler
0ab1dd2e70 proton: Enable AMD AGS for Hogwarts Legacy. 2023-12-12 17:37:45 +02:00
Arkadiusz Hiler
f3326b23c1 proton: Enable dxvk-nvapi for Hogwarts Legacy. 2023-12-12 17:37:45 +02:00
Joshua Ashton
8d989fdd46 proton: Enable dxvknvapi for Resident Evil 7 Biohazard (418370)
Needed for HDR support.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2023-12-12 17:37:45 +02:00
Joshua Ashton
4eb7119320 proton: Enable amdags for Resident Evil 7 Biohazard (418370)
Needed for HDR support.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2023-12-12 17:37:45 +02:00
Joshua Ashton
c50718c777 proton: Enable dxvknvapi for Resident Evil Village (1196590)
Needed for HDR support.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2023-12-12 17:37:45 +02:00
Joshua Ashton
8473c3c7fa proton: Enable amdags for Resident Evil Village (1196590)
Needed for HDR support.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2023-12-12 17:37:45 +02:00
Joshua Ashton
640d0b3e1b proton: Enable dxvknvapi for Resident Evil 3 (952060)
Needed for HDR support.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2023-12-12 17:37:45 +02:00
Joshua Ashton
bd4d03123a proton: Enable amdags for Resident Evil 3 (952060)
Needed for HDR support.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2023-12-12 17:37:45 +02:00
Joshua Ashton
cedc2aefff proton: Enable dxvknvapi for Resident Evil 2 (883710)
Needed for HDR functionality.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2023-12-12 17:37:45 +02:00
Joshua Ashton
bfbc9b358d proton: Enable amdags for Resident Evil 2 (883710)
Needed for HDR functionality.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2023-12-12 17:37:45 +02:00
Paul Gofman
c6d562b388 proton: Fix noforcelgadd option.
Code in Wine still enables the hack when WINE_LARGE_ADDRESS_AWARE is
missing, need to set it to non-'1' to really disable.

CW-Bug-Id: #22930
2023-12-07 13:43:40 +02:00
Paul Gofman
52667847c4 proton: Enable WINE_HEAP_DELAY_FREE for Trivia Tricks.
CW-Bug-Id: #22774
2023-12-07 13:43:40 +02:00
Adam Moss
d0423e5d84 Enable DXVK-NVAPI by default on another batch of titles where it's stable+beneficial 2023-09-12 14:55:31 +03:00
Adam Moss
48670ca952 Enable DXVK-NVAPI by default on more titles where it's stable+beneficial 2023-09-12 14:55:31 +03:00
Paul Gofman
4f252eaf21 proton: Enable gamedrive compat option for Sword Art Online: Integral Factor.
CW-Bug-Id: #22667
2023-09-12 14:44:08 +03:00
Paul Gofman
231e7f24d8 proton: Enable gamedrive compat option for Empyrion - Galactic Survival.
CW-Bug-Id: #22667
2023-09-12 14:44:08 +03:00
Paul Gofman
7da8928dd9 proton: Add enableamdags compat config option.
And enable it for a few games instead of registry overrides.

CW-Bug-Id: #22677
2023-09-12 14:44:08 +03:00
Paul Gofman
eaae654042 Enable DXVK-NVAPI for Rainbow Six Extraction. 2023-09-12 14:44:08 +03:00
Rémi Bernon
c53ff7a082 proton: Add dx8vb to the native redist DLLs list.
CW-Bug-Id: #22530
2023-09-12 14:44:08 +03:00
Anna Lasky
9b3457c857 proton: Enable gamedrive compat option for Garry's Mod.
CW-Bug-Id: #22421
2023-09-12 14:44:08 +03:00
Anna Lasky
2ac09e541e proton: Enable gamedrive compat option for Aura: Fate of the Ages.
CW-Bug-Id: #22421
2023-09-12 14:44:08 +03:00
Zhiyi Zhang
343ccf211d proton: Enable WINE_HEAP_DELAY_FREE for Dark Parables: The Exiled Prince Collector's Edition (499100).
CW-Bug-Id: #22397
2023-09-12 14:44:08 +03:00
Anna Lasky
06156dfe25 proton: Enable gamedrive compat option for Train Simulator and DARK
SOULS III.

CW-Bug-Id: #22421
2023-09-12 14:44:08 +03:00
Arkadiusz Hiler
55a3d3f165 proton: Bump prefix version. 2023-06-06 12:05:09 +03:00
Arkadiusz Hiler
cdd54b2a25 proton: Log effective WINEDEBUG and WINEDLLOVERRIDES. 2023-06-06 12:05:09 +03:00
Adam Moss
c444e6fea4 Enable dxvk-nvapi by default for more games.
Link: https://github.com/ValveSoftware/Proton/pull/6725
2023-06-06 12:05:09 +03:00
notpentadactyl
4e483d01d8 proton: Enable dxvknvapi for Monster Hunter Rise.
Monster Hunter Rise (1446780) has working DLSS with `PROTON_ENABLE_NVAPI=1`.

Link: https://github.com/ValveSoftware/Proton/pull/6534
2023-06-06 12:05:09 +03:00
Paul Gofman
3f57a0b71b proton: Disable fsync and esync for Call of Duty 2.
CW-Bug-Id: #22305
2023-06-05 17:55:10 +03:00
Paul Gofman
2e0a609437 proton: Enable gamedrive compat option for ESO.
CW-Bug-Id: #22240
2023-06-05 17:55:10 +03:00
Paul Gofman
40103342d5 proton: Set enablenvapi for SoPFFO.
CW-Bug-Id: #22117
2023-06-05 17:55:10 +03:00
Anna Lasky
6d2bcbb559 proton: Add Roboquest to MFDXGI hack and clean up shared resources games
Removed shared resources games that previously needed MFDXGI hack because shared resources are implemented in 8.0-stable.

CW-Bug-ID: #22265
2023-06-05 17:55:10 +03:00
Paul Gofman
f0064b6799 proton: Add threadname to default logs. 2023-06-05 17:55:10 +03:00
Arkadiusz Hiler
7bd855e054 proton: Make log creation depend only on PROTON_LOG.
There are valid cases, e.g. when debugging Wine Mono, to have WINEDEBUG
set to -all. Before this change this would disable the logging even if
PROTON_LOG=1.
2023-06-05 17:55:10 +03:00
Zhiyi Zhang
33b0da5fb1 proton: Do use builtin steam.exe for Locoland.
Locoland(352130) executable name happens to be steam.exe.

CW-Bug-Id: #21737
2023-06-05 17:55:10 +03:00
Arkadiusz Hiler
e82bed8475 proton: Remove stale ir50_32.dll that can be left by experimental.
When switching back to 8.0 from Experimental it will point to a .dll in
the Experimental install directory. It's incompatible with 8.0 due to
experimental-only winegstreamer changes and causes delayed symbol
imports to fail.

CW-Bug-Id: #22205
2023-04-28 12:19:30 +03:00
Arkadiusz Hiler
5ac739906d proton: Optionally copy d3d12core for vkd3d-proton.
In anticipation of a pull-request being merged that moves things around
and introduces d3d12core.dll.

This should be made non-optional once the vkd3d-proton changes land.

Link: https://github.com/HansKristian-Work/vkd3d-proton/pull/1458
2023-04-27 17:51:45 +03:00
Andrew Eikum
576a839c18 Don't ship filenames with colons in them
CW-Bug-Id: #22054
2023-04-18 17:04:27 +03:00
Adam Moss
e171c46460 proton: Set enablenvapi for Red Dead 2 / Online.
Link: https://github.com/ValveSoftware/Proton/pull/6227
2023-03-08 17:35:54 +02:00
Arkadiusz Hiler
e34482a580 proton: Disable hidenvgpu if nvapi is enabled.
Link: https://github.com/ValveSoftware/Proton/pull/6227
2023-03-08 17:35:54 +02:00
Adam Moss
6b4dce48bc proton: Enable dxvknvapi on a bunch of (DLSS) titles.
Link: https://github.com/ValveSoftware/Proton/pull/6120
Link: https://github.com/ValveSoftware/Proton/pull/6227

(squashed a bunch of commits)
2023-03-08 17:35:54 +02:00
Giovanni Mascellani
85ed53c1d8 fonts: Provide an alternative fake Arial font.
The fake Arial already distributed with Python is based on Liberation fonts.
It is metrically compatible with the original Arial, but it doesn't support
all its glyphs (specifically, it misses Arabic).

The new one is based on Noto fonts. It support all the Arial glyphs
(I think), but it is not metrically compatible. It is enabled based
on SteamGameId when glyph coverage is considered more important than
metric compatibility.

So far it is enabled for FIFA 21 and FIFA 22.

CW-Bug-Id: #20302
2023-02-14 16:07:44 +02:00
Giovanni Mascellani
77fd6c3b2d proton: Install all available fonts to the prefix.
This requires commit "loader: Install all fonts provided by Proton in the
registry." in Wine, otherwise font support will be broken.
2023-02-14 16:07:44 +02:00
Giovanni Mascellani
4378ee718a fonts: Install Liberation fonts using their fake name.
For homogeneity with the other fake fonts. That's mostly cosmetic.
2023-02-14 16:07:44 +02:00
Rémi Bernon
08a5f1cd56 proton: Trace language related environment variables.
CW-Bug-Id: #21346
2023-02-14 16:07:44 +02:00
Giovanni Mascellani
84012c12aa Do not use the vkd3d version emebededd in Wine, but rebuild from its submodule. 2023-02-14 16:07:44 +02:00
Arkadiusz Hiler
1489a6a8d5 proton: Bump prefix version. 2023-02-14 16:07:43 +02:00
Paul Gofman
89a2dac0b2 proton: Enable gamedrive compat option for Creativerse.
CW-Bug-Id: #21729
2023-02-14 16:07:43 +02:00
Paul Gofman
f693c48a4c proton: Enable gamedrive compat option for As Dusk Fails.
CW-Bug-Id: #21485
2023-02-14 16:07:43 +02:00
Simon McVittie
4db08dc766 proton: Don't crash if sys.stderr is not usable
If a Steam user runs Steam from a terminal, puts it in the background
and then exits from that terminal, or if they restart their desktop
session from a terminal (as in ValveSoftware/Proton#6277) and then exit
from that terminal, then we can inherit a stdout and/or stderr file
descriptor pointing to an invalid file descriptor. Writing to such a
file descriptor fails with EIO. Similarly, we could get write errors
as a result of OS state, such as ENOSPC if we are writing to a disk
that is full, or EPIPE if a stream to a logging framework such as the
systemd journal has been shut down.

In sufficiently pathological situations, the file descriptor could even
become invalid while the `proton` script is running, so even checking
for validity on startup would not be enough to prevent this.

The ability to log to stderr is important but not functionally critical,
and it's not like there is anything we can usefully do about a write
failure here (or even anywhere we can usefully put a warning message),
so just ignore write errors. This is similar to the behaviour of the
`logging` framework in the Python standard library (which writes to
`stderr` if a user-defined handler fails, but takes no other action)
and also similar to the approach taken to solve
ValveSoftware/steam-for-linux#8069.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Link: https://github.com/ValveSoftware/Proton/pull/6341
2023-02-14 16:07:43 +02:00
Anna Lasky
dd32534265 proton: Remove games that need shared resources from MFDXGI hack
This comments out all of the games that do not need the MFDXGI hack on
the experimental branch because the experimental branch has support for
shared resources.
2023-02-14 16:07:43 +02:00
Anna Lasky
f9b51bc244 proton: Remove LOST EMBER from MFDXGI hack
CW-Bug-ID: #21097
2023-02-14 16:07:43 +02:00
Anna Lasky
5328d61f5a proton: Reorganize games in MFDXGI hack and add missing titles
This separates out the games that only need shared resources in order to
play video correctly without the MFDXGI hack.  El Hijo (853050) and
Labyrinth City: Pierre the Maze Detective (1421790) were also added.
2023-02-14 16:07:43 +02:00
Giovanni Mascellani
9ae252db4f Ensure vkd3d-proton is used for D3D12 unless wined3d is explicitly requested. 2022-10-14 18:21:56 +03:00
Paul Gofman
be25891a0c proton: Enable WINE_HEAP_DELAY_FREE for Call of Duty: Black Ops II Zombies and Multiplayer.
CW-Bug-Id: #21106
2022-10-14 18:21:56 +03:00
Paul Gofman
8d2e85be8c proton: Disable forced LAA for Sword and Fairy 4.
CW-Bug-Id: #21180
2022-10-14 18:21:56 +03:00
Arkadiusz Hiler
5720dd3e9c proton: Add PROTON_NO_STEAM_FFMPEG to ignore ffmpeg that ships with Steam.
CW-Bug-Id: #20923
2022-08-10 19:29:30 +03:00
Paul Gofman
7e27da4bc2 proton: Add Warframe to OPWR disablement list.
CW-Bug-Id: #20944

The game's launcher starts hitting unimplemented d3dcompiler
bits with OPWR supported.
2022-08-10 19:29:30 +03:00
Paul Gofman
7d4ca96ae1 proton: Add WINE_DISABLE_VULKAN_OPWR hack appid list.
CW-Bug-Id: #20680
2022-08-10 19:29:30 +03:00
Paul Gofman
242d655a0f proton: Add dotnetfx35setup.exe builtin override.
CW-Bug-Id: #20733
2022-08-10 19:29:30 +03:00
Simon McVittie
79c9b6a15d proton: Allow forwarding commands into the Proton environment
Recent versions of the Steam Runtime include an IPC server/client pair
which can be used to run commands inside the container environment
(or any other special execution environment), analogous to sshd/ssh or
flatpak-portal/flatpak-spawn. The server runs inside the Steam Runtime
container and accepts commands over D-Bus; the client runs on the host
system, asks the server to run a command, and forwards its stdin, stdout
and stderr back to the host.

https://gitlab.steamos.cloud/steamrt/steamlinuxruntime/-/merge_requests/72
adds support for injecting commands into the SteamLinuxRuntime_soldier
compatibility tool (and any later version, such as sniper). However,
Steam compatibility tools are stackable: in particular, Proton runs in a
soldier container (or presumably sniper in future). If we are debugging
a Proton game, then ideally we will want to inject commands into Proton's
execution environment rather than soldier's, so that they run with the
correct environment variables etc. to communicate with a running Proton
session. In particular, it's important that the `WINEPREFIX` is correct.

The steam-runtime-launcher-interface-0 program implements the
interface for compatibility tools to use to decide where, if anywhere,
to launch the command server.

This commit does not alter the scripts produced by
PROTON_DUMP_DEBUG_COMMANDS. To run those scripts' commands in the
container environment, pass their filenames to
steam-runtime-launch-client.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Link: https://github.com/ValveSoftware/Proton/pull/5891
2022-08-10 19:29:30 +03:00
Arkadiusz Hiler
4cc575b2f4 proton: Add Greak: Memories of Azur to MFDXGI hack.
CW-Bug-Id: #19126
2022-08-10 19:29:30 +03:00
Newbyte
7785b9ab78 proton: Add Terra Nil Demo to MFDXGI hack.
CW-Bug-Id: #19126
Link: https://github.com/ValveSoftware/Proton/pull/5907

Works around main menu background video being corrupted.
2022-08-10 19:29:30 +03:00
Paul Gofman
b1852d2e67 proton: Add Lost Ember to MFDXGI hack.
CW-Bug-Id: #21097
2022-08-10 19:29:30 +03:00
Anna Lasky
6a1714a0d7 proton: Remove games from MFDXGI hack
This removes games that we believe are fixed by the initial improved
implementation of the mfdxgidevicemanager - specifically games with
graphical distortion during video playback.

CW-Bug-ID: #19126
2022-08-10 19:23:14 +03:00
Bitwolf
0ba9319113 proton: Add POSTAL: Brain Damaged to MFDXGI hack
CW-Bug-Id: #19126
Link: https://github.com/ValveSoftware/Proton/pull/5899
2022-08-03 14:24:42 +03:00
Esme Povirk
d141d538bc proton: Make reflinks for file copies when possible.
CW-Bug-Id: #18633
2022-08-03 14:24:34 +03:00