summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorStelios Tsampas2021-02-19 11:35:58 +0200
committerStelios Tsampas2021-02-19 11:35:58 +0200
commitcc81de67c56161ec084ae7402262b5f06dfd0e1d (patch)
treee9613bcbf11cb48298f76656539f247a216eaa37
parentd6e2f2e98eea2ae1fdf478be18da1c4b37dbe2ca (diff)
downloadaur-cc81de67c56161ec084ae7402262b5f06dfd0e1d.tar.gz
Version 1.8
-rw-r--r--.SRCINFO12
-rw-r--r--PKGBUILD30
-rw-r--r--dxvk-async.patch68
-rw-r--r--dxvk-extraopts.patch34
-rw-r--r--extraopts.patch36
5 files changed, 99 insertions, 81 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 5f59c5a76f4b..238803c6af94 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = dxvk-mingw
pkgdesc = Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine, MingW version
- pkgver = 1.7.3
+ pkgver = 1.8
pkgrel = 1
url = https://github.com/doitsujin/dxvk
arch = x86_64
@@ -16,17 +16,17 @@ pkgbase = dxvk-mingw
depends = bash
provides = dxvk
provides = d9vk
- provides = dxvk=1.7.3
+ provides = dxvk=1.8
conflicts = dxvk
conflicts = d9vk
- source = git+https://github.com/doitsujin/dxvk.git#tag=v1.7.3
+ source = git+https://github.com/doitsujin/dxvk.git#tag=v1.8
source = setup_dxvk
source = dxvk-async.patch
- source = extraopts.patch
+ source = dxvk-extraopts.patch
sha256sums = SKIP
sha256sums = b2413cabd8cca56e2d308ef5513edf1c7f909036ed2ccfeae17536a0e864dc96
- sha256sums = 198ec50d709b26d492efc399257423315c1530fcdf1ee52595af6eab8e7e9f7c
- sha256sums = 0b69c4e8f369014e58577d34e077d5d8240ce3253c19117efe6d86ec7726105d
+ sha256sums = acdb652830d642829057a035ebc69481697078a734f57ac974ee5b54454470ff
+ sha256sums = 2bf3515ce9a3ee426c2632aa3355b2556ee8fe5dd8d88e088f90803e3d5f10a6
pkgname = dxvk-mingw
diff --git a/PKGBUILD b/PKGBUILD
index 3bcee0b5b2b2..eab2077a1f60 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: loathingkernel <loathingkernel @at gmail .dot com>
pkgname=dxvk-mingw
-pkgver=1.7.3
+pkgver=1.8
pkgrel=1
pkgdesc='Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine, MingW version'
arch=('x86_64')
@@ -15,21 +15,25 @@ source=(
"git+https://github.com/doitsujin/dxvk.git#tag=v$pkgver"
"setup_dxvk"
"dxvk-async.patch"
- "extraopts.patch"
+ "dxvk-extraopts.patch"
)
sha256sums=(
- "SKIP"
- "b2413cabd8cca56e2d308ef5513edf1c7f909036ed2ccfeae17536a0e864dc96"
- "198ec50d709b26d492efc399257423315c1530fcdf1ee52595af6eab8e7e9f7c"
- "0b69c4e8f369014e58577d34e077d5d8240ce3253c19117efe6d86ec7726105d"
+ 'SKIP'
+ 'b2413cabd8cca56e2d308ef5513edf1c7f909036ed2ccfeae17536a0e864dc96'
+ 'acdb652830d642829057a035ebc69481697078a734f57ac974ee5b54454470ff'
+ '2bf3515ce9a3ee426c2632aa3355b2556ee8fe5dd8d88e088f90803e3d5f10a6'
)
prepare() {
cd dxvk
-
+ # Uncomment to enable dxvk async patch.
+ # Enable at your own risk. If you don't know what it is,
+ # and its implications, leave it as is. You have been warned.
+ # I am not liable if anything happens to you by using it.
+ #patch -p1 -i "$srcdir"/dxvk-async.patch
# Uncomment to enable extra optimizations
# Patch crossfiles with extra optimizations from makepkg.conf
- patch -p1 -i "$srcdir"/extraopts.patch
+ patch -p1 -i "$srcdir"/dxvk-extraopts.patch
local dxvk_cflags="$CFLAGS"
local dxvk_ldflags="$LDFLAGS"
# Filter known bad flags before applying optimizations
@@ -50,10 +54,11 @@ prepare() {
# Since Wine 5.16 AVX is supported. Testing showed 32bit applications
# crashing with AVX regardless, but 64bit applications worked just fine.
# So disable AVX only for the 32bit binaries and AVX2 for the 64bit.
+ # AVX2 seems to degrade performance. So disregard the above.
# Relevant Wine issues
# https://bugs.winehq.org/show_bug.cgi?id=45289
# https://bugs.winehq.org/show_bug.cgi?id=43516
- dxvk64_cflags="$dxvk_cflags -mno-avx2"
+ dxvk64_cflags="$dxvk_cflags -mno-avx"
dxvk32_cflags="$dxvk_cflags -mno-avx"
sed -i build-win64.txt \
@@ -62,13 +67,6 @@ prepare() {
sed -i build-win32.txt \
-e "s|@CARGS@|\'${dxvk32_cflags// /\',\'}\'|g" \
-e "s|@LDARGS@|\'${dxvk_ldflags// /\',\'}\'|g"
-
- # Uncomment to enable dxvk async patch.
- # Enable at your own risk. If you don't know what it is,
- # and its implications, leave it as is. You have been warned.
- # I am not liable if anything happens to you by using it.
- # Patch enables async by default. YOU HAVE BEEN WARNED.
- #patch -p1 -i "$srcdir"/dxvk-async.patch
}
build() {
diff --git a/dxvk-async.patch b/dxvk-async.patch
index d877be322826..016f8f06a122 100644
--- a/dxvk-async.patch
+++ b/dxvk-async.patch
@@ -264,44 +264,37 @@ index 19b5d85f..3da24c49 100644
};
diff --git a/src/dxvk/dxvk_options.cpp b/src/dxvk/dxvk_options.cpp
-index 904082f6..999723cc 100644
+index 73dd69d1..c3da6bb5 100644
--- a/src/dxvk/dxvk_options.cpp
+++ b/src/dxvk/dxvk_options.cpp
-@@ -3,8 +3,10 @@
- namespace dxvk {
-
- DxvkOptions::DxvkOptions(const Config& config) {
-+ enableAsync = config.getOption<bool> ("dxvk.enableAsync", true);
- enableStateCache = config.getOption<bool> ("dxvk.enableStateCache", true);
- enableOpenVR = config.getOption<bool> ("dxvk.enableOpenVR", true);
-+ numAsyncThreads = config.getOption<int32_t> ("dxvk.numAsyncThreads", 0);
- numCompilerThreads = config.getOption<int32_t> ("dxvk.numCompilerThreads", 0);
+@@ -10,6 +10,8 @@ namespace dxvk {
useRawSsbo = config.getOption<Tristate>("dxvk.useRawSsbo", Tristate::Auto);
useEarlyDiscard = config.getOption<Tristate>("dxvk.useEarlyDiscard", Tristate::Auto);
+ hud = config.getOption<std::string>("dxvk.hud", "");
++ enableAsync = config.getOption<bool> ("dxvk.enableAsync", false);
++ numAsyncThreads = config.getOption<int32_t> ("dxvk.numAsyncThreads", 0);
+ }
+
+ }
+\ No newline at end of file
diff --git a/src/dxvk/dxvk_options.h b/src/dxvk/dxvk_options.h
-index 6843c16f..84e1933f 100644
+index 3c5dde91..52a7be04 100644
--- a/src/dxvk/dxvk_options.h
+++ b/src/dxvk/dxvk_options.h
-@@ -8,12 +8,19 @@ namespace dxvk {
- DxvkOptions() { }
- DxvkOptions(const Config& config);
+@@ -21,6 +21,13 @@ namespace dxvk {
+ /// when using the state cache
+ int32_t numCompilerThreads;
+ // Enable async pipelines
+ bool enableAsync;
+
- /// Enable state cache
- bool enableStateCache;
-
- /// Enables OpenVR loading
- bool enableOpenVR;
-
+ /// Number of compiler threads
+ /// when using async pipelines
+ int32_t numAsyncThreads;
+
- /// Number of compiler threads
- /// when using the state cache
- int32_t numCompilerThreads;
+ /// Shader-related options
+ Tristate useRawSsbo;
+ Tristate useEarlyDiscard;
diff --git a/src/dxvk/dxvk_pipecompiler.cpp b/src/dxvk/dxvk_pipecompiler.cpp
new file mode 100644
index 00000000..40218acd
@@ -499,3 +492,32 @@ index 1dc113c3..003fb1a7 100644
'dxvk_pipelayout.cpp',
'dxvk_pipemanager.cpp',
'dxvk_queue.cpp',
+diff --git a/dxvk.conf b/dxvk.conf
+index 9ca21a5e..abf0f2bf 100644
+--- a/dxvk.conf
++++ b/dxvk.conf
+@@ -214,6 +214,24 @@
+ # dxvk.hud =
+
+
++# Compile pipelines asynchronously if possible. This may reduce stuttering
++# in some games, but may also introduce rendering issues that might become
++# apparent over time. Do not report bugs with this option enabled.
++#
++# Supported values: True, False
++
++# dxvk.enableAsync = True
++
++
++# Sets number of async compiler threads.
++#
++# Supported values:
++# - 0 to automatically determine the number of threads to use
++# - any positive number to enforce the thread count
++
++# dxvk.numAsyncThreads = 0
++
++
+ # Reported shader model
+ #
+ # The shader model to state that we support in the device
diff --git a/dxvk-extraopts.patch b/dxvk-extraopts.patch
new file mode 100644
index 000000000000..79a9b498c97b
--- /dev/null
+++ b/dxvk-extraopts.patch
@@ -0,0 +1,34 @@
+diff --git a/build-win32.txt b/build-win32.txt
+index a1406832..748f5c1e 100644
+--- a/build-win32.txt
++++ b/build-win32.txt
+@@ -4,6 +4,12 @@ cpp = 'i686-w64-mingw32-g++'
+ ar = 'i686-w64-mingw32-ar'
+ strip = 'i686-w64-mingw32-strip'
+
++[built-in options]
++c_args=[@CARGS@]
++cpp_args=[@CARGS@]
++c_link_args = [@LDARGS@]
++cpp_link_args = [@LDARGS@]
++
+ [properties]
+ needs_exe_wrapper = true
+
+diff --git a/build-win64.txt b/build-win64.txt
+index 1aee4626..7d2e84f4 100644
+--- a/build-win64.txt
++++ b/build-win64.txt
+@@ -4,6 +4,12 @@ cpp = 'x86_64-w64-mingw32-g++'
+ ar = 'x86_64-w64-mingw32-ar'
+ strip = 'x86_64-w64-mingw32-strip'
+
++[built-in options]
++c_args=[@CARGS@]
++cpp_args=[@CARGS@]
++c_link_args = [@LDARGS@]
++cpp_link_args = [@LDARGS@]
++
+ [properties]
+ needs_exe_wrapper = true
+
diff --git a/extraopts.patch b/extraopts.patch
deleted file mode 100644
index 3faec7e35d55..000000000000
--- a/extraopts.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff --git a/build-win32.txt b/build-win32.txt
-index 0865fc5e..b93a280f 100644
---- a/build-win32.txt
-+++ b/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/build-win64.txt
-+++ b/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]