summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorStelios Tsampas2022-06-30 12:12:44 +0300
committerStelios Tsampas2022-06-30 13:06:12 +0300
commitffdee6919df5e872f4078fde289b854254b5e8ab (patch)
tree6da8684f9997652deca9134547587662e4878460
parent15fd7b9795d668fa63bfda0503c43d21ff20e3d5 (diff)
downloadaur-ffdee6919df5e872f4078fde289b854254b5e8ab.tar.gz
Version GE-Proton7-24
Also add a disabled by default patch that removes WINE_FULLSCREEN_FSR_MODE option and instead autogenerates FSR resolutions based on display resolution
-rw-r--r--.SRCINFO28
-rw-r--r--0001-AUR-pkgbuild-changes.patch151
-rw-r--r--0001-Add-PROTON_USER_COMPAT_DATA-environment-variable.patch (renamed from proton-user_compat_data.patch)17
-rw-r--r--PKGBUILD34
-rw-r--r--wine-autogen_fsr_res.patch411
-rw-r--r--wine-more_8x5_res.patch15
6 files changed, 541 insertions, 115 deletions
diff --git a/.SRCINFO b/.SRCINFO
index d7887e13b581..017793f7a00f 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = proton-ge-custom
pkgdesc = Compatibility tool for Steam Play based on Wine and additional components, GloriousEggroll's custom build
- pkgver = GE.Proton7.20
+ pkgver = GE.Proton7.24
pkgrel = 1
epoch = 2
url = https://github.com/GloriousEggroll/proton-ge-custom
@@ -21,8 +21,8 @@ pkgbase = proton-ge-custom
makedepends = nasm
makedepends = meson
makedepends = cmake
- makedepends = python-virtualenv
- makedepends = python-pip
+ makedepends = afdko
+ makedepends = python-pefile
makedepends = glslang
makedepends = vulkan-headers
makedepends = clang
@@ -115,6 +115,8 @@ pkgbase = proton-ge-custom
makedepends = lib32-libvpx
makedepends = sdl2>=2.0.16
makedepends = lib32-sdl2>=2.0.16
+ makedepends = libsoup3
+ makedepends = lib32-libsoup3
makedepends = desktop-file-utils
makedepends = python
makedepends = steam-native-runtime
@@ -157,6 +159,8 @@ pkgbase = proton-ge-custom
depends = lib32-libvpx
depends = sdl2>=2.0.16
depends = lib32-sdl2>=2.0.16
+ depends = libsoup3
+ depends = lib32-libsoup3
depends = desktop-file-utils
depends = python
depends = steam-native-runtime
@@ -205,11 +209,11 @@ pkgbase = proton-ge-custom
provides = proton
noextract = wine-gecko-2.47.2-x86.tar.xz
noextract = wine-gecko-2.47.2-x86_64.tar.xz
- noextract = wine-mono-7.2.0-x86.tar.xz
+ noextract = wine-mono-7.3.0-x86.tar.xz
options = !staticlibs
options = !lto
options = emptydirs
- source = proton-ge-custom::git+https://github.com/gloriouseggroll/proton-ge-custom.git#tag=GE-Proton7-20
+ source = proton-ge-custom::git+https://github.com/gloriouseggroll/proton-ge-custom.git#tag=GE-Proton7-24
source = wine-valve::git+https://github.com/ValveSoftware/wine.git
source = dxvk::git+https://github.com/doitsujin/dxvk.git
source = openvr::git+https://github.com/ValveSoftware/openvr.git
@@ -236,10 +240,10 @@ pkgbase = proton-ge-custom
source = gst-plugins-ugly::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly.git
source = https://dl.winehq.org/wine/wine-gecko/2.47.2/wine-gecko-2.47.2-x86.tar.xz
source = https://dl.winehq.org/wine/wine-gecko/2.47.2/wine-gecko-2.47.2-x86_64.tar.xz
- source = https://github.com/madewokherd/wine-mono/releases/download/wine-mono-7.2.0/wine-mono-7.2.0-x86.tar.xz
- source = wine-more_8x5_res.patch
+ source = https://github.com/madewokherd/wine-mono/releases/download/wine-mono-7.3.0/wine-mono-7.3.0-x86.tar.xz
+ source = wine-autogen_fsr_res.patch
source = 0001-AUR-pkgbuild-changes.patch
- source = proton-user_compat_data.patch
+ source = 0001-Add-PROTON_USER_COMPAT_DATA-environment-variable.patch
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
@@ -267,9 +271,9 @@ pkgbase = proton-ge-custom
sha256sums = SKIP
sha256sums = 8fab46ea2110b2b0beed414e3ebb4e038a3da04900e7a28492ca3c3ccf9fea94
sha256sums = b4476706a4c3f23461da98bed34f355ff623c5d2bb2da1e2fa0c6a310bc33014
- sha256sums = 25a4d08fee9197be83307e65553da450b6d4446cc9188d0a85212cc2cee2660d
- sha256sums = 9005d8169266ba0b93be30e1475fe9a3697464796f553886c155ec1d77d71215
- sha256sums = 011396ea6cb09cbf2b0cc28520a4d2d43b9ac77b1c9d7190ecc7839b3670f74e
- sha256sums = 242566c092f83a71ba06c3aefe0400af65a6fa564dd63196af54403c2c4d09e2
+ sha256sums = 60314f255031b2f4dc49f22eacfcd2b3b8b2b491120d703b4b62cc1fef0f9bdd
+ sha256sums = SKIP
+ sha256sums = fb7d1990822a3fffb7caed3d2eee0a92d2053f5f737f8ea2ad8ed21ae7458400
+ sha256sums = a23a31c2879699129c86ab9a768e7ba657496d22e27d7609709802c2821e9822
pkgname = proton-ge-custom
diff --git a/0001-AUR-pkgbuild-changes.patch b/0001-AUR-pkgbuild-changes.patch
index 354ccc4e504b..deacc3f6268e 100644
--- a/0001-AUR-pkgbuild-changes.patch
+++ b/0001-AUR-pkgbuild-changes.patch
@@ -1,23 +1,23 @@
-From cd339694d6d0322e9dee81898b71634da185e59e Mon Sep 17 00:00:00 2001
+From 9749a3aa2dc9ad381345dc6cc75181232c608491 Mon Sep 17 00:00:00 2001
From: Stelios Tsampas <loathingkernel@gmail.com>
-Date: Mon, 18 Oct 2021 22:21:12 +0300
-Subject: [PATCH 1/2] AUR pkgbuild changes
+Date: Mon, 27 Jun 2022 01:26:56 +0300
+Subject: [PATCH] AUR pkgbuild changes
---
- Makefile.in | 56 +++++++++++++++++++++++++++++++----------
+ Makefile.in | 69 ++++++++++++++++++++++++++++++++++-------
configure.sh | 2 ++
make/rules-autoconf.mk | 4 +--
make/rules-cargo.mk | 4 ++-
make/rules-cmake.mk | 4 +--
- make/rules-common.mk | 18 +++++++------
+ make/rules-common.mk | 18 ++++++-----
make/rules-configure.mk | 4 +--
make/rules-meson.mk | 2 +-
make/rules-winemaker.mk | 2 +-
- proton | 6 ++---
- 10 files changed, 69 insertions(+), 33 deletions(-)
+ proton | 6 ++--
+ 10 files changed, 84 insertions(+), 31 deletions(-)
diff --git a/Makefile.in b/Makefile.in
-index b5385130..0addf39b 100644
+index 14ccc673..f3b2138e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -63,7 +63,6 @@ ifeq ($(ENABLE_CCACHE),1)
@@ -63,49 +63,56 @@ index b5385130..0addf39b 100644
rm -rf $(abspath $(DIST_PREFIX))
python3 $(SRCDIR)/default_pfx.py $(abspath $(DIST_PREFIX)) $(abspath $(DST_DIR)) $(STEAM_RUNTIME_RUNSH)
-@@ -441,11 +441,15 @@ $(eval $(call rules-meson,dav1d,64))
- ##
+@@ -442,6 +442,8 @@ $(eval $(call rules-meson,dav1d,64))
+
- GST_COMMON_MESON_ARGS := \
+ GST_ORC_MESON_ARGS := \
+ -Db_lto=true \
+ -Db_pie=true \
-+ -Ddoc=disabled \
+ -Dorc-test=disabled \
-Dexamples=disabled \
-Dtests=disabled \
- -Dgtk_doc=disabled \
- -Dintrospection=disabled \
- -Dgobject-cast-checks=disabled \
-+ -Dorc=enabled \
- -Dglib-asserts=disabled \
- -Dglib-checks=disabled \
- -Dnls=disabled \
-@@ -469,6 +473,8 @@ GSTREAMER_MESON_ARGS := \
+@@ -458,10 +460,16 @@ $(eval $(call rules-meson,gst_orc,64))
+ ##
+
+ GSTREAMER_MESON_ARGS := \
++ -Db_lto=true \
++ -Db_pie=true \
++ -Ddoc=disabled \
++ -Dtools=disabled \
+ -Dgst_parse=false \
-Dbenchmarks=disabled \
-Dtools=disabled \
-Dbash-completion=disabled \
+ -Dptp-helper-permissions=capabilities \
+ -Ddbghelp=disabled \
- $(GST_COMMON_MESON_ARGS)
+ -Dexamples=disabled \
+ -Dtests=disabled \
+ -Dgtk_doc=disabled \
+@@ -484,6 +492,11 @@ $(eval $(call rules-meson,gstreamer,64))
+ ##
- GSTREAMER_DEPENDS = gst_orc
-@@ -505,6 +511,7 @@ GST_BASE_MESON_ARGS := \
- -Dx11=disabled \
- -Dxshm=disabled \
- -Dxvideo=disabled \
-+ -Dtools=disabled \
- $(GST_COMMON_MESON_ARGS)
-
- GST_BASE_DEPENDS = gst_orc gstreamer
-@@ -569,7 +576,7 @@ GST_GOOD_MESON_ARGS := \
- -Dwavenc=disabled \
- -Dximagesrc=disabled \
- -Dy4m=enabled \
-- -Ddoc='disabled' \
+ GST_BASE_MESON_ARGS := \
++ -Db_lto=true \
++ -Db_pie=true \
++ -Ddoc=disabled \
++ -Dorc=enabled \
+ -Dtools=disabled \
- $(GST_COMMON_MESON_ARGS)
+ -Dalsa=disabled \
+ -Daudiomixer=disabled \
+ -Daudiorate=disabled \
+@@ -525,6 +538,10 @@ $(eval $(call rules-meson,gst_base,64))
+ ##
- GST_GOOD_DEPENDS = gst_orc gstreamer gst_base
-@@ -584,6 +591,8 @@ $(eval $(call rules-meson,gst_good,64))
+ GST_GOOD_MESON_ARGS := \
++ -Db_lto=true \
++ -Db_pie=true \
++ -Ddoc=disabled \
++ -Dorc=enabled \
+ -Daalib=disabled \
+ -Dalpha=disabled \
+ -Dapetag=disabled \
+@@ -597,6 +614,8 @@ $(eval $(call rules-meson,gst_good,64))
FFMPEG_CONFIGURE_ARGS := \
--enable-shared \
@@ -114,9 +121,9 @@ index b5385130..0addf39b 100644
--disable-static \
--disable-everything \
--disable-programs \
-@@ -599,6 +608,9 @@ FFMPEG_CONFIGURE_ARGS := \
- --enable-decoder=h264 \
- --enable-decoder=aac
+@@ -620,6 +639,9 @@ FFMPEG_CONFIGURE_ARGS := \
+ --enable-decoder=aac \
+ --enable-demuxer=xwma
+FFMPEG_CONFIGURE_ARGS64 = --optflags="$(COMMON_FLAGS) $(COMMON_FLAGS64)"
+FFMPEG_CONFIGURE_ARGS32 = --optflags="$(COMMON_FLAGS) $(COMMON_FLAGS32)" --disable-inline-asm
@@ -124,24 +131,39 @@ index b5385130..0addf39b 100644
$(eval $(call rules-source,ffmpeg,$(SRCDIR)/FFmpeg))
$(eval $(call rules-configure,ffmpeg,32))
$(eval $(call rules-configure,ffmpeg,64))
-@@ -664,6 +676,8 @@ GST_BAD_MESON_ARGS := \
+@@ -664,6 +686,10 @@ $(OBJ)/.gst_plugins_rs-post-build32:
+ ##
+
+ GST_BAD_MESON_ARGS := \
++ -Db_lto=true \
++ -Db_pie=true \
++ -Ddoc=disabled \
++ -Dorc=enabled \
+ -Dfbdev=disabled \
+ -Ddecklink=disabled \
+ -Dcurl=disabled \
+@@ -683,7 +709,9 @@ GST_BAD_MESON_ARGS := \
-Dvoamrwbenc=disabled \
-Dnvcodec=disabled \
-Dx265=disabled \
+ -Dopenexr=disabled \
-+ -Dtools=disabled \
- $(GST_COMMON_MESON_ARGS)
-
- GST_BAD_DEPENDS = gst_orc gstreamer gst_base
-@@ -678,6 +692,7 @@ $(eval $(call rules-meson,gst_bad,64))
+ -Dtests=disabled \
++ -Dintrospection=disabled \
+ -Dgobject-cast-checks=disabled \
+ -Dglib-asserts=disabled \
+ -Dglib-checks=disabled \
+@@ -700,7 +728,10 @@ $(eval $(call rules-meson,gst_bad,64))
+ ##
GST_UGLY_MESON_ARGS := \
++ -Db_lto=true \
++ -Db_pie=true \
-Ddoc='disabled' \
-+ -Dtools='disabled' \
- $(GST_COMMON_MESON_ARGS)
-
- GST_UGLY_DEPENDS = gst_orc gstreamer gst_base
-@@ -809,7 +824,13 @@ WINE_SOURCE_ARGS = \
++ -Dorc=enabled \
+ -Dtests=disabled \
+ -Dgobject-cast-checks=disabled \
+ -Dglib-asserts=disabled \
+@@ -836,7 +867,13 @@ WINE_SOURCE_ARGS = \
--exclude include/config.h.in \
WINE_CONFIGURE_ARGS = \
@@ -155,7 +177,7 @@ index b5385130..0addf39b 100644
--disable-tests
WINE_CONFIGURE_ARGS64 = --enable-win64
-@@ -872,6 +893,9 @@ $(OBJ)/.vrclient-post-source:
+@@ -899,6 +936,9 @@ $(OBJ)/.vrclient-post-source:
DXVK_MESON_ARGS32 = --bindir=$(DXVK_DST32)/lib/wine/dxvk
DXVK_MESON_ARGS64 = --bindir=$(DXVK_DST64)/lib64/wine/dxvk
@@ -165,7 +187,7 @@ index b5385130..0addf39b 100644
$(eval $(call rules-source,dxvk,$(SRCDIR)/dxvk))
$(eval $(call rules-meson,dxvk,32,CROSS))
$(eval $(call rules-meson,dxvk,64,CROSS))
-@@ -894,6 +918,9 @@ $(OBJ)/.dxvk-post-build32:
+@@ -921,6 +961,9 @@ $(OBJ)/.dxvk-post-build32:
DXVK_NVAPI_MESON_ARGS32 = --bindir=$(DXVK_NVAPI_DST32)/lib/wine/nvapi
DXVK_NVAPI_MESON_ARGS64 = --bindir=$(DXVK_NVAPI_DST64)/lib64/wine/nvapi
@@ -175,11 +197,10 @@ index b5385130..0addf39b 100644
$(eval $(call rules-source,dxvk-nvapi,$(SRCDIR)/dxvk-nvapi))
$(eval $(call rules-meson,dxvk-nvapi,32,CROSS))
$(eval $(call rules-meson,dxvk-nvapi,64,CROSS))
-@@ -957,10 +984,13 @@ VKD3D_PROTON_SOURCE_ARGS = \
+@@ -984,9 +1027,13 @@ VKD3D_PROTON_SOURCE_ARGS = \
--exclude vkd3d_build.h.in \
--exclude vkd3d_version.h.in \
--VKD3D_PROTON_MESON_ARGS = -Denable_standalone_d3d12=true
+VKD3D_PROTON_MESON_ARGS = -Denable_d3d12=true
VKD3D_PROTON_MESON_ARGS32 = --bindir=$(VKD3D_PROTON_DST32)/lib/wine/vkd3d-proton
VKD3D_PROTON_MESON_ARGS64 = --bindir=$(VKD3D_PROTON_DST64)/lib64/wine/vkd3d-proton
@@ -190,7 +211,7 @@ index b5385130..0addf39b 100644
$(eval $(call rules-source,vkd3d-proton,$(SRCDIR)/vkd3d-proton))
$(eval $(call rules-meson,vkd3d-proton,32,CROSS))
$(eval $(call rules-meson,vkd3d-proton,64,CROSS))
-@@ -1198,14 +1228,14 @@ $(FONTS_OBJ)/source-han/%.ttf: $$(%.ttf_CIDFONT) $$(%.ttf_FEATURES) $$(%.ttf_SEQ
+@@ -1224,14 +1271,14 @@ $(FONTS_OBJ)/source-han/%.ttf: $$(%.ttf_CIDFONT) $$(%.ttf_FEATURES) $$(%.ttf_SEQ
mkdir -p $(FONTS_OBJ)/source-han
# Do not immediately create the target file, so that make is interrupted
# it will restart again
@@ -208,7 +229,7 @@ index b5385130..0addf39b 100644
mv $@.tmp $@
$(FONTS_OBJ)/ume-gothic/%.ttf: $$(%.ttf_FONT) $$(%.ttf_NAMETABLE_PATCH)
-@@ -1215,10 +1245,10 @@ $(FONTS_OBJ)/ume-gothic/%.ttf: $$(%.ttf_FONT) $$(%.ttf_NAMETABLE_PATCH)
+@@ -1241,10 +1288,10 @@ $(FONTS_OBJ)/ume-gothic/%.ttf: $$(%.ttf_FONT) $$(%.ttf_NAMETABLE_PATCH)
ttx -o $@ -m $($(notdir $@)_FONT) $(FONTS_OBJ)/ume-gothic/$(notdir $(basename $($(notdir $@)_NAMETABLE_PATCH))).ttx
$(simsun.ttc): $(simsun.ttf) $(nsimsun.ttf)
@@ -222,7 +243,7 @@ index b5385130..0addf39b 100644
$(micross.ttf): $(noto_sans.ttf) $(noto_sans_arabic.ttf) $(noto_sans_armenian.ttf) $(noto_sans_bengali.ttf) $(noto_sans_coptic.ttf) \
$(noto_sans_georgian.ttf) $(noto_sans_gujarati.ttf) $(noto_sans_hebrew.ttf) $(noto_sans_khmer.ttf) $(noto_sans_tamil.ttf) \
diff --git a/configure.sh b/configure.sh
-index fba2df9b..06460b0b 100755
+index 68168bff..09cd2b7f 100755
--- a/configure.sh
+++ b/configure.sh
@@ -126,6 +126,7 @@ function configure() {
@@ -386,10 +407,10 @@ index 69688a03..1c0d1d3b 100644
winebuild --$(lastword $(subst ., ,$(4))) --fake-module -E "$(basename $(4)).spec" -o "$(4).fake"
mkdir -p $$($(2)_LIBDIR$(3))/$(LIBDIR_WINE_$(3))
diff --git a/proton b/proton
-index fd9c27eb..371fd931 100755
+index 1eef11a3..0fb1d73d 100755
--- a/proton
+++ b/proton
-@@ -356,7 +356,6 @@ class Proton:
+@@ -417,7 +417,6 @@ class Proton:
self.wine_bin = self.bin_dir + "wine"
self.wine64_bin = self.bin_dir + "wine64"
self.wineserver_bin = self.bin_dir + "wineserver"
@@ -397,7 +418,7 @@ index fd9c27eb..371fd931 100755
def path(self, d):
return self.base_dir + d
-@@ -1591,8 +1590,6 @@ if __name__ == "__main__":
+@@ -1670,8 +1669,6 @@ if __name__ == "__main__":
g_proton = Proton(os.path.dirname(sys.argv[0]))
@@ -406,7 +427,7 @@ index fd9c27eb..371fd931 100755
g_compatdata = CompatData(os.environ["STEAM_COMPAT_DATA_PATH"])
-@@ -1601,7 +1598,8 @@ if __name__ == "__main__":
+@@ -1680,7 +1677,8 @@ if __name__ == "__main__":
g_session.init_wine()
if g_proton.missing_default_prefix():
@@ -414,8 +435,8 @@ index fd9c27eb..371fd931 100755
+ log("Default prefix is missing, something is very wrong.")
+ sys.exit(1)
- import protonfixes
+ g_session.init_session(sys.argv[1] != "runinprefix")
--
-2.36.1
+2.37.0
diff --git a/proton-user_compat_data.patch b/0001-Add-PROTON_USER_COMPAT_DATA-environment-variable.patch
index f557a6867b6e..0002165a5933 100644
--- a/proton-user_compat_data.patch
+++ b/0001-Add-PROTON_USER_COMPAT_DATA-environment-variable.patch
@@ -1,8 +1,18 @@
+From e56f57e0f9bc87dd0df668c4372495b837f07f4b Mon Sep 17 00:00:00 2001
+From: Stelios Tsampas <loathingkernel@gmail.com>
+Date: Mon, 27 Jun 2022 01:20:04 +0300
+Subject: [PATCH] Add PROTON_USER_COMPAT_DATA environment variable
+
+If set, stores proton prefixes in the Steam Library located in the HOME directory
+---
+ proton | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
diff --git a/proton b/proton
-index aed378c..c04fa15 100755
+index 30e9ed7e..1bb49341 100755
--- a/proton
+++ b/proton
-@@ -1461,6 +1461,15 @@ if __name__ == "__main__":
+@@ -1625,6 +1625,15 @@ if __name__ == "__main__":
log("No compat data path?")
sys.exit(1)
@@ -18,3 +28,6 @@ index aed378c..c04fa15 100755
g_proton = Proton(os.path.dirname(sys.argv[0]))
g_proton.cleanup_legacy_dist()
+--
+2.36.1
+
diff --git a/PKGBUILD b/PKGBUILD
index 36c5c004ea37..7a0dcd8c9c23 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,11 +1,11 @@
# Maintainer: loathingkernel <loathingkernel _a_ gmail _d_ com>
pkgname=proton-ge-custom
-_srctag=GE-Proton7-20
+_srctag=GE-Proton7-24
_commit=
pkgver=${_srctag//-/.}
_geckover=2.47.2
-_monover=7.2.0
+_monover=7.3.0
pkgrel=1
epoch=2
pkgdesc="Compatibility tool for Steam Play based on Wine and additional components, GloriousEggroll's custom build"
@@ -34,6 +34,7 @@ depends=(
faudio lib32-faudio
libvpx lib32-libvpx
'sdl2>=2.0.16' 'lib32-sdl2>=2.0.16'
+ libsoup3 lib32-libsoup3
desktop-file-utils
python
steam-native-runtime
@@ -41,7 +42,7 @@ depends=(
)
makedepends=(autoconf bison perl fontforge flex mingw-w64-gcc
- git wget rsync mingw-w64-tools lld nasm meson cmake python-virtualenv python-pip
+ git wget rsync mingw-w64-tools lld nasm meson cmake afdko python-pefile
glslang vulkan-headers
clang
giflib lib32-giflib
@@ -129,9 +130,9 @@ source=(
gst-plugins-ugly::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly.git
https://dl.winehq.org/wine/wine-gecko/${_geckover}/wine-gecko-${_geckover}-x86{,_64}.tar.xz
https://github.com/madewokherd/wine-mono/releases/download/wine-mono-${_monover}/wine-mono-${_monover}-x86.tar.xz
- wine-more_8x5_res.patch
+ wine-autogen_fsr_res.patch
0001-AUR-pkgbuild-changes.patch
- proton-user_compat_data.patch
+ 0001-Add-PROTON_USER_COMPAT_DATA-environment-variable.patch
)
noextract=(
wine-gecko-${_geckover}-{x86,x86_64}.tar.xz
@@ -170,15 +171,6 @@ EOF
}
prepare() {
- # I know this is fugly and it should NOT be done
- # but the afdko package from AUR breaks regularly.
- # Install it from pip in a virtualenv
- [ -d build_venv ] && rm -rf build_venv
- virtualenv --app-data "$srcdir"/build_venv/cache --no-wheel build_venv
- source build_venv/bin/activate
- pip install --no-cache-dir meson==0.59.3
- pip install --no-cache-dir afdko
- pip install --no-cache-dir pefile
# Provide wrappers to compiler tools
rm -rf wrappers && mkdir wrappers
@@ -264,11 +256,12 @@ prepare() {
# Fix openldap 2.5+ detection
sed 's/-lldap_r/-lldap/' -i configure
# Adds more 16:10 resolutions for use with FSR
- patch -p1 -i "$srcdir"/wine-more_8x5_res.patch
+ # Do not report bugs to GE if you enable this, this is still being tested
+ #patch -p1 -i "$srcdir"/wine-autogen_fsr_res.patch
popd
patch -p1 -i "$srcdir"/0001-AUR-pkgbuild-changes.patch
- patch -p1 -i "$srcdir"/proton-user_compat_data.patch
+ patch -p1 -i "$srcdir"/0001-Add-PROTON_USER_COMPAT_DATA-environment-variable.patch
# Remove repos from srcdir to save space
for submodule in "${_submodules[@]}"; do
@@ -280,7 +273,6 @@ prepare() {
}
build() {
- source build_venv/bin/activate
export PATH="$(pwd)/wrappers:$PATH"
cd build
@@ -402,7 +394,7 @@ sha256sums=('SKIP'
'SKIP'
'8fab46ea2110b2b0beed414e3ebb4e038a3da04900e7a28492ca3c3ccf9fea94'
'b4476706a4c3f23461da98bed34f355ff623c5d2bb2da1e2fa0c6a310bc33014'
- '25a4d08fee9197be83307e65553da450b6d4446cc9188d0a85212cc2cee2660d'
- '9005d8169266ba0b93be30e1475fe9a3697464796f553886c155ec1d77d71215'
- '011396ea6cb09cbf2b0cc28520a4d2d43b9ac77b1c9d7190ecc7839b3670f74e'
- '242566c092f83a71ba06c3aefe0400af65a6fa564dd63196af54403c2c4d09e2')
+ '60314f255031b2f4dc49f22eacfcd2b3b8b2b491120d703b4b62cc1fef0f9bdd'
+ 'SKIP'
+ 'fb7d1990822a3fffb7caed3d2eee0a92d2053f5f737f8ea2ad8ed21ae7458400'
+ 'a23a31c2879699129c86ab9a768e7ba657496d22e27d7609709802c2821e9822')
diff --git a/wine-autogen_fsr_res.patch b/wine-autogen_fsr_res.patch
new file mode 100644
index 000000000000..8984303fdd39
--- /dev/null
+++ b/wine-autogen_fsr_res.patch
@@ -0,0 +1,411 @@
+From c4c25c56fd167fc6353162ff68539162757dcc20 Mon Sep 17 00:00:00 2001
+From: Stelios Tsampas <loathingkernel@gmail.com>
+Date: Wed, 29 Jun 2022 14:33:07 +0300
+Subject: [PATCH] fshack - Generate FSR resolutions based on native aspect
+ ratio
+
+The base list of resolutions remains unchanged.
+If FSR is enabled it adds FSR resolutions for that.
+If the user specifed a custom resolution, adds that to the list too.
+---
+ dlls/winex11.drv/fs.c | 293 +++++++++++++-----------------------------
+ 1 file changed, 87 insertions(+), 206 deletions(-)
+
+diff --git a/dlls/winex11.drv/fs.c b/dlls/winex11.drv/fs.c
+index 70e6b84ffad..b8943b946ef 100644
+--- a/dlls/winex11.drv/fs.c
++++ b/dlls/winex11.drv/fs.c
+@@ -83,18 +83,18 @@ resolution list:
+ {2560, 720}, // 32:9 - 'FSR 32:9 Performance'
+ {3012, 847}, // 32:9 - 'FSR 32:9 Balanced'
+ {3413, 960}, // 32:9 - 'FSR 32:9 Quality'
+- {3938, 1108}, // 32:9 - 'FSR 32:9 Ultra Quality'
++ {3938, 1108}, // 32:9 - 'FSR 32:9 Ultra Quality'
+
+ 4K:
+- {1920, 1080}, // 16:9 - 'FSR 2160p Performance'
++ {1920, 1080}, // 16:9 - 'FSR 2160p Performance'
+ {2259, 1270}, // 16:9 - 'FSR 2160p Balanced'
+- {2560, 1440}, // 16:9 - 'FSR 2160p Quality'
++ {2560, 1440}, // 16:9 - 'FSR 2160p Quality'
+ {2954, 1662}, // 16:9 - 'FSR 2160p Ultra Quality'
+
+ Ultra-wide:
+- {1720, 720}, // 21:9 - 'FSR ultra-wide Performance'
+- {2024, 847}, // 21:9 - 'FSR ultra-wide Balanced'
+- {2293, 960}, // 21:9 - 'FSR ultra-wide Quality'
++ {1720, 720}, // 21:9 - 'FSR ultra-wide Performance'
++ {2024, 847}, // 21:9 - 'FSR ultra-wide Balanced'
++ {2293, 960}, // 21:9 - 'FSR ultra-wide Quality'
+ {2646, 1108}, // 21:9 - 'FSR ultra-wide Ultra Quality'
+
+ 2K:
+@@ -104,7 +104,7 @@ resolution list:
+ {1970, 1108}, // 16:9 - 'FSR 1440p Ultra Quality'
+
+ 1080p:
+- {960, 640}, // 16:9 - 'FSR 1080p Performance'
++ {960, 640}, // 16:9 - 'FSR 1080p Performance'
+ {1129, 635}, // 16:9 - 'FSR 1080p Balanced'
+ {1280, 720}, // 16:9 - 'FSR 1080p Quality'
+ {1477, 831}, // 16:9 - 'FSR 1080p Ultra Quality'
+@@ -119,7 +119,7 @@ The formula for FSR resolutions is as follows:
+ */
+
+ /* A table of resolutions some games expect but host system may not report */
+-static struct fs_monitor_size fs_monitor_sizes[] =
++static struct fs_monitor_size fs_monitor_sizes_base[] =
+ {
+ {640, 480}, /* 4:3 */
+ {800, 600}, /* 4:3 */
+@@ -141,117 +141,30 @@ static struct fs_monitor_size fs_monitor_sizes[] =
+ {1280, 1024}, /* 5:4 */
+ };
+
+-/* Ultra FSR */
+-static struct fs_monitor_size fsr1080_ultra[] =
++/* Dynamically assigned FSR resolutions */
++static struct fs_monitor_size fs_monitor_sizes_fsr[] =
+ {
+- {1477, 831}, /* 16:9 - 'FSR 1080p Ultra Quality' */
++ {0, 0}, /* FSR Performance */
++ {0, 0}, /* FSR Balanced */
++ {0, 0}, /* FSR Quality */
++ {0, 0}, /* FSR Ultra Quality */
+ };
+
+-static struct fs_monitor_size fsr2k_ultra[] =
+-{
+- {1970, 1108}, /* 16:9 - 'FSR 1440p Ultra Quality' */
+-};
+-
+-static struct fs_monitor_size fsruw_ultra[] =
+-{
+- {2646, 1108}, /* 21:9 - 'FSR ultra-wide Ultra Quality' */
+-};
+-
+-static struct fs_monitor_size fsr4k_ultra[] =
+-{
+- {2954, 1662}, /* 16:9 - 'FSR 2160p Ultra Quality' */
+-};
+-
+-static struct fs_monitor_size fsr329_ultra[] =
+-{
+- {3938, 1108}, // 32:9 - 'FSR 32:9 Ultra Quality'
+-};
+-
+-/* Quality FSR */
+-static struct fs_monitor_size fsr1080_quality[] =
+-{
+- {1280, 720}, /* 16:9 - 'FSR 1080p Quality' */
+-};
+-
+-static struct fs_monitor_size fsr2k_quality[] =
+-{
+- {1706, 960}, /* 16:9 - 'FSR 1440p Quality' */
+-};
+-
+-static struct fs_monitor_size fsruw_quality[] =
+-{
+- {2293, 960}, /* 21:9 - 'FSR ultra-wide Quality' */
+-};
+-
+-static struct fs_monitor_size fsr4k_quality[] =
+-{
+- {2560, 1440}, /* 16:9 - 'FSR 2160p Quality' */
+-};
+-
+-static struct fs_monitor_size fsr329_quality[] =
+-{
+- {3413, 960}, // 32:9 - 'FSR 32:9 Quality'
+-};
+-
+-/* Balanced FSR */
+-static struct fs_monitor_size fsr1080_balanced[] =
+-{
+- {1129, 635}, /* 16:9 - 'FSR 1080p Balanced' */
+-};
+-
+-static struct fs_monitor_size fsr2k_balanced[] =
+-{
+- {1506, 847}, /* 16:9 - 'FSR 1440p Balanced' */
+-};
+-
+-static struct fs_monitor_size fsruw_balanced[] =
+-{
+- {2024, 847}, /* 21:9 - 'FSR ultra-wide Balanced' */
+-};
+-
+-static struct fs_monitor_size fsr4k_balanced[] =
+-{
+- {2259, 1270}, /* 16:9 - 'FSR 2160p Balanced' */
+-};
+-
+-static struct fs_monitor_size fsr329_balanced[] =
+-{
+- {3012, 847}, // 32:9 - 'FSR 32:9 Balanced'
+-};
+-
+-/* Performance FSR */
+-static struct fs_monitor_size fsr1080_performance[] =
+-{
+- {960, 640}, /* 16:9 - 'FSR 1080p Performance' */
+-};
+-
+-static struct fs_monitor_size fsr2k_performance[] =
+-{
+- {1280, 720}, /* 16:9 - 'FSR 1440p Performance' */
+-};
+-
+-static struct fs_monitor_size fsruw_performance[] =
+-{
+- {1720, 720}, /* 21:9 - 'FSR ultra-wide Performance' */
+-};
+-
+-static struct fs_monitor_size fsr4k_performance[] =
+-{
+- {1920, 1080}, /* 16:9 - 'FSR 2160p Performance' */
+-};
+-
+-static struct fs_monitor_size fsr329_performance[] =
+-{
+- {2560, 720}, // 32:9 - 'FSR 32:9 Performance'
++static float fsr_ratios[] = {
++ 2.0f, 1.7f, 1.5f, 1.3f,
+ };
+
+ static struct fs_monitor_size fsr_fake_res[] =
+ {
+- {1920, 1080}, /* Custom resolution, replaced by WINE_FULLSCREEN_FSR_CUSTOM_MODE */
++ {0, 0},
+ };
+
+ static struct fs_monitor_size fake_current_resolution;
+
++struct fs_monitor_size *fs_monitor_sizes = NULL;
++INT fs_monitor_sizes_offset = 0;
++
++
+ /* A fake monitor for the fullscreen hack */
+ struct fs_monitor
+ {
+@@ -266,6 +179,9 @@ struct fs_monitor
+ UINT unique_resolutions; /* Number of unique resolutions in terms of WxH */
+ };
+
++BOOL fs_hack_is_fsr(float *sharpness);
++BOOL fs_hack_is_fake_current_res(struct fs_monitor_size*);
++
+ static void add_fs_mode(struct fs_monitor *fs_monitor, DWORD depth, DWORD width, DWORD height,
+ DWORD frequency, DWORD orientation)
+ {
+@@ -330,13 +246,15 @@ static void add_fs_mode(struct fs_monitor *fs_monitor, DWORD depth, DWORD width,
+ static BOOL fs_monitor_add_modes(struct fs_monitor *fs_monitor)
+ {
+ DEVMODEW *real_modes, *real_mode, current_mode;
+- const char *fsr_flag, *fsr_mode;
+ UINT real_mode_count;
+ DWORD width, height;
+ ULONG_PTR real_id;
+ ULONG offset;
+ UINT i, j;
+
++ INT h_factor;
++ float sharpness, real_w_ratio, h_ratio;
++
+ if (!real_settings_handler.get_id(fs_monitor->user_mode.dmDeviceName, &real_id))
+ return FALSE;
+
+@@ -347,105 +265,66 @@ static BOOL fs_monitor_add_modes(struct fs_monitor *fs_monitor)
+ if (!real_settings_handler.get_modes(real_id, 0, &real_modes, &real_mode_count))
+ return FALSE;
+
+- if (fsr_flag = getenv("WINE_FULLSCREEN_FSR"))
+- {
+- if (fs_hack_is_fake_current_res(&fake_current_resolution))
+- {
+- /* Custom Resolution */
+- memcpy(fs_monitor_sizes+sizeof(fsr_fake_res),fsr_fake_res,sizeof(fsr_fake_res));
+- }
+- else if (fsr_mode = getenv("WINE_FULLSCREEN_FSR_MODE")) {
+- if (!strcmp(fsr_mode, "ultra")) {
+- if (current_mode.dmPelsWidth >= 1129 && current_mode.dmPelsWidth <= 1920) {
+- /* 1080p FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsr1080_ultra),fsr1080_ultra,sizeof(fsr1080_ultra));
+- } else if (current_mode.dmPelsWidth <= 2560) {
+- /* 1440p FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsr2k_ultra),fsr2k_ultra,sizeof(fsr2k_ultra));
+- } else if (current_mode.dmPelsWidth <= 3440) {
+- /* ultrawide FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsruw_ultra),fsruw_ultra,sizeof(fsruw_ultra));
+- } else if (current_mode.dmPelsWidth <= 3840) {
+- /* 4k FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsr4k_ultra),fsr4k_ultra,sizeof(fsr4k_ultra));
+- } else if (current_mode.dmPelsWidth <= 5120) {
+- /* 4k FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsr329_ultra),fsr329_ultra,sizeof(fsr329_ultra));
+- }
+- } else if (!strcmp(fsr_mode, "quality")) {
+- if (current_mode.dmPelsWidth >= 1129 && current_mode.dmPelsWidth <= 1920) {
+- /* 1080p FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsr1080_quality),fsr1080_quality,sizeof(fsr1080_quality));
+- } else if (current_mode.dmPelsWidth <= 2560) {
+- /* 1440p FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsr2k_quality),fsr2k_quality,sizeof(fsr2k_quality));
+- } else if (current_mode.dmPelsWidth <= 3440) {
+- /* ultrawide FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsruw_quality),fsruw_quality,sizeof(fsruw_quality));
+- } else if (current_mode.dmPelsWidth <= 3840) {
+- /* 4k FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsr4k_quality),fsr4k_quality,sizeof(fsr4k_quality));
+- } else if (current_mode.dmPelsWidth <= 5120) {
+- /* 4k FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsr329_quality),fsr329_quality,sizeof(fsr329_quality));
+- }
+- } else if (!strcmp(fsr_mode, "balanced")) {
+- if (current_mode.dmPelsWidth >= 1129 && current_mode.dmPelsWidth <= 1920) {
+- /* 1080p FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsr1080_balanced),fsr1080_balanced,sizeof(fsr1080_balanced));
+- } else if (current_mode.dmPelsWidth <= 2560) {
+- /* 1440p FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsr2k_balanced),fsr2k_balanced,sizeof(fsr2k_balanced));
+- } else if (current_mode.dmPelsWidth <= 3440) {
+- /* ultrawide FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsruw_balanced),fsruw_balanced,sizeof(fsruw_balanced));
+- } else if (current_mode.dmPelsWidth <= 3840) {
+- /* 4k FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsr4k_balanced),fsr4k_balanced,sizeof(fsr4k_balanced));
+- } else if (current_mode.dmPelsWidth <= 5120) {
+- /* 4k FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsr329_balanced),fsr329_balanced,sizeof(fsr329_balanced));
+- }
+- } else if (!strcmp(fsr_mode, "performance")) {
+- if (current_mode.dmPelsWidth >= 1129 && current_mode.dmPelsWidth <= 1920) {
+- /* 1080p FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsr1080_performance),fsr1080_performance,sizeof(fsr1080_performance));
+- } else if (current_mode.dmPelsWidth <= 2560) {
+- /* 1440p FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsr2k_performance),fsr2k_performance,sizeof(fsr2k_performance));
+- } else if (current_mode.dmPelsWidth <= 3440) {
+- /* ultrawide FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsruw_performance),fsruw_performance,sizeof(fsruw_performance));
+- } else if (current_mode.dmPelsWidth <= 3840) {
+- /* 4k FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsr4k_performance),fsr4k_performance,sizeof(fsr4k_performance));
+- } else if (current_mode.dmPelsWidth <= 5120) {
+- /* 32:9 FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsr329_performance),fsr329_performance,sizeof(fsr329_performance));
+- }
+- }
+- /* If no mode specified, default to balanced */
+- }
+- else {
+- if (current_mode.dmPelsWidth >= 1129 && current_mode.dmPelsWidth <= 1920) {
+- /* 1080p FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsr1080_balanced),fsr1080_balanced,sizeof(fsr1080_balanced));
+- } else if (current_mode.dmPelsWidth <= 2560) {
+- /* 1440p FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsr2k_balanced),fsr2k_balanced,sizeof(fsr2k_balanced));
+- } else if (current_mode.dmPelsWidth <= 3440) {
+- /* ultrawide FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsruw_balanced),fsruw_balanced,sizeof(fsruw_balanced));
+- } else if (current_mode.dmPelsWidth <= 3840) {
+- /* 4k FSR resolutions */
+- memcpy(fs_monitor_sizes+sizeof(fsr4k_balanced),fsr4k_balanced,sizeof(fsr4k_balanced));
++ if (fs_monitor_sizes)
++ heap_free(fs_monitor_sizes);
++ fs_monitor_sizes = NULL;
++ fs_monitor_sizes_offset = 0;
++ fs_monitor_sizes = heap_alloc(sizeof(fs_monitor_sizes_base)
++ + sizeof(fs_monitor_sizes_fsr)
++ + sizeof(fsr_fake_res));
++
++ /* Copy the default list */
++ memcpy(fs_monitor_sizes+fs_monitor_sizes_offset, fs_monitor_sizes_base, sizeof(fs_monitor_sizes_base));
++ fs_monitor_sizes_offset += ARRAY_SIZE(fs_monitor_sizes_base);
++
++ /* If FSR is enabled, generate and add FSR resolutions */
++ if (fs_hack_is_fsr(&sharpness)) {
++ if (current_mode.dmPelsWidth / 16.0f == current_mode.dmPelsHeight / 9.0f) {
++ /* 16:9 resolutions */
++ h_ratio = 9.0f;
++ } else if ((INT)(current_mode.dmPelsWidth / 210.0f) == (INT)(current_mode.dmPelsHeight / 90.0f)) {
++ /* 21:9 ultra-wide FSR resolutions */
++ h_ratio = 9.0f;
++ } else if (current_mode.dmPelsWidth / 32.0f == current_mode.dmPelsHeight / 9.0f) {
++ /* 32:9 "duper-ultra-wide" resolutions - Also adds the base resolutions from 16:9 and 21:9 */
++ h_ratio = 9.0f;
++ } else if (current_mode.dmPelsWidth / 8.0f == current_mode.dmPelsHeight / 5.0f) {
++ /* 16:10 resolutions */
++ h_ratio = 10.0f;
++ } else if (current_mode.dmPelsWidth / 12.0f == current_mode.dmPelsHeight / 5.0f) {
++ /* 24:10 resolutions - Also adds the base resolutions from 16:10*/
++ h_ratio = 10.0f;
++ } else {
++ /* In case of unknown ratio, naively create FSR resolutions */
++ h_ratio = 1.0f;
++ }
++
++ real_w_ratio = current_mode.dmPelsWidth/(current_mode.dmPelsHeight / h_ratio);
++ for (i = 0; i < ARRAY_SIZE(fs_monitor_sizes_fsr); ++i) {
++ if (h_ratio == 1.0f) {
++ /* naive generation and hope for the best */
++ fs_monitor_sizes_fsr[i].width = (INT)(current_mode.dmPelsWidth / fsr_ratios[i] + 0.5f);
++ fs_monitor_sizes_fsr[i].height = (INT)(current_mode.dmPelsHeight / fsr_ratios[i] + 0.5f);
++ } else {
++ h_factor = (INT)(current_mode.dmPelsHeight/h_ratio / fsr_ratios[i] + 0.5f);
++ fs_monitor_sizes_fsr[i].width = (INT)(real_w_ratio * h_factor + 0.5f);
++ fs_monitor_sizes_fsr[i].height = (INT)(h_ratio * h_factor + 0.5f);
+ }
++ TRACE("created fsr res: %dx%d\n", fs_monitor_sizes_fsr[i].width, fs_monitor_sizes_fsr[i].height);
++ }
++ memcpy(fs_monitor_sizes+fs_monitor_sizes_offset, fs_monitor_sizes_fsr, sizeof(fs_monitor_sizes_fsr));
++ fs_monitor_sizes_offset += ARRAY_SIZE(fs_monitor_sizes_fsr);
++
++ /* Add the custom resolution to the list */
++ if (fs_hack_is_fake_current_res(&fake_current_resolution)) {
++ memcpy(fs_monitor_sizes+fs_monitor_sizes_offset, fsr_fake_res, sizeof(fsr_fake_res));
++ fs_monitor_sizes_offset += ARRAY_SIZE(fsr_fake_res);
+ }
+ }
+-
++
+ fs_monitor->mode_count = 0;
+ fs_monitor->unique_resolutions = 0;
+- fs_monitor->modes = heap_calloc(ARRAY_SIZE(fs_monitor_sizes) * DEPTH_COUNT + real_mode_count,
++ fs_monitor->modes = heap_calloc(fs_monitor_sizes_offset * DEPTH_COUNT + real_mode_count,
+ sizeof(*fs_monitor->modes));
+ if (!fs_monitor->modes)
+ {
+@@ -459,7 +338,7 @@ static BOOL fs_monitor_add_modes(struct fs_monitor *fs_monitor)
+ current_mode.u1.s2.dmDisplayOrientation);
+
+ /* Linux reports far fewer resolutions than Windows. Add modes that some games may expect. */
+- for (i = 0; i < ARRAY_SIZE(fs_monitor_sizes); ++i)
++ for (i = 0; i < fs_monitor_sizes_offset; ++i)
+ {
+ if (current_mode.u1.s2.dmDisplayOrientation == DMDO_DEFAULT ||
+ current_mode.u1.s2.dmDisplayOrientation == DMDO_180)
+@@ -505,15 +384,17 @@ static BOOL fs_monitor_add_modes(struct fs_monitor *fs_monitor)
+
+ BOOL fs_hack_is_fake_current_res(struct fs_monitor_size* fixed_size)
+ {
++ const char *e;
++
+ fixed_size->width = 0;
+ fixed_size->height = 0;
+- const char *e = getenv("WINE_FULLSCREEN_FSR_CUSTOM_MODE");
++ e = getenv("WINE_FULLSCREEN_FSR_CUSTOM_MODE");
+ if (e)
+ {
+ const int n = sscanf(e,"%dx%d",&(fixed_size->width),&(fixed_size->height));
+ if (n==2)
+ {
+- memcpy(fsr_fake_res+sizeof(fixed_size),fixed_size,sizeof(fixed_size));
++ memcpy(fsr_fake_res, fixed_size, sizeof(*fixed_size));
+ return TRUE;
+ }
+ }
+--
+2.37.0
+
diff --git a/wine-more_8x5_res.patch b/wine-more_8x5_res.patch
deleted file mode 100644
index acc09936ffd3..000000000000
--- a/wine-more_8x5_res.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/dlls/winex11.drv/fs.c b/dlls/winex11.drv/fs.c
-index c37899605e7..6470d2ffbb9 100644
---- a/dlls/winex11.drv/fs.c
-+++ b/dlls/winex11.drv/fs.c
-@@ -78,6 +78,10 @@ static struct fs_monitor_size fs_monitor_sizes[] =
- {2880, 1620}, /* 16:9 */
- {2954, 1662}, /* 16:9 - 'FSR 2160p Ultra Quality' */
- {3200, 1800}, /* 16:9 */
-+ {640, 400}, /* 8:5 */
-+ {840, 525}, /* 8:5 */
-+ {960, 600}, /* 8:5 */
-+ {1280, 800}, /* 8:5 */
- {1440, 900}, /* 8:5 */
- {1680, 1050}, /* 8:5 */
- {1920, 1200}, /* 8:5 */