Commit Graph

302 Commits

Author SHA1 Message Date
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
Anna Lasky
ff7bfc5595 Add Dread X Collection: The Hunt to MFDXGI hack
CW-Bug-Id: #19126
2022-06-03 17:57:43 +03:00
Arkadiusz Hiler
faf8b2e64d proton: Add Outward to MFDXGI hack.
CW-Bug-Id: #19126
2022-06-03 17:57:43 +03:00
Paul Gofman
673e1ae43d proton: Add V Rising to MFDXGI hack.
CW-Bug-Id: #19126
2022-06-03 17:57:43 +03:00
Arkadiusz Hiler
203580f96f Add two more games to MFDXGI manager hack.
CW-Bug-Id: #19126
CW-Bug-Id: #20655
2022-06-03 17:57:43 +03:00
Arkadiusz Hiler
cc8db7609b Add three more games to MFDXGI manager hack.
CW-Bug-Id: #19126
2022-06-03 17:57:43 +03:00
Anna Lasky
ced280e888 Add Ember Knights to IMFDXGIDeviceManager hack
CW-Bug-Id: #19126
2022-06-03 17:57:43 +03:00
Anna Lasky
8909720216 Add El Hijo - A Wild West Tale to MFDXGI manager hack
CW-Bug-ID: #19126
2022-06-03 17:57:43 +03:00
Anna Lasky
d7452b523f Add EZ2ON REBOOT : R to MFDXGI manager hack
CW-Bug-ID: #19126
2022-06-03 17:57:43 +03:00
Paul Gofman
a216f5baa0 Add POSTAL4: No Regerts to MFDXGI manager hack.
CW-Bug-Id: #20611
2022-06-03 17:57:29 +03:00
Andrew Eikum
94772426ac Add Disintegration to MFDXGI manager hack
CW-Bug-Id: #20592
2022-06-03 14:26:11 +03:00
Georg Lehmann
7e7f6155d3 Set VKD3D_SHADER_DEBUG=none by default.
Link: https://github.com/ValveSoftware/Proton/pull/5326
2022-06-03 14:26:11 +03:00
Anna Lasky
44e38af171 Add Monster Train to IMFDXGIDeviceManager hack
CW-Bug-Id: #19126
2022-04-21 13:02:27 +03:00
Anna Lasky
34b55deb55 Add 3 more titles to IMFDXGIDeviceManager hack
Titles added: Hardspace: Shipbreaker (1161580), Nine Sols Demo
(1809540), Car Mechanic Simulator 2021 (1190000)

CW-Bug-Id: #19126
2022-04-21 13:02:27 +03:00
Arkadiusz Hiler
aaabeb5567 Revert "proton: Add noesync,nofsync for Apex Legends"
This reverts commit 25a58123a1.
2022-04-05 18:13:11 +03:00
Arkadiusz Hiler
f45b165030 Revert "proton: Add noesync,nofsync for PixelJunk Eden"
This reverts commit 0623da2af4.
2022-04-05 18:13:11 +03:00
Liam Middlebrook
aa33dd9cb8 proton: Set DXVK_ENABLE_NVAPI envvar when NvAPI is enabled
See: https://github.com/doitsujin/dxvk/pull/2544

Link: https://github.com/ValveSoftware/Proton/pull/5687
2022-04-05 18:13:11 +03:00
Paul Gofman
a4824da779 proton: Optionally setup T: drive for native Steam directory.
CW-Bug-Id: #20285
2022-04-05 18:13:11 +03:00
Andrew Eikum
addf6dc5b6 proton: Remove the FFXIV launcher workaround
CW-Bug-Id: #20242
2022-04-05 18:13:11 +03:00