DXVK-GPLAsync-LowLatency 2.7.1-3 (DXVK-GPLALL 2.7.1-3)
Based on DXVK 2.7.1, DXVK GPLAsync 2.7-patch, DXVK Low Latency 2.7.1-commit 9659672 without upstream DXVK merge commit b687611.
It consists of:
- DXVK-GPLALL-GCC-WinMacLinux-SSE2-O3-LTO 2.7.1-3
- DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-GENERIC 2.7.1-3
- DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-INTEL 2.7.1-3
- DXVK-GPLALL-MSVC-Windows-SSE2-O1_Oi_Ob3-LTCG 2.7.1-3
- DXVK-GPLALL-MSVC-Windows-AVX2-O1_Oi_Ob3-LTCG-AMD64 2.7.1-3
- DXVK-GPLALL-MSVC-Windows-SSE4.2-O1_Oi_Ob3-LTCG-INTEL64 2.7.1-3
- DXVK Native-GPLALL-GCC-SSE2-O3-LTO 2.7.1-3
- DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-GENERIC 2.7.1-3
- DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-INTEL 2.7.1-3
- Source Code
- dxvk.conf
Release Notes:
IMPORTANT: Please refer to Quick Start Guide to achieve the best results on the end-user system.
- DXVK-GPLALL changes:
GCC: Added-ffunction-sections,-fdata-sections,-Wl,--gc-sectionsflags.- Has the same effect as
/Gw,/GF,/Gy,/OPT:REF,ICFforMSVC- reduces DLLs size and potentially improves performance.
- Has the same effect as
GCC-SSE4.2-O3-LTO-INTEL: Added-mbmi,-mbmi2,-mmovbeflags.- Allows compiler usage of BMI, BMI2 and MOVBE instructions, which improve CPU-bound performance. These instructions are non-AVX part of
x86-64-v3set and do not change DXVK-GPLALL requirements specified in Builds Reference Guide.- Note:
MSVC-AVX2-O1_Oi_Ob3-LTCG-AMD64build uses all of these instructions as a part of/arch:AVX2.MSVC-SSE4.2-O1_Oi_Ob3-LTCG-INTEL64build does not use these instructions, due to/arch:SSE4.2, and there is no way to specify usage of separate instruction inMSVCcompiler.
- Note:
- Allows compiler usage of BMI, BMI2 and MOVBE instructions, which improve CPU-bound performance. These instructions are non-AVX part of
GCC-SSE4.2-O3-LTO-GENERIC: Added-mbmi,-mmovbeflags.- Allows compiler usage of BMI and MOVBE instructions, which improve CPU-bound performance. These instructions are non-AVX part of
x86-64-v3set and do not change DXVK-GPLALL requirements specified in Builds Reference Guide.- Note:
-mbmi2flag is not used, in order to avoid performance regression on AMD CPUs up to and including Zen2, due to usage of BMI2PDEP/PEXTinstructions.
- Note:
- Allows compiler usage of BMI and MOVBE instructions, which improve CPU-bound performance. These instructions are non-AVX part of
MSVC: Changed optimization level from/O2to/O1with/Oi.- CPU-bound performance improvements. For DXVK-type workloads (DirectX-to-Vulkan translation layer) on out-of-order CPUs (all x86-64 CPUs) fitting a code segment into the instruction cache is preffered to fastest code. Older CPUs with slower and smaller cache will see the most significant performance improvements.
- Note: For
GCC, change from-O3to-Osleads to compilation failure, probably due to alignment issues.
- Note: For
- CPU-bound performance improvements. For DXVK-type workloads (DirectX-to-Vulkan translation layer) on out-of-order CPUs (all x86-64 CPUs) fitting a code segment into the instruction cache is preffered to fastest code. Older CPUs with slower and smaller cache will see the most significant performance improvements.
GCC: Added-Wno-deprecatedflag to silence not very useful compilation warnings about-mtune=x86-64usage.MSVC: Set/Qpar-report:1and/Qvec-report:1flags to decrease compilation logs size.MSVCandMSVC-AVX2-O1_Oi_Ob3-LTCG-AMD64: Additions of defaultMSVCflags, in order to have an explicit way to changeMSVCdefaults - no functional changes.Clang: Added-fwhole-program-vtablescompiler flag.- Requires FullLTO, enables single-implementation devirtualization and virtual constant propagation, improves CPU-bound performance.
GCC/MSVC/Clang: Added explanatory comments to compiler optimization flags.
- Updated DXVK Low Latency-part of the source code to the latest state.
- Improvements in DXVK Low Latency are significant enough to bulid a new DXVK-GPLALL release.
- Note: Upstream DXVK commits, that are part of DXVK Low Latency 2.7.1-3-521, are not part of this release, due to upstream DXVK WIP-state.
- Improvements in DXVK Low Latency are significant enough to bulid a new DXVK-GPLALL release.
List of ported and adapted DXVK Low Latency commits:
40e778a - [dxvk] Enable calibrated timestamps only for low-latency modes - Minor optimizations
159ff57 - [dxvk] Fix ringbuffer allocator bug - Minor optimizations
eeb9e83 - [dxvk] Reduce memory footprint of latency markers - Minor optimizations
e554b1b - [dxvk] Optimize DxvkSharedAllocationCache::freeAllocation - Minor optimizations
c42092a - [dxvk] Optimize DxvkCsChunkPool - Minor optimizations
b81475c - [dxvk] Optimize sync::Fence - Minor optimizations
96daf3c - [util] Add sync::AtomicSignal based on WaitOnAddress / futex - Threaded sleep
5311d42 - [dxvk] Add ThreadedSleep - Threaded sleep
6ccd7b4 - [dxvk] Add frame duration measurement for app-thread - Jitter display
9b85b1e - [dxvk] Add jitter tracking - Jitter display
07d5b3e - [hud] Change initialization location of latency hud items - Jitter display
9659672 - [hud] Add jitter hud item - Jitter display