github Digger1955/dxvk-gplasync-lowlatency DXVK-GPLALL-2.7.1-3
DXVK-GPLAsync-LowLatency 2.7.1-3 (DXVK-GPLALL 2.7.1-3)

11 hours ago

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-sections flags.
      • Has the same effect as /Gw, /GF, /Gy, /OPT:REF,ICF for MSVC - reduces DLLs size and potentially improves performance.
    • GCC-SSE4.2-O3-LTO-INTEL: Added -mbmi, -mbmi2, -mmovbe flags.
      • Allows compiler usage of BMI, BMI2 and MOVBE instructions, which improve CPU-bound performance. These instructions are non-AVX part of x86-64-v3 set and do not change DXVK-GPLALL requirements specified in Builds Reference Guide.
        • Note: MSVC-AVX2-O1_Oi_Ob3-LTCG-AMD64 build uses all of these instructions as a part of /arch:AVX2. MSVC-SSE4.2-O1_Oi_Ob3-LTCG-INTEL64 build does not use these instructions, due to /arch:SSE4.2, and there is no way to specify usage of separate instruction in MSVC compiler.
    • GCC-SSE4.2-O3-LTO-GENERIC: Added -mbmi, -mmovbe flags.
      • Allows compiler usage of BMI and MOVBE instructions, which improve CPU-bound performance. These instructions are non-AVX part of x86-64-v3 set and do not change DXVK-GPLALL requirements specified in Builds Reference Guide.
        • Note: -mbmi2 flag is not used, in order to avoid performance regression on AMD CPUs up to and including Zen2, due to usage of BMI2 PDEP/PEXT instructions.
    • MSVC: Changed optimization level from /O2 to /O1 with /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 -O3 to -Os leads to compilation failure, probably due to alignment issues.
    • GCC: Added -Wno-deprecated flag to silence not very useful compilation warnings about -mtune=x86-64 usage.
    • MSVC: Set /Qpar-report:1 and /Qvec-report:1 flags to decrease compilation logs size.
    • MSVC and MSVC-AVX2-O1_Oi_Ob3-LTCG-AMD64: Additions of default MSVC flags, in order to have an explicit way to change MSVC defaults - no functional changes.
    • Clang: Added -fwhole-program-vtables compiler 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.

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

Don't miss a new dxvk-gplasync-lowlatency release

NewReleases is sending notifications on new releases.