前往
大廳
主題

dxvk for soulworker (~v1.9)

EcuasYos | 2023-10-21 16:48:07 | 巴幣 0 | 人氣 132

紀錄用

dxvk issue for SW
Using v1.7.1 (including v1.7.1) will lead to bad display


#Compile Environment
#Using wsl2 Ubuntu 22.04

#Ubuntu 22.04
sudo apt install mingw-w64 cmake meson python3-pip glslang-dev glslang-tools git

#switch to POSIX version
sudo update-alternatives --config x86_64-w64-mingw32-gcc; \
sudo update-alternatives --config x86_64-w64-mingw32-g++; \
sudo update-alternatives --config i686-w64-mingw32-gcc; \
sudo update-alternatives --config i686-w64-mingw32-g++;

#clone code
git clone --recursive https://github.com/doitsujin/dxvk.git dxvk/dxvk
#checkout version
cd dxvk/dxvk; git checkout v1.7

#build linker at ./dxvk-master and compile
./package-release.sh master ./ --no-package --dev-build

#You can see the files at ./dxvk-master/x32 and ./dxvk-master/x64



#For v2.0+ version, use llvm-mingw instead of mingw-w64

# remove mingw-w64
sudo apt purge --autoremove mingw-w64
# download llvm-mingw
# unpack
tar xf llvm-mingw-20230320-ucrt-ubuntu-18.04-x86_64.tar.xz
# set env
export PATH="$PWD/llvm-mingw-20230320-ucrt-ubuntu-18.04-x86_64/bin:$PATH" LD_LIBRARY_PATH="$PWD/llvm-mingw-20230320-ucrt-ubuntu-18.04-x86_64/lib"



#toolchain version
mseon 0.61.2
mingw gcc version 10-posix 20220113 (GCC)
mingw-w64-x86-64-dev 8.0.0-1
mingw-w64-common 8.0.0-1
llvm-mingw clang version 16.0.0 (https://github.com/llvm/llvmproject.git 08d094a0e457360ad8b94b017d2dc277e697ca76)

Commit check

This commit

commit 23691cd0ff6d9a2af6c84872cacf08e8cb5079c0
Author: Philip Rebohle <philip.rebohle@tu-dortmund.de>
Date:   Wed Jun 24 15:00:01 2020 +0200

    [dxvk] Enable extended dynamic state feature if available



Temporary fix
$git diff

diff --git a/src/dxvk/dxvk_adapter.cpp b/src/dxvk/dxvk_adapter.cpp
index d0d09c98..c16b0201 100644
--- a/src/dxvk/dxvk_adapter.cpp
+++ b/src/dxvk/dxvk_adapter.cpp
@@ -304,7 +304,7 @@ namespace dxvk {
     DxvkNameList extensionNameList = extensionsEnabled.toNameList();
 
     // Enable additional device features if supported
-    enabledFeatures.extExtendedDynamicState.extendedDynamicState = m_deviceFeatures.extExtendedDynamicState.extendedDynamicState;
+    //enabledFeatures.extExtendedDynamicState.extendedDynamicState = m_deviceFeatures.extExtendedDynamicState.extendedDynamicState;
 
     enabledFeatures.ext4444Formats.formatA4B4G4R4 = m_deviceFeatures.ext4444Formats.formatA4B4G4R4;
     enabledFeatures.ext4444Formats.formatA4R4G4B4 = m_deviceFeatures.ext4444Formats.formatA4R4G4B4;


Test Result:
Only work to up to v1.9
v2.0 change extendedDynamicState method

v1.9 demo dll download

創作回應

更多創作