summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO6
-rw-r--r--PKGBUILD25
-rw-r--r--poe-fix.patch11
-rw-r--r--steam.patch38
4 files changed, 78 insertions, 2 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 5208d74a505..d33c00c1e07 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = wine-staging-pba-git
pkgdesc = Wine staging branch with PBA patches for increased D3D performance applied. Git versions.
- pkgver = 3.3.r3596.fa354f3c+wine.3.3.r263.gbf7b21ec7b+pba.r29.87307b1
+ pkgver = 3.3.r3597.3f981ccb+wine.3.3.r263.gbf7b21ec7b+pba.r29.87307b1
pkgrel = 1
url = https://github.com/acomminos/wine-pba
install = wine.install
@@ -175,12 +175,16 @@ pkgbase = wine-staging-pba-git
source = wine-git::git://source.winehq.org/git/wine.git
source = wine-staging-git::git+https://github.com/wine-staging/wine-staging.git
source = wine-pba::git+https://github.com/acomminos/wine-pba.git
+ source = steam.patch
+ source = poe-fix.patch
source = harmony-fix.diff
source = 30-win32-aliases.conf
source = wine-binfmt.conf
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
+ sha256sums = 972d6b114f7621c5f3bd34b1105dd390b318db18fbc76328001c984db488a9b0
+ sha256sums = a45b31be24638450a43031dae1b3126a1364da22ec5212bf9cdf66caa037dcf8
sha256sums = 50ccb5bd2067e5d2739c5f7abcef11ef096aa246f5ceea11d2c3b508fc7f77a1
sha256sums = 9901a5ee619f24662b241672a7358364617227937d5f6d3126f70528ee5111e7
sha256sums = c589c1668851cf5973b8e76d9bd6ae3b9cb9e6524df5d9cb90af4ac20d61d152
diff --git a/PKGBUILD b/PKGBUILD
index 3219b011b10..fb5166a56a3 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,7 +2,7 @@
# Maintainer: Lars Norberg < arch-packages at cogwerkz dot org >
pkgname=wine-staging-pba-git
-pkgver=3.3.r3596.fa354f3c+wine.3.3.r263.gbf7b21ec7b+pba.r29.87307b1
+pkgver=3.3.r3597.3f981ccb+wine.3.3.r263.gbf7b21ec7b+pba.r29.87307b1
pkgrel=1
_winesrcdir='wine-git'
_stgsrcdir='wine-staging-git'
@@ -94,12 +94,16 @@ optdepends=(
source=("$_winesrcdir"::'git://source.winehq.org/git/wine.git'
"$_stgsrcdir"::'git+https://github.com/wine-staging/wine-staging.git'
"$_pbasrcdir"::'git+https://github.com/acomminos/wine-pba.git'
+ 'steam.patch'
+ 'poe-fix.patch'
'harmony-fix.diff'
'30-win32-aliases.conf'
'wine-binfmt.conf')
sha256sums=('SKIP'
'SKIP'
'SKIP'
+ '972d6b114f7621c5f3bd34b1105dd390b318db18fbc76328001c984db488a9b0'
+ 'a45b31be24638450a43031dae1b3126a1364da22ec5212bf9cdf66caa037dcf8'
'50ccb5bd2067e5d2739c5f7abcef11ef096aa246f5ceea11d2c3b508fc7f77a1'
'9901a5ee619f24662b241672a7358364617227937d5f6d3126f70528ee5111e7'
'c589c1668851cf5973b8e76d9bd6ae3b9cb9e6524df5d9cb90af4ac20d61d152')
@@ -148,8 +152,27 @@ prepare() {
export CFLAGS="${CFLAGS/-fno-plt/}"
export LDFLAGS="${LDFLAGS/,-z,now/}"
+ # patch for 32bit font smoothing
patch -Np1 < ../'harmony-fix.diff'
+ # Patch to allow Path of Exile to run with DirectX11
+ # https://bugs.winehq.org/show_bug.cgi?id=42695
+ #
+ # Make a fresh 64bit wine prefix, and set the wine version to windows10.
+ # Disable antialiasing as this does not work at all in DirectX11.
+ #
+ # Run Path of Exile with the following line:
+ # wine 'PathOfExile_x64.exe' --garbage-generation 1 --waitforpreload
+ #
+ # Note: Initial loading time after the grinding gears animation is higher,
+ # but stuttering in-game is reduced to a tolerable level.
+ # Maps are missing with DirectX11, no current way around this.
+ patch -Np1 < ../'poe-fix.patch'
+
+ # steam crossover hack for store/web functionality
+ # https://bugs.winehq.org/show_bug.cgi?id=39403
+ patch -Np1 < ../'steam.patch'
+
# apply all wine-staging patches
msg2 'Applying wine-staging patches...'
"${srcdir}"/"${_stgsrcdir}"/patches/patchinstall.sh DESTDIR="${srcdir}/${_winesrcdir}" --all
diff --git a/poe-fix.patch b/poe-fix.patch
new file mode 100644
index 00000000000..c2dea6ddbc7
--- /dev/null
+++ b/poe-fix.patch
@@ -0,0 +1,11 @@
+--- a/dlls/ole32/compobj.c
++++ b/dlls/ole32/compobj.c
+@@ -3213,6 +3213,7 @@
+ {
+ MULTI_QI multi_qi = { iid };
+ HRESULT hres;
++ CoInitialize(NULL);
+
+ TRACE("(rclsid=%s, pUnkOuter=%p, dwClsContext=%08x, riid=%s, ppv=%p)\n", debugstr_guid(rclsid),
+ pUnkOuter, dwClsContext, debugstr_guid(iid), ppv);
+
diff --git a/steam.patch b/steam.patch
new file mode 100644
index 00000000000..deef1b5cd8f
--- /dev/null
+++ b/steam.patch
@@ -0,0 +1,38 @@
+diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
+index 6e7b23e..63eda34 100644
+--- a/dlls/kernel32/process.c
++++ b/dlls/kernel32/process.c
+@@ -2429,6 +2429,33 @@ static BOOL create_process_impl( LPCWSTR app_name, LPWSTR cmd_line, LPSECURITY_A
+ return FALSE;
+ if (hFile == INVALID_HANDLE_VALUE) goto done;
+
++ /* CROSSOVER HACK: bug 13322 (winehq bug 39403)
++ * Insert --no-sandbox in command line of Steam's web helper process to
++ * work around problems hooking our ntdll exports. */
++ {
++ static const WCHAR steamwebhelperexeW[] = {'s','t','e','a','m','w','e','b','h','e','l','p','e','r','.','e','x','e',0};
++ static const WCHAR nosandboxW[] = {' ','-','-','n','o','-','s','a','n','d','b','o','x',0};
++
++ if (strstrW(name, steamwebhelperexeW))
++ {
++ LPWSTR new_command_line;
++
++ new_command_line = HeapAlloc(GetProcessHeap(), 0,
++ sizeof(WCHAR) * (strlenW(tidy_cmdline) + strlenW(nosandboxW) + 1));
++
++ if (!new_command_line) return FALSE;
++
++ strcpyW(new_command_line, tidy_cmdline);
++ strcatW(new_command_line, nosandboxW);
++
++ TRACE("CrossOver hack changing command line to %s\n", debugstr_w(new_command_line));
++
++ if (tidy_cmdline != cmd_line) HeapFree( GetProcessHeap(), 0, tidy_cmdline );
++ tidy_cmdline = new_command_line;
++ }
++ }
++ /* end CROSSOVER HACK */
++
+ /* Warn if unsupported features are used */
+
+ if (flags & (IDLE_PRIORITY_CLASS | HIGH_PRIORITY_CLASS | REALTIME_PRIORITY_CLASS |