Commit Graph
100 Commits
Author SHA1 Message Date
Arkadiusz Hiler 692ef0aa1f build: Do as much as possible inside of the SDK container.
Parts of the rules, including the magical ones created via
make/rules-*.mk, are executed inside of the container via SHELL
override, and parts are executed on the host side.

This makes reasoning about and debugging the rules much harder than it
should be. It also requirs the users to have certain programs installed
on the host in addition to docker/podman.

With this change `make` will act as a simple pass through to inside of
the container for the most part.

One notable exception is installation which still happens the host side.
2023-02-14 16:07:44 +02:00
Arkadiusz Hiler 9f8a37c0c1 Makefile.in: Get rid of nested make.
We are going to invoke a single in-contiainer make anyway.
2023-02-14 16:07:44 +02:00
Arkadiusz Hiler e60f8c6aac build: Build all fonts in the container.
With the upgrade to sniper the fontforge is up to date enought to build
all our fonts.

Patch is used only to patch the fonts.
2023-02-14 16:07:44 +02:00
Arkadiusz Hiler b4bba7eec4 configure.sh: Move the default SDK build container image URI to Makefile.in.
Up until now ./configure.sh was baking in the default value into the
generated Makefile. Because of it if there was a change that requires a
newer version of the SDK the compilation would fail until the next
./configure.sh invocation does the update.

This is proved to be confusing - mysterious build errors without clear
explanation.

With this change the default value is a part of Makefile.in and if user
doesn't specify --proton-sdk-image it will be always used and always up
to date.

--proton-sdk-image overrides the default and stores it in the Makefile
just like it used to.
2023-02-14 16:07:44 +02:00
Arkadiusz Hiler 28aeb63901 build: Switch over to sniper-based SDK container. 2023-02-14 16:07:44 +02:00
Arkadiusz Hiler b2b17774e4 make/rules-source.mk: Suppress grep warnings.
The second grep in sequence can exit early (-q, as soon as we have one
match it exits with a success) which makes the first grep unhappy as its
write pipe is closed early, resulting in:

        syncing vulkan-loader... grep: write error: Broken pipe

Let's silence those errors.
2023-02-14 16:07:44 +02:00
Arkadiusz Hiler bc63dbbf2a build: Get rid of runtime selection options.
Those were first added when we were working on using the new
pressure-vessel based runtime but have basically no use during current
development.
2023-02-14 16:07:44 +02:00
Arkadiusz Hiler 10a240c341 docker: Use sniper as a base. 2023-02-14 16:07:44 +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
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
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
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
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
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
Arkadiusz Hiler 66e57462c1 media-converter: Use crates.io version of the gstreamer crates. 2022-10-14 18:21:56 +03:00
Arkadiusz Hiler 4221d9ef07 Update wine. 2022-08-10 19:29:30 +03:00
Arkadiusz Hiler fb9231f0ca Update dxvk to v1.10.3. 2022-08-10 19:29:30 +03:00
Arkadiusz Hiler 1db86a772d Update vkd3d-proton to v2.6-1-gc05900da. 2022-08-10 19:29:30 +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
Arkadiusz Hiler 707741dcc1 toolmanifest: Specify the compatmanager layer name
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
Arkadiusz Hiler be4a80dac6 lsteamclient: Assume manual wrappers are needed for newer revisions of the interfaces. 2022-08-03 14:24:42 +03:00
Arkadiusz Hiler d957ff7c35 Use GitHub mirrors for gstreamer rust repos.
Those are the original repos that were later moved to freedesktop.org.
The author recently started updating them as mirrors.

Freedesktop.org goes down much more often than GitHub and we fetch
everything else from GitHub anyway.

