Commit graph

1424 commits

Author SHA1 Message Date
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
Giovanni Mascellani
929733036f Revert "Build vkd3d as ELF."
This reverts commit 69d6b82e94.
2023-02-14 16:07:44 +02:00
Rémi Bernon
5e90e8283c build: Use gdb debug infos instead of dwarf-2 strict-dwarf. 2023-02-14 16:07:44 +02:00
Rémi Bernon
559e652a45 build: Download and cache contrib into the build folder only.
Wine Mono / Gecko packages are already cached in a contrib folder,
and downloading them outside of proton source directory is brittle.

This also makes the source sync run twice when using the toplevel
Makefile.
2023-02-14 16:07:44 +02:00
Rémi Bernon
331c90a874 build: Copy files to dist / deploy / install with rsync. 2023-02-14 16:07:44 +02:00
Rémi Bernon
8decbe981a build: Add a catch-all rule for anything the container can build. 2023-02-14 16:07:44 +02:00
Rémi Bernon
bd1178a5b3 build: Use silent rules for vkd3d. 2023-02-14 16:07:44 +02:00
Rémi Bernon
db3274b1c7 build: Build PE modules with -mcmodel=small.
This breaks MinGW autoimport mechanism but nothing in Proton should be
using it. Instead, any PE module should be using standard dllimport and
ntdll will do the relocations as expected. We also don't and hopefully
never have modules larger than 2GB, so 32-bit %rip relative offsets
should be enough for everything.

This will OTOH save a lot of .refptr indirections, that are otherwise
generated for any extern symbols, even though they are later linked in
the same module, making all code smaller and maybe a little faster.
2023-02-14 16:07:44 +02:00
Rémi Bernon
470f3084eb docker: Build MinGW with -mcmodel=small.
(cherry picked from commit c90d4c34d8)
2023-02-14 16:07:43 +02:00
Paul Gofman
e1d797fd97 wineopenxr: Use custom Vk structures instead of custom functions for creating Vk device through OpenXR. 2023-02-14 16:07:43 +02:00
Paul Gofman
09bbd8c0bf wineopenxr: Load unwrappers from winevulkan.so. 2023-02-14 16:07:43 +02:00
Paul Gofman
e2ab395020 steam_helper: Load unwrappers from winevulkan.so. 2023-02-14 16:07:43 +02:00
Paul Gofman
74ae018197 vrclient: Load unwrappers from winevulkan.so. 2023-02-14 16:07:43 +02:00
Arkadiusz Hiler
1489a6a8d5 proton: Bump prefix version. 2023-02-14 16:07:43 +02:00
Arkadiusz Hiler
19f18b660e Makefile.in: Ignore autogenerated winevulkan files. 2023-02-14 16:07:43 +02:00
Arkadiusz Hiler
f7a03d620e steam_helper: Use PROCESSINFOCLASS.
We no longer have PROCESS_INFORMATION_CLASS as of ce91ef6426bf ("kernelbase: Add SetProcessInformation().")
2023-02-14 16:07:43 +02:00
Arkadiusz Hiler
dc3a951754 Makefile.in: Build wineopenxr with -ldl.
Required as of bef09697227c ("ntdll: Move the .so module initialization to winecrt0.")
2023-02-14 16:07:43 +02:00
Esme Povirk
f2223c0ba7 Update Wine Mono to 7.4.0. 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
Arkadiusz Hiler
8e67412fcc media-converter: Use the test pattern video even without dump/transcoded files.
So the game won't trip over lack of media when shader pre-cacheing is
disabled in Steam.

CW-Bug-Id: #21524
2023-02-14 16:07:43 +02:00
Shaun Ren
e2493e2dfd media-converter: Set stream ID as the video hash.
If a stream ID is not set, gstreamer will generate random stream IDs for
the streams in downstream elements. This can cause decodebin to generate
its source pads in a non-deterministic order, as decodebin takes into
account the stream IDs when sorting the source pads.

This patch includes some changes from Arek Hiler.

