diff options
author | Stelios Tsampas | 2019-12-15 01:45:05 +0200 |
---|---|---|
committer | Stelios Tsampas | 2019-12-15 01:45:05 +0200 |
commit | e2fc54e0c24a50beef281f4edc11050387a6983a (patch) | |
tree | 0d0ce8653a8a8474031e4abfc648004a6b92a7a8 /PKGBUILD | |
parent | ccd8f512f1a6c7c5a7aed45cbcec9d62766fdc0d (diff) | |
download | aur-e2fc54e0c24a50beef281f4edc11050387a6983a.tar.gz |
version 0.40. Enable extra optimizations.
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 44 |
1 files changed, 41 insertions, 3 deletions
@@ -1,8 +1,8 @@ # Maintainer: loathingkernel <loathingkernel @at gmail .dot com> pkgname=d9vk-mingw -_tag=0.40-rc-p -pkgver=${_tag//-/.} +_tag=0.40 +pkgver=${_tag//-/_} pkgrel=1 pkgdesc="A d3d9 to vk layer based off DXVK's codebase, mingw version" arch=('x86_64') @@ -16,20 +16,56 @@ source=( "git+https://github.com/Joshua-Ashton/d9vk.git#tag=$_tag" "setup_d9vk" "dxvk-async.patch" + "dxvk-mangohud.patch" + "extraopts.patch" ) sha256sums=( "SKIP" "7147644664ef33d04f7b18683c47be95b5664c57cf6d63fdc019d915deebd37a" - "757fd5ca3faf476730891541de408593450fe4b490cc87bd90b342826d66c564" + "6ff286091c20327e67252e1e6812830a42c990d1ee56541023eb217712209f3c" + "2e335237623aaf006f8814fc9712f3a4be0d678cd0714879a3a4545f3bbf41ce" + "acde3a23166f79fa87ab090200be2aabaf16e5876ce19b8270ad1179bb0bc7a5" ) prepare() { cd d9vk + # 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 + CFLAGS+=" -mno-avx" + # CFLAGS+=" -fno-tree-vectorize" + # Patch crossfiles with extra optimizations from makepkg.conf + # If building fails, comment the line below to disable them. + patch -p1 -i ../extraopts.patch + # Adjust optimization level in meson arguments. This is ignored + # anyways because meson sets its own optimization level. + CFLAGS="${CFLAGS/ -O*([0-3])/}" + # 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. + CFLAGS="${CFLAGS/ -fno-plt/}" + LDFLAGS="${LDFLAGS/,-z,relro,-z,now/}" + sed -i build-win64.txt \ + -e "s|@CARGS@|\'${CFLAGS// /\',\'}\'|g" \ + -e "s|@LDARGS@|\'${LDFLAGS// /\',\'}\'|g" + sed -i build-win32.txt \ + -e "s|@CARGS@|\'${CFLAGS// /\',\'}\'|g" \ + -e "s|@LDARGS@|\'${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 ../dxvk-async.patch + # Uncomment to enable Mango HUD for dxvk + #patch -p1 -i ../dxvk-mangohud.patch } build() { @@ -38,6 +74,7 @@ build() { --prefix "/usr/share/d9vk/x64" \ --bindir "" --libdir "" \ --buildtype "release" \ + --optimization=3 \ --strip \ -Denable_d3d10=false \ -Denable_d3d11=false \ @@ -50,6 +87,7 @@ build() { --prefix "/usr/share/d9vk/x32" \ --bindir "" --libdir "" \ --buildtype "release" \ + --optimization=3 \ --strip \ -Denable_d3d10=false \ -Denable_d3d11=false \ |