It's better to depend on fewer hosting services to have fewer
interruptions.
2022-08-03 13:40:46 +03:00
Arkadiusz Hiler 67d504c37e README.md: Add a section on debugging. 2022-08-03 13:40:46 +03:00
Arkadiusz Hiler d95c5cc550 README.md: Add a section on debug builds. 2022-08-03 13:40:46 +03:00
Arkadiusz Hiler 7523181830 lsteamclient: Fix the order of arguments in steamclient_isteaminput_getglyph_png(). 2022-06-13 22:16:42 +03:00
Arkadiusz Hiler db61ec1f1e lsteamclient: Wrap EnableActionEventCallbacks's callback also for SteamInput006. 2022-06-10 16:31:19 +03:00
Arkadiusz Hiler 6ded785ccd lsteamclient: Make helpers for EnableActionEventCallbacks reusable. 2022-06-10 16:31:18 +03:00
Arkadiusz Hiler 05efcef3fa lsteamclient: Fixup paths for GetGlyph*() also in SteamInput006. 2022-06-10 16:31:17 +03:00
Arkadiusz Hiler 46a427e8d0 lsteamclient: Make getglyph png and svg helpers non-static. 2022-06-10 16:31:17 +03:00
Arkadiusz Hiler fd79f236ca lsteamclient: Bump clang to 13.0.1. 2022-06-10 16:31:15 +03:00
Arkadiusz Hiler 0178b2bc6f update wine 2022-06-07 18:57:26 +03:00
Arkadiusz Hiler a5d28386b9 update dxvk to v1.10.1-57-g279b4b7e 2022-06-03 17:57:43 +03:00
Arkadiusz Hiler fe93b92ddc update dxvk-nvapi to v0.5.4 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
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
Arkadiusz Hiler d2e7a76010 configure.sh: Update default Proton SDK image to 0.20220329.0-0 2022-06-03 14:26:11 +03:00
Arkadiusz Hiler 252e903ff2 docker: Bump steamrt version to 0.20220329.0. 2022-06-03 14:26:11 +03:00
Arkadiusz Hiler b1aea5b33e Makefile: Stop mentioning VMs. 2022-06-03 14:26:11 +03:00
Arkadiusz Hiler f8a8301f4c Makefile: Get rid of install-internal target.
Since the migration off Vagrant we no longer need to copy Proton
installation from the VM to the host. This was replaced with a `make
install` invoked using the new build system which already puts things in
the right place. This render install-internal an unnecessary no-op.
2022-06-03 14:26:11 +03:00
Arkadiusz Hiler c8486ad372 .gitmodules: Use upstream dxvk.
We no longer carry any downstream patches.
2022-06-03 14:26:11 +03:00
Arkadiusz Hiler 0f50e49b85 Makefile.in: Use vk.xml included with Wine instead of downloading one. 2022-04-21 13:02:27 +03:00
Arkadiusz Hiler ec4f158666 update wine 2022-04-21 13:02:27 +03:00
Arkadiusz Hiler 1af0593ce8 update dxvk to v1.10.1 2022-04-21 13:02:27 +03:00
Arkadiusz Hiler c523ec1382 update vkd3d-proton to v2.6 2022-04-21 13:02:27 +03:00
Arkadiusz Hiler f487cf436e update dxvk-nvapi to v0.5.3 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
Arkadiusz Hiler 76406455ac Build most of the fonts in the container.
We can move everything but Liberation fonts build to the container.
Sadly those require newer version of fontforge than the one available in
the Steam RT.

There's some extra logic necessary to assure that font build triggers in
the container with the default/all targets.

This removes the requirement to have afdko and fonttools installed on
the host.
2022-04-05 18:13:11 +03:00
Arkadiusz Hiler 701dad161f configure.sh: Don't check for autoconf.
It's not required on the host since
44d9fb94b2 ("build: Run autoreconf in the container.")
2022-04-05 18:13:11 +03:00
Arkadiusz Hiler d101742156 docker: Install nasm package.
Required by dav1d. This got lost somewhere between rebases and branches.
2022-04-05 18:13:11 +03:00
Arkadiusz Hiler 43bfd2a6ae docker: Install fonttools package. 2022-04-05 18:13:11 +03:00
Arkadiusz Hiler d9ae1265c0 docker: Bump steamrt version to 0.20220119.0.
It contains afdko.
2022-04-05 18:13:11 +03:00
Arkadiusz Hiler 6ab3403b1e Add The Complex to IMFDXGIDeviceManager hack 2022-04-05 18:13:11 +03:00
Arkadiusz Hiler 7cb4c4dc93 update wine 2022-02-23 18:08:43 +02:00
Arkadiusz Hiler b7d532badf update vkd3d-proton to v2.5-146-g33f17cc7 2022-02-11 17:39:00 +02:00
Arkadiusz Hiler e97e717175 update dxvk-nvapi to v0.5.2 2022-02-11 17:39:00 +02:00
Arkadiusz Hiler 2a5b25a7a2 update dxvk to upstream v1.9.4
we can drop all the proton-specific customizations now that dxvk's dgxi
is the default one and wined3d interop is gone from vrclient
2022-02-11 17:39:00 +02:00
Arkadiusz Hiler 053954076c Update wine 2022-02-11 17:39:00 +02:00
Arkadiusz Hiler 9a07890d7e vrclient: Remove wined3d interop.
DXVK interop is still in place.
2022-01-24 22:53:20 +02:00
Arkadiusz Hiler 4070272852 Use github gstreamer mirrors.
Freedesktop tends to have their https not working these days plus it's
better to rely only on one hosting service instead of multiple.

