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
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
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
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.
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
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
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
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
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.
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.
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