diff options
author | Stelios Tsampas | 2021-02-19 11:35:58 +0200 |
---|---|---|
committer | Stelios Tsampas | 2021-02-19 11:35:58 +0200 |
commit | cc81de67c56161ec084ae7402262b5f06dfd0e1d (patch) | |
tree | e9613bcbf11cb48298f76656539f247a216eaa37 | |
parent | d6e2f2e98eea2ae1fdf478be18da1c4b37dbe2ca (diff) | |
download | aur-cc81de67c56161ec084ae7402262b5f06dfd0e1d.tar.gz |
Version 1.8
-rw-r--r-- | .SRCINFO | 12 | ||||
-rw-r--r-- | PKGBUILD | 30 | ||||
-rw-r--r-- | dxvk-async.patch | 68 | ||||
-rw-r--r-- | dxvk-extraopts.patch | 34 | ||||
-rw-r--r-- | extraopts.patch | 36 |
5 files changed, 99 insertions, 81 deletions
@@ -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 @@ -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] |