summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO23
-rw-r--r--PKGBUILD81
-rw-r--r--dxvk-extraopts.patch70
-rw-r--r--proton-unfuck_makefile.patch67
4 files changed, 170 insertions, 71 deletions
diff --git a/.SRCINFO b/.SRCINFO
index b80b0a28778e..236d9686676d 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = proton-native
pkgdesc = Compatibility tool for Steam Play based on Wine and additional components. Monolithic distribution
- pkgver = 4.11.11
- pkgrel = 3
+ pkgver = 4.11.12
+ pkgrel = 1
url = https://github.com/ValveSoftware/Proton
arch = x86_64
license = GPL
@@ -12,6 +12,7 @@ pkgbase = proton-native
makedepends = fontforge
makedepends = flex
makedepends = gcc>=4.5.0-2
+ makedepends = mingw-w64-gcc
makedepends = giflib
makedepends = lib32-giflib
makedepends = libpng
@@ -94,9 +95,8 @@ pkgbase = proton-native
makedepends = desktop-file-utils
makedepends = python
makedepends = steam-native-runtime
- makedepends = wine-gecko=2.47
- makedepends = wine-mono-bin=4.9.4
- makedepends = dxvk>=1.5
+ makedepends = wine-gecko>=2.47
+ makedepends = wine-mono-bin>=4.9.4
depends = fontconfig
depends = lib32-fontconfig
depends = lcms2
@@ -128,9 +128,8 @@ pkgbase = proton-native
depends = desktop-file-utils
depends = python
depends = steam-native-runtime
- depends = wine-gecko=2.47
- depends = wine-mono-bin=4.9.4
- depends = dxvk>=1.5
+ depends = wine-gecko>=2.47
+ depends = wine-mono-bin>=4.9.4
optdepends = giflib
optdepends = lib32-giflib
optdepends = libpng
@@ -171,9 +170,10 @@ pkgbase = proton-native
optdepends = dosbox
provides = proton-native
conflicts = proton-native
- source = proton::git+https://github.com/ValveSoftware/Proton.git#tag=proton-4.11-11
+ source = proton::git+https://github.com/ValveSoftware/Proton.git#tag=proton-4.11-12
source = wine-valve::git+https://github.com/ValveSoftware/wine.git
source = vkd3d-valve::git+https://github.com/ValveSoftware/vkd3d.git
+ source = dxvk-valve::git+https://github.com/ValveSoftware/dxvk.git
source = openvr::git+https://github.com/ValveSoftware/openvr.git
source = ffmpeg::git+https://git.ffmpeg.org/ffmpeg.git
source = liberation-fonts::git+https://github.com/liberationfonts/liberation-fonts.git
@@ -182,6 +182,7 @@ pkgbase = proton-native
source = FAudio::git+https://github.com/FNA-XNA/FAudio.git
source = proton-unfuck_makefile.patch
source = proton-disable_lock.patch
+ source = dxvk-extraopts.patch
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
@@ -191,8 +192,10 @@ pkgbase = proton-native
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
- sha256sums = 4907e6005989d349336ee8c53c015a9cb3863c9ed2d147967c5f2603500099b4
+ sha256sums = SKIP
+ sha256sums = 08857165b3b460cba490c31bb8fac25af61092efbcee4d2028445eb372a3148a
sha256sums = 7418f1ceca081e1b68d933ea6dd5da0351c7cc26e41667e3b3bc49c030504782
+ sha256sums = 15fc8d8a4465ffc69897f0264ecb08d95f4b0fb00ec45dc8cb542f14c8808ef3
pkgname = proton-native
diff --git a/PKGBUILD b/PKGBUILD
index 022bd173aa18..f997ef8ad694 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,12 +1,12 @@
# Maintainer: loathingkernel <loathingkernel _a_ gmail _d_ com>
pkgname=proton-native
-_pkgver=4.11-11
+_pkgver=4.11-12
pkgver=${_pkgver//-/.}
_geckover=2.47
_monover=4.9.4
-_dxvkver=1.5
-pkgrel=3
+#_dxvkver=1.5
+pkgrel=1
pkgdesc="Compatibility tool for Steam Play based on Wine and additional components. Monolithic distribution"
arch=(x86_64)
url="https://github.com/ValveSoftware/Proton"
@@ -31,10 +31,11 @@ depends=(
steam-native-runtime
"wine-gecko>=$_geckover"
"wine-mono-bin>=$_monover"
- "dxvk>=$_dxvkver"
+# "dxvk>=$_dxvkver"
)
makedepends=(autoconf ncurses bison perl fontforge flex
'gcc>=4.5.0-2'
+ mingw-w64-gcc
giflib lib32-giflib
libpng lib32-libpng
gnutls lib32-gnutls
@@ -101,6 +102,7 @@ source=(
proton::git+https://github.com/ValveSoftware/Proton.git#tag=proton-$_pkgver
wine-valve::git+https://github.com/ValveSoftware/wine.git
vkd3d-valve::git+https://github.com/ValveSoftware/vkd3d.git
+ dxvk-valve::git+https://github.com/ValveSoftware/dxvk.git
openvr::git+https://github.com/ValveSoftware/openvr.git
ffmpeg::git+https://git.ffmpeg.org/ffmpeg.git
liberation-fonts::git+https://github.com/liberationfonts/liberation-fonts.git
@@ -109,6 +111,7 @@ source=(
FAudio::git+https://github.com/FNA-XNA/FAudio.git
proton-unfuck_makefile.patch
proton-disable_lock.patch
+ dxvk-extraopts.patch
)
sha256sums=(
SKIP
@@ -120,8 +123,10 @@ sha256sums=(
SKIP
SKIP
SKIP
- '4907e6005989d349336ee8c53c015a9cb3863c9ed2d147967c5f2603500099b4'
+ SKIP
+ '08857165b3b460cba490c31bb8fac25af61092efbcee4d2028445eb372a3148a'
'7418f1ceca081e1b68d933ea6dd5da0351c7cc26e41667e3b3bc49c030504782'
+ '15fc8d8a4465ffc69897f0264ecb08d95f4b0fb00ec45dc8cb542f14c8808ef3'
)
prepare() {
@@ -134,7 +139,7 @@ prepare() {
git submodule update "${submodule}"
done
- for submodule in wine vkd3d; do
+ for submodule in wine vkd3d dxvk; do
git submodule init "${submodule}"
git config submodule."${submodule}".url ../"${submodule#*/}"-valve
git submodule update "${submodule}"
@@ -142,6 +147,44 @@ prepare() {
patch -p1 -i "$srcdir"/proton-unfuck_makefile.patch
patch -p1 -i "$srcdir"/proton-disable_lock.patch
+
+ # Uncomment to enable extra optimizations
+ # Patch crossfiles with extra optimizations from makepkg.conf
+ patch -p1 -i "$srcdir"/dxvk-extraopts.patch
+ local dxvk_cflags="$CFLAGS"
+ local dxvk_ldflags="$LDFLAGS"
+ # Filter known bad flags before applying optimizations
+ # If using -march=native and the CPU supports AVX, launching a d3d9
+ # game can cause an Unhandled exception. The cause seems to be the
+ # combination of AVX instructions and tree vectorization (implied by O3),
+ # all tested archictures from sandybridge to haswell are affected.
+ # Disabling either AVX (and AVX2 as a side-effect) or tree
+ # vectorization fixes the issue. I am not sure which one is better
+ # to disable so below you can choose. Append either of these flags.
+ # Relevant Wine issues
+ # https://bugs.winehq.org/show_bug.cgi?id=45289
+ # https://bugs.winehq.org/show_bug.cgi?id=43516
+ dxvk_cflags+=" -mno-avx"
+ #CFLAGS+=" -fno-tree-vectorize"
+ # Filter fstack-protector flag for MingW.
+ # https://github.com/Joshua-Ashton/d9vk/issues/476
+ dxvk_cflags+=" -fno-stack-protector"
+ #CFLAGS="${CFLAGS// -fstack-protector+(-all|-strong)/}"
+ #CFLAGS="${CFLAGS// -fstack-protector+(?=[ ])/}"
+ # Adjust optimization level in meson arguments. This is ignored
+ # anyway because meson sets its own optimization level.
+ dxvk_cflags="${CFLAGS// -O+([0-3s]|fast)/}"
+ # Doesn't compile with these flags in MingW so remove them.
+ # They are also filtered in Wine PKGBUILDs so remove them
+ # for winelib versions too.
+ dxvk_cflags="${CFLAGS/ -fno-plt/}"
+ dxvk_ldflags="${LDFLAGS/,-z,relro,-z,now/}"
+ sed -i dxvk/build-win64.txt \
+ -e "s|@CARGS@|\'${dxvk_cflags// /\',\'}\'|g" \
+ -e "s|@LDARGS@|\'${dxvk_ldflags// /\',\'}\'|g"
+ sed -i dxvk/build-win32.txt \
+ -e "s|@CARGS@|\'${dxvk_cflags// /\',\'}\'|g" \
+ -e "s|@LDARGS@|\'${dxvk_ldflags// /\',\'}\'|g"
}
build() {
@@ -151,15 +194,7 @@ build() {
--with-ffmpeg \
--build-name="${pkgname%-git}"
- # From d9vk PKGBUILD
- # If using -march=native and the CPU supports AVX, launching a d3d9
- # game cause an Unhandled exception. The cause seems to be the
- # combination of AVX instructions and tree vectorization (implied by O3),
- # all tested archictures from sandybridge to haswell are affected.
- # Disabling either AVX (and AVX2 as a side-effect) or tree
- # vectorization fixes the issue. I am not sure which one is better
- # to disable so below you can choose. Append either of these flags.
- # Relevant Wine issues
+ # Use -mno-avx for wine too
# https://bugs.winehq.org/show_bug.cgi?id=45289
# https://bugs.winehq.org/show_bug.cgi?id=43516
export CFLAGS+=" -mno-avx"
@@ -173,7 +208,7 @@ build() {
SUBMAKE_JOBS="${MAKEFLAGS/-j/}" \
WINEESYNC=0 \
WINEFSYNC=0 \
- NO_DXVK=1 \
+ NO_DXVK=0 \
SYSTEM_GECKO=1 \
SYSTEM_MONO=1 \
make -j1 dist
@@ -191,11 +226,11 @@ package() {
ln -s /usr/share/wine/mono "$pkgdir/usr/share/steam/compatibilitytools.d/${pkgname%-git}"/dist/share/wine/mono
ln -s /usr/share/wine/gecko "$pkgdir/usr/share/steam/compatibilitytools.d/${pkgname%-git}"/dist/share/wine/gecko
- for i in d3d9.dll d3d10_1.dll d3d10core.dll d3d10.dll d3d11.dll dxgi.dll
- do
- ln -s "/usr/share/dxvk/x32/$i" \
- "$pkgdir/usr/share/steam/compatibilitytools.d/${pkgname%-git}"/dist/lib/wine/dxvk/
- ln -s "/usr/share/dxvk/x64/$i" \
- "$pkgdir/usr/share/steam/compatibilitytools.d/${pkgname%-git}"/dist/lib64/wine/dxvk/
- done
+# for i in d3d9.dll d3d10_1.dll d3d10core.dll d3d10.dll d3d11.dll dxgi.dll
+# do
+# ln -s "/usr/share/dxvk/x32/$i" \
+# "$pkgdir/usr/share/steam/compatibilitytools.d/${pkgname%-git}"/dist/lib/wine/dxvk/
+# ln -s "/usr/share/dxvk/x64/$i" \
+# "$pkgdir/usr/share/steam/compatibilitytools.d/${pkgname%-git}"/dist/lib64/wine/dxvk/
+# done
}
diff --git a/dxvk-extraopts.patch b/dxvk-extraopts.patch
new file mode 100644
index 000000000000..77ab07439631
--- /dev/null
+++ b/dxvk-extraopts.patch
@@ -0,0 +1,70 @@
+diff --git a/build-win32.txt b/build-win32.txt
+index 0865fc5e..b93a280f 100644
+--- a/dxvk/build-win32.txt
++++ b/dxvk/build-win32.txt
+@@ -5,10 +5,10 @@ ar = 'i686-w64-mingw32-ar'
+ strip = 'i686-w64-mingw32-strip'
+
+ [properties]
+-c_args=['-msse', '-msse2']
+-cpp_args=['-msse', '-msse2']
+-c_link_args = ['-static', '-static-libgcc']
+-cpp_link_args = ['-static', '-static-libgcc', '-static-libstdc++']
++c_args=['-msse', '-msse2', @CARGS@]
++cpp_args=['-msse', '-msse2', @CARGS@]
++c_link_args = ['-static', '-static-libgcc', @LDARGS@]
++cpp_link_args = ['-static', '-static-libgcc', '-static-libstdc++', @LDARGS@]
+ needs_exe_wrapper = true
+
+ [host_machine]
+diff --git a/build-win64.txt b/build-win64.txt
+index 2a7fbee3..9e3bfc2e 100644
+--- a/dxvk/build-win64.txt
++++ b/dxvk/build-win64.txt
+@@ -5,8 +5,10 @@ ar = 'x86_64-w64-mingw32-ar'
+ strip = 'x86_64-w64-mingw32-strip'
+
+ [properties]
+-c_link_args = ['-static', '-static-libgcc']
+-cpp_link_args = ['-static', '-static-libgcc', '-static-libstdc++']
++c_args=[@CARGS@]
++cpp_args=[@CARGS@]
++c_link_args = ['-static', '-static-libgcc', @LDARGS@]
++cpp_link_args = ['-static', '-static-libgcc', '-static-libstdc++', @LDARGS@]
+ needs_exe_wrapper = true
+
+ [host_machine]
+diff --git a/build-wine32.txt b/build-wine32.txt
+index ba8d34a8..ecec2eb4 100644
+--- a/dxvk/build-wine32.txt
++++ b/dxvk/build-wine32.txt
+@@ -7,9 +7,9 @@ strip = 'strip'
+ [properties]
+ needs_exe_wrapper = true
+
+-c_args=['-m32', '-msse', '-msse2', '-fvisibility=hidden']
+-cpp_args=['-m32', '-msse', '-msse2', '-fvisibility=hidden', '-fvisibility-inlines-hidden', '-D__WIDL_objidl_generated_name_0000000C=']
+-cpp_link_args=['-m32', '-mwindows']
++c_args=['-m32', '-msse', '-msse2', '-fvisibility=hidden', @CARGS@]
++cpp_args=['-m32', '-msse', '-msse2', '-fvisibility=hidden', '-fvisibility-inlines-hidden', '-D__WIDL_objidl_generated_name_0000000C=', @CARGS@]
++cpp_link_args=['-m32', '-mwindows', @LDARGS@]
+
+ [host_machine]
+ system = 'linux'
+diff --git a/build-wine64.txt b/build-wine64.txt
+index b3e028bb..fb9d98fd 100644
+--- a/dxvk/build-wine64.txt
++++ b/dxvk/build-wine64.txt
+@@ -7,9 +7,9 @@ strip = 'strip'
+ [properties]
+ needs_exe_wrapper = true
+
+-c_args=['-m64', '-fvisibility=hidden']
+-cpp_args=['-m64', '-fvisibility=hidden', '-fvisibility-inlines-hidden', '-D__WIDL_objidl_generated_name_0000000C=']
+-cpp_link_args=['-m64', '-mwindows']
++c_args=['-m64', '-fvisibility=hidden', @CARGS@]
++cpp_args=['-m64', '-fvisibility=hidden', '-fvisibility-inlines-hidden', '-D__WIDL_objidl_generated_name_0000000C=', @CARGS@]
++cpp_link_args=['-m64', '-mwindows', @LDARGS@]
+
+ [host_machine]
+ system = 'linux'
diff --git a/proton-unfuck_makefile.patch b/proton-unfuck_makefile.patch
index bc222271fbf1..c2405123e031 100644
--- a/proton-unfuck_makefile.patch
+++ b/proton-unfuck_makefile.patch
@@ -1,5 +1,5 @@
diff --git a/build/makefile_base.mak b/build/makefile_base.mak
-index d3385d8..e19bf8a 100644
+index d6578ac..05b22fd 100644
--- a/build/makefile_base.mak
+++ b/build/makefile_base.mak
@@ -90,6 +90,8 @@ SELECT_DOCKER_IMAGE :=
@@ -20,7 +20,7 @@ index d3385d8..e19bf8a 100644
SANITY_FLAGS := -fwrapv -fno-strict-aliasing
COMMON_FLAGS := $(OPTIMIZE_FLAGS) $(SANITY_FLAGS)
-@@ -196,6 +198,10 @@ FFMPEG_CROSS_LDFLAGS :=
+@@ -197,6 +199,10 @@ FFMPEG_CROSS_LDFLAGS :=
FAUDIO := $(SRCDIR)/FAudio
FAUDIO_OBJ32 := ./obj-faudio32
FAUDIO_OBJ64 := ./obj-faudio64
@@ -31,7 +31,7 @@ index d3385d8..e19bf8a 100644
LSTEAMCLIENT := $(SRCDIR)/lsteamclient
LSTEAMCLIENT32 := ./syn-lsteamclient32/lsteamclient
-@@ -212,6 +218,10 @@ WINE_DST32 := ./dist-wine32
+@@ -213,6 +219,10 @@ WINE_DST32 := ./dist-wine32
WINE_OBJ32 := ./obj-wine32
WINE_OBJ64 := ./obj-wine64
WINEMAKER := $(abspath $(WINE)/tools/winemaker/winemaker)
@@ -42,7 +42,7 @@ index d3385d8..e19bf8a 100644
# Wine outputs that need to exist for other steps (dist)
WINE_OUT_BIN := $(DST_DIR)/bin/wine64
-@@ -219,9 +229,11 @@ WINE_OUT_SERVER := $(DST_DIR)/bin/wineserver
+@@ -220,9 +230,11 @@ WINE_OUT_SERVER := $(DST_DIR)/bin/wineserver
WINE_OUT := $(WINE_OUT_BIN) $(WINE_OUT_SERVER)
# Tool-only build outputs needed for other projects
WINEGCC32 := $(TOOLS_DIR32)/bin/winegcc
@@ -54,7 +54,7 @@ index d3385d8..e19bf8a 100644
WINEBUILD64 := $(TOOLS_DIR64)/bin/winebuild
WINE_BUILDTOOLS64 := $(WINEGCC64) $(WINEBUILD64)
-@@ -255,11 +267,16 @@ VKD3D := $(SRCDIR)/vkd3d
+@@ -256,11 +268,16 @@ VKD3D := $(SRCDIR)/vkd3d
VKD3D_OBJ32 := ./obj-vkd3d32
VKD3D_OBJ64 := ./obj-vkd3d64
@@ -73,15 +73,15 @@ index d3385d8..e19bf8a 100644
BISON_VER = 3.3.2
BISON_TARBALL := bison-$(BISON_VER).tar.xz
-@@ -366,11 +383,20 @@ DIST_GECKO64 := $(DIST_GECKO_DIR)/$(GECKO64_MSI)
+@@ -368,11 +385,20 @@ DIST_GECKO64 := $(DIST_GECKO_DIR)/$(GECKO64_MSI)
DIST_WINEMONO_DIR := $(DST_DIR)/share/wine/mono
DIST_WINEMONO := $(DIST_WINEMONO_DIR)/wine-mono-$(WINEMONO_VER)
DIST_FONTS := $(DST_DIR)/share/fonts
-+DIST_DEPS := wine vrclient lsteamclient steam
++DIST_DEPS := wine vrclient lsteamclient steam dxvk
DIST_TARGETS := $(DIST_COPY_TARGETS) $(DIST_OVR32) $(DIST_OVR64) \
- $(DIST_GECKO32) $(DIST_GECKO64) $(DIST_WINEMONO) \
- $(DIST_COMPAT_MANIFEST) $(DIST_LICENSE) $(DIST_FONTS)
+ $(DIST_COMPAT_MANIFEST) $(DIST_LICENSE) $(DIST_OFL_LICENSE) $(DIST_FONTS)
+ifneq ($(SYSTEM_MONO),1) # May be disabled by configure
+DIST_TARGETS += $(DIST_WINEMONO)
@@ -92,10 +92,10 @@ index d3385d8..e19bf8a 100644
+DIST_TARGETS += $(DIST_GECKO64)
+endif # ifneq ($(SYSTEM_GECKO),1)
+
- DEPLOY_COPY_TARGETS := $(DIST_COPY_TARGETS) $(DIST_VERSION) $(DIST_LICENSE)
+ DEPLOY_COPY_TARGETS := $(DIST_COPY_TARGETS) $(DIST_VERSION) $(DIST_LICENSE) $(DIST_OFL_LICENSE)
REDIST_COPY_TARGETS := $(DEPLOY_COPY_TARGETS) $(DIST_COMPAT_MANIFEST)
-@@ -396,7 +422,7 @@ $(DIST_GECKO_DIR):
+@@ -401,7 +427,7 @@ $(DIST_GECKO_DIR):
$(DIST_GECKO64): | $(DIST_GECKO_DIR)
if [ -e "$(SRCDIR)/../gecko/$(GECKO64_MSI)" ]; then \
@@ -104,7 +104,7 @@ index d3385d8..e19bf8a 100644
else \
mkdir -p $(SRCDIR)/contrib/; \
if [ ! -e "$(SRCDIR)/contrib/$(GECKO64_MSI)" ]; then \
-@@ -408,7 +434,7 @@ $(DIST_GECKO64): | $(DIST_GECKO_DIR)
+@@ -413,7 +439,7 @@ $(DIST_GECKO64): | $(DIST_GECKO_DIR)
$(DIST_GECKO32): | $(DIST_GECKO_DIR)
if [ -e "$(SRCDIR)/../gecko/$(GECKO32_MSI)" ]; then \
@@ -113,7 +113,7 @@ index d3385d8..e19bf8a 100644
else \
mkdir -p $(SRCDIR)/contrib/; \
if [ ! -e "$(SRCDIR)/contrib/$(GECKO32_MSI)" ]; then \
-@@ -444,7 +470,9 @@ $(DIST_FONTS): fonts
+@@ -449,7 +475,9 @@ $(DIST_FONTS): fonts
ALL_TARGETS += dist
GOAL_TARGETS += dist
@@ -124,7 +124,7 @@ index d3385d8..e19bf8a 100644
echo `date '+%s'` `GIT_DIR=$(abspath $(SRCDIR)/.git) git describe --tags` > $(DIST_VERSION)
cp $(DIST_VERSION) $(DST_BASE)/
rm -rf $(abspath $(DIST_PREFIX)) && \
-@@ -507,13 +535,15 @@ $(FFMPEG_CONFIGURE_FILES64): $(FFMPEG)/configure $(MAKEFILE_DEP) | $(FFMPEG_OBJ6
+@@ -512,13 +540,15 @@ $(FFMPEG_CONFIGURE_FILES64): $(FFMPEG)/configure $(MAKEFILE_DEP) | $(FFMPEG_OBJ6
$(abspath $(FFMPEG))/configure \
--cc=$(CC_QUOTED) --cxx=$(CXX_QUOTED) \
--prefix=$(abspath $(TOOLS_DIR64)) \
@@ -141,7 +141,7 @@ index d3385d8..e19bf8a 100644
--disable-swscale \
--disable-postproc \
--disable-avfilter \
-@@ -539,17 +569,19 @@ $(FFMPEG_CONFIGURE_FILES64): $(FFMPEG)/configure $(MAKEFILE_DEP) | $(FFMPEG_OBJ6
+@@ -544,17 +574,19 @@ $(FFMPEG_CONFIGURE_FILES64): $(FFMPEG)/configure $(MAKEFILE_DEP) | $(FFMPEG_OBJ6
$(FFMPEG_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32)
$(FFMPEG_CONFIGURE_FILES32): $(FFMPEG)/configure $(MAKEFILE_DEP) | $(FFMPEG_OBJ32)
cd $(dir $@) && \
@@ -163,7 +163,7 @@ index d3385d8..e19bf8a 100644
--disable-swscale \
--disable-postproc \
--disable-avfilter \
-@@ -592,14 +624,17 @@ ffmpeg64: $(FFMPEG_CONFIGURE_FILES64)
+@@ -597,14 +629,17 @@ ffmpeg64: $(FFMPEG_CONFIGURE_FILES64)
+$(MAKE) -C $(FFMPEG_OBJ64)
+$(MAKE) -C $(FFMPEG_OBJ64) install
mkdir -pv $(DST_DIR)/lib64
@@ -183,7 +183,7 @@ index d3385d8..e19bf8a 100644
endif # ifeq ($(WITH_FFMPEG),1)
-@@ -625,19 +660,22 @@ FAUDIO_CONFIGURE_FILES32 := $(FAUDIO_OBJ32)/Makefile
+@@ -630,19 +665,22 @@ FAUDIO_CONFIGURE_FILES32 := $(FAUDIO_OBJ32)/Makefile
FAUDIO_CONFIGURE_FILES64 := $(FAUDIO_OBJ64)/Makefile
$(FAUDIO_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32)
@@ -212,7 +212,7 @@ index d3385d8..e19bf8a 100644
faudio32: SHELL = $(CONTAINER_SHELL32)
faudio32: $(FAUDIO_CONFIGURE_FILES32)
-@@ -827,36 +865,50 @@ WINE32_MAKE_ARGS := \
+@@ -832,36 +870,50 @@ WINE32_MAKE_ARGS := \
# 64bit-configure
$(WINE_CONFIGURE_FILES64): SHELL = $(CONTAINER_SHELL64)
@@ -235,7 +235,7 @@ index d3385d8..e19bf8a 100644
- BISON=$(abspath $(BISON_BIN64)) \
+ $(WINE_BISON64) \
CFLAGS="-I$(abspath $(TOOLS_DIR64))/include -g $(COMMON_FLAGS)" \
- CXXFLAGS="-I$(abspath $(TOOLS_DIR64))/include -g $(COMMON_FLAGS) -fno-gnu-unique -std=c++17" \
+ CXXFLAGS="-I$(abspath $(TOOLS_DIR64))/include -g $(COMMON_FLAGS) -std=c++17" \
- LDFLAGS=-L$(abspath $(TOOLS_DIR64))/lib \
- PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR64))/lib/pkgconfig \
+ LDFLAGS="-L$(abspath $(TOOLS_DIR64))/lib -Wl,-rpath-link,$(abspath $(TOOLS_DIR64))/lib" \
@@ -263,7 +263,7 @@ index d3385d8..e19bf8a 100644
- BISON=$(abspath $(BISON_BIN32)) \
+ $(WINE_BISON32) \
CFLAGS="-I$(abspath $(TOOLS_DIR32))/include -g $(COMMON_FLAGS)" \
- CXXFLAGS="-I$(abspath $(TOOLS_DIR32))/include -g $(COMMON_FLAGS) -fno-gnu-unique -std=c++17" \
+ CXXFLAGS="-I$(abspath $(TOOLS_DIR32))/include -g $(COMMON_FLAGS) -std=c++17" \
- LDFLAGS=-L$(abspath $(TOOLS_DIR32))/lib \
- PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR32))/lib/pkgconfig \
+ LDFLAGS="-L$(abspath $(TOOLS_DIR32))/lib -Wl,-rpath-link,$(abspath $(TOOLS_DIR32))/lib" \
@@ -271,7 +271,7 @@ index d3385d8..e19bf8a 100644
CC=$(CC_QUOTED) \
CXX=$(CXX_QUOTED)
-@@ -1011,6 +1063,8 @@ vrclient32: $(VRCLIENT_CONFIGURE_FILES32) | $(WINE_BUILDTOOLS32) $(filter $(MAKE
+@@ -1016,6 +1068,8 @@ vrclient32: $(VRCLIENT_CONFIGURE_FILES32) | $(WINE_BUILDTOOLS32) $(filter $(MAKE
## Create & configure object directory for cmake
@@ -280,7 +280,7 @@ index d3385d8..e19bf8a 100644
CMAKE_CONFIGURE_FILES32 := $(CMAKE_OBJ32)/Makefile
CMAKE_CONFIGURE_FILES64 := $(CMAKE_OBJ64)/Makefile
-@@ -1062,12 +1116,23 @@ cmake32-intermediate: $(CMAKE_CONFIGURE_FILES32) $(filter $(MAKECMDGOALS),cmake3
+@@ -1067,12 +1121,23 @@ cmake32-intermediate: $(CMAKE_CONFIGURE_FILES32) $(filter $(MAKECMDGOALS),cmake3
+$(MAKE) -C $(CMAKE_OBJ32) install
touch $(CMAKE_BIN32)
@@ -304,7 +304,7 @@ index d3385d8..e19bf8a 100644
$(BISON):
if [ -e "$(SRCDIR)/../bison/$(BISON_TARBALL)" ]; then \
mkdir -p $(dir $@); \
-@@ -1132,6 +1197,15 @@ bison32-intermediate: $(BISON_CONFIGURE_FILES32) $(filter $(MAKECMDGOALS),bison3
+@@ -1137,6 +1202,15 @@ bison32-intermediate: $(BISON_CONFIGURE_FILES32) $(filter $(MAKECMDGOALS),bison3
+$(MAKE) -C $(BISON_OBJ32) install
touch $(BISON_BIN32)
@@ -320,17 +320,8 @@ index d3385d8..e19bf8a 100644
##
## dxvk
##
-@@ -1144,6 +1218,8 @@ ifneq ($(NO_DXVK),1) # May be disabled by configure
-
- DXVK_CONFIGURE_FILES32 := $(DXVK_OBJ32)/build.ninja
- DXVK_CONFIGURE_FILES64 := $(DXVK_OBJ64)/build.ninja
-+COMMA := ,
-+MESON_CFLAGS := $(subst $() $(),'$(COMMA)',$(CFLAGS))
-
- # 64bit-configure. Remove coredata file if already configured (due to e.g. makefile changing)
- $(DXVK_CONFIGURE_FILES64): $(MAKEFILE_DEP) $(DXVK)/build-win64.txt | $(DXVK_OBJ64)
-@@ -1202,6 +1278,8 @@ dxvk32: $(DXVK_CONFIGURE_FILES32)
- cp "$(DXVK_OBJ32)"/bin/d3d9.dll "$(DST_DIR)"/lib/wine/dxvk/
+@@ -1209,6 +1283,8 @@ dxvk32: $(DXVK_CONFIGURE_FILES32)
+ cp "$(DXVK_OBJ32)"/bin/dxvk_config.dll "$(DST_DIR)"/lib/wine/dxvk
if test -e $(SRCDIR)/.git; then ( cd $(SRCDIR) && git submodule status -- dxvk ) > "$(DST_DIR)"/lib/wine/dxvk/version; fi
+DIST_DEPS += dxvk
@@ -338,7 +329,7 @@ index d3385d8..e19bf8a 100644
endif # NO_DXVK
# Vulkan-Headers
-@@ -1210,24 +1288,24 @@ VULKAN_H_CONFIGURE_FILES32 := $(VULKAN_H_OBJ32)/Makefile
+@@ -1217,24 +1293,24 @@ VULKAN_H_CONFIGURE_FILES32 := $(VULKAN_H_OBJ32)/Makefile
VULKAN_H_CONFIGURE_FILES64 := $(VULKAN_H_OBJ64)/Makefile
$(VULKAN_H_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32)
@@ -369,7 +360,7 @@ index d3385d8..e19bf8a 100644
# SPIRV-Headers
-@@ -1235,24 +1313,24 @@ SPIRV_H_CONFIGURE_FILES32 := $(SPIRV_H_OBJ32)/Makefile
+@@ -1242,24 +1318,24 @@ SPIRV_H_CONFIGURE_FILES32 := $(SPIRV_H_OBJ32)/Makefile
SPIRV_H_CONFIGURE_FILES64 := $(SPIRV_H_OBJ64)/Makefile
$(SPIRV_H_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32)
@@ -400,7 +391,7 @@ index d3385d8..e19bf8a 100644
# widl; required for vkd3d, which is built before wine
-@@ -1260,16 +1338,23 @@ WINEWIDL_CONFIGURE_FILES64 := $(WINEWIDL_OBJ64)/Makefile
+@@ -1267,16 +1343,23 @@ WINEWIDL_CONFIGURE_FILES64 := $(WINEWIDL_OBJ64)/Makefile
WINEWIDL_CONFIGURE_FILES32 := $(WINEWIDL_OBJ32)/Makefile
$(WINEWIDL_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32)
@@ -429,7 +420,7 @@ index d3385d8..e19bf8a 100644
CC=$(CC_QUOTED) \
CXX=$(CXX_QUOTED)
-@@ -1279,17 +1364,24 @@ $(WINEWIDL32): $(WINEWIDL_CONFIGURE_FILES32)
+@@ -1286,17 +1369,24 @@ $(WINEWIDL32): $(WINEWIDL_CONFIGURE_FILES32)
make tools/widl
$(WINEWIDL_CONFIGURE_FILES64): SHELL = $(CONTAINER_SHELL64)
@@ -458,7 +449,7 @@ index d3385d8..e19bf8a 100644
CC=$(CC_QUOTED) \
CXX=$(CXX_QUOTED)
-@@ -1314,7 +1406,7 @@ $(VKD3D_CONFIGURE_FILES32): $(MAKEFILE_DEP) $(VULKAN_H32) $(SPIRV_H32) $(VKD3D)/
+@@ -1321,7 +1411,7 @@ $(VKD3D_CONFIGURE_FILES32): $(MAKEFILE_DEP) $(VULKAN_H32) $(SPIRV_H32) $(VKD3D)/
$(abspath $(VKD3D))/configure \
--disable-tests \
--prefix=$(abspath $(TOOLS_DIR32)) \