Link: https://gitlab.freedesktop.org/freedesktop/freedesktop/-/issues/407
2022-01-19 11:29:55 +02:00
Arkadiusz Hiler 2c19e6fd92 Makefile.in: Override assignment of DOCKER_OPTS.
... so that users can use it to provide extra options for docker without
overriding CCACHE/ROOTLESS logic.
2022-01-19 11:29:55 +02:00
Arkadiusz Hiler b502860b34 vkd3d: Update submodule's url to github 2022-01-19 11:29:54 +02:00
Arkadiusz Hiler 100dfb9476 Makefile: Use correct paths for dlls build with winemaker 2022-01-19 11:29:54 +02:00
Arkadiusz Hiler f28e37b95c configure: Autodetect docker or podman 2022-01-19 11:29:54 +02:00
Arkadiusz Hiler 2443100316 update vkd3d-proton to v2.5-88-gc0a3fa8a 2021-12-06 13:01:04 +02:00
Arkadiusz Hiler f158f52e44 update wine 2021-12-03 15:21:12 +02:00
Arkadiusz Hiler 50b4c8785f update wine 2021-11-22 21:10:16 +02:00
Arkadiusz Hiler ea7eaa41d1 update vkd3d-proton to v2.5-50-g0251b404 2021-11-22 17:39:01 +02:00
Arkadiusz Hiler 3d5c0375a7 update dxvk to v1.9.2-13-g714ca482 2021-11-22 17:38:54 +02:00
Arkadiusz Hiler e252df46d9 update dxvk-nvapi to v0.4-37-gacbcf35 2021-11-19 18:35:48 +02:00
Arkadiusz Hiler 3e4e8be82c proton: Add disablelibglesv2 compat config option.
Some games and launcher based on older CEF / Chromium versions require
this to render properly.

CW-Bug-Id: #19501
CW-Bug-Id: #19483
2021-11-12 17:28:23 +02:00
Arkadiusz Hiler cc9c109bf6 proton: Add usenativexinput13 compat config option.
Various games using KT Engine like recent WRC and TT Isle of Man, when
run in a win10 prefix, try to load UWP/xinput1_3.dll that ships with the
games. It seems to be mostly-compatible xinput implementation built on
top of windows.gaming.input.dll.

However if we try to replace it with the builtin the game crashes
because it tries to call entry points that are not available in the
original xinput (that's the "mostly-compatible" part), so we need this
override.

Since our windows.gaming.input.dll implementation is just a stub
controllers other than steering wheels (which are handled through
dinput) do not work.
2021-11-11 18:36:08 +02:00
Arkadiusz Hiler 2983a44781 build: Respect concurrency limit when building with cargo. 2021-11-11 18:36:07 +02:00
Arkadiusz Hiler 158e04cb05 configure: Mention that people may need to install afdko using pip. 2021-11-11 18:36:07 +02:00
Arkadiusz Hiler 9d98dd3391 Vagrantfile: Add mitigation for GitHub's git protocol deprecation.
The planned brownouts already cause problems.

Link: https://github.blog/2021-09-01-improving-git-protocol-security-github/
2021-11-11 18:36:07 +02:00
Arkadiusz Hiler 49602674d0 Vagrantfile: Install python3 version of afdko. 2021-11-11 18:36:07 +02:00
Arkadiusz Hiler 99a58cf845 Make README more digestible 2021-11-11 18:36:07 +02:00
Arkadiusz Hiler 06c9f221ec proton: Log the kernel version. 2021-11-11 18:36:07 +02:00
Arkadiusz Hiler 5536e50175 update wine 2021-09-29 16:27:35 +03:00
Arkadiusz Hiler 0254a0fe15 update dxvk to v1.9.2-7-gb63ceeda 2021-09-29 16:27:27 +03:00
Arkadiusz Hiler 1db7f930a9 update vkd3d-proton to v2.4-101-g173b8ece 2021-09-24 20:22:55 +03:00
Arkadiusz Hiler ed7c5db865 docs: Add Vulkan section to PRIME.md. 2021-08-12 08:54:18 -05:00
Arkadiusz Hiler b82289bd0d build: Add support for relabeling container volumes. 2021-08-12 08:53:50 -05:00
Arkadiusz Hiler 6f35d1e8bd docs: Update PRIME.
To reflect the switch to DXVK's DXGI.
2021-06-25 10:42:53 -05:00
Arkadiusz Hiler 5df15e1149 README: Document the VM-less build. 2021-06-17 15:24:39 -05:00
Arkadiusz Hiler fc18afd71e configure.sh: Expose --enable-ccache.
Until now the option had to be added by hand to the Makefile or
specified each `make` invocation.
2021-06-17 15:24:39 -05:00
Arkadiusz Hiler c52532efce configure.sh: Detect rootless container setups.
Until now the option had to be added by hand to the Makefile or
specified each `make` invocation.
2021-06-17 15:24:39 -05:00
Arkadiusz Hiler 82ae47758f configure.sh: Add option to select container engine.
Configure will also test the container engine by trying to run the
selected SDK image.

This may make the first configure a bit slow, as it downloads the image,
but after that the SDK will be cached locally.
2021-06-17 15:24:39 -05:00
Arkadiusz Hiler 33814e973d configure.sh: Look for AFDKO.
Debian-like distributions install AFDKO's executables into libexec and
provide an `afdko` helper to call them.

Python's pip installs the executables in bin.

Let's support both.
2021-06-17 15:24:39 -05:00