CW-Bug-Id: #21192
2023-02-14 16:07:43 +02:00
Arkadiusz Hiler
6d138f5e96 media-converter: Create a tag file when placeholder media are used.
CW-Bug-Id: #21473
2023-02-14 16:07:43 +02:00
Arkadiusz Hiler
eca48bb93f media-converter: Apply cargo clippy suggestions. 2023-02-14 16:07:43 +02:00
Arkadiusz Hiler
e36a9ba96a media-converter: Update to the newest gst bindings.
1. ElementImpl trait requires GstObjectImpl

2. gst logging macros are no longer globals prefixed with gst_, they
   live inside gst:: instead

3. element is not longer passed around in many places, it can be
   accessed as self.obj() or self.instance()

4. query_default is now a part of gst::Pad and takes the pad as an argument

5. some constructors were changed to use from_$type()

6. query.view_mut() returns QueryViewMut

7. ElementFactory::make now returns a builder that we have to .build()

There are some extra cleanups as well:

1. spurious 'mut' and '&' are removed, a lot of that can be infered or
   were turned into a dereference by the compiler anyway

2. !bla.is_ok() are now bla.is_err()

3. some unneeded imports were removed
2023-02-14 16:07:43 +02:00
Rémi Bernon
9eb5a1753c docker: Add autoconf-archive dependency.
For OpenFST.
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
Arkadiusz Hiler
b5d58d27ad docker: Bump Rust to 1.65.
For let-else statements and generic associated types.
2023-02-14 16:07:43 +02:00
Arkadiusz Hiler
c04ca71f7a docker: Don't specify the image tag in --cache-from
The option is badly documented. Apparently the image name is enough.
Specifying the tag breaks podman/buildah build.
2023-02-14 16:07:43 +02:00
Rémi Bernon
4514ff3eff docker: Add python3-mako to the SDK images. 2023-02-14 16:07:43 +02:00
Rémi Bernon
d8fbadbd2a docker: Add OpenBLAS dependency.
For Kaldi / Vosk.
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
Arkadiusz Hiler
8959349ac9 configure.sh: Use SDK 0.20220601.0-1 2022-11-23 14:06:19 +02:00
Arkadiusz Hiler
175bc06a3f update wine 2022-10-31 13:25:15 +00:00
Arkadiusz Hiler
04dfc0937c update dxvk to v1.10.3-28-ge3daa699 2022-10-14 18:36:09 +03:00
Connor McAdams
c04edcea36 Update Wine Mono to 7.3.1. 2022-10-14 18:36:09 +03:00
Arkadiusz Hiler
79134b581a docker: Update Rust to 1.63.0. 2022-10-14 18:36:09 +03:00
Arkadiusz Hiler
42e034ece8 docker: Bump steamrt version to 0.20220601.0.
It contains libsoup.
2022-10-14 18:36:09 +03:00
Shawn Wallace
618221db82 Return proper number of recognized swapchain formats if some are not recognized.
Link: https://github.com/ValveSoftware/Proton/pull/6079

Edited by Paul Gofman:
- fixed behaviour for Vulkan instance type;
- stylistic changes.
2022-10-14 18:36:01 +03:00
Arkadiusz Hiler
66e57462c1 media-converter: Use crates.io version of the gstreamer crates. 2022-10-14 18:21:56 +03:00
Giovanni Mascellani
9ae252db4f Ensure vkd3d-proton is used for D3D12 unless wined3d is explicitly requested. 2022-10-14 18:21:56 +03:00
Giovanni Mascellani
69d6b82e94 Build vkd3d as ELF. 2022-10-14 18:21:56 +03:00
Paul Gofman
30c6b5c41e lsteamclient: Return NULL from manual_convert_SteamAPI_CheckCallbackRegistered_t() if win_func is NULL.
CW-Bug-Id: #21313
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
Rémi Bernon
4ee7c0c666 glslang: Build from source instead of prebuilt binary. 2022-10-14 18:21:56 +03:00
Rémi Bernon
8f0b458bca
gst-plugins-base: Support GLX backend for GL plugins. 2022-08-23 10:28:19 +02:00
Andrew Eikum
981ca6febe Also ship gst libsoup plugin for network video 2022-08-15 17:47:03 +03:00