Skip to content

Releases: Digger1955/dxvk-gplall

2.6.8-1

Choose a tag to compare

@Digger1955 Digger1955 released this 28 Jul 02:18
e8620ac

DXVK-GPLALL 2.6.8-1 (DXVK-GPLAsync-LowLatency 2.6.8-1)

Based on DXVK 2.6.2 and commits from DXVK 2.7, DXVK 2.7.1 and later, DXVK GPLAsync 2.6.2 and DXVK GPLAsync 2.7.1-patch, DXVK Low Latency 2.7.1-commit 9659672.

It consists of:

  • DXVK-GPLALL-GCC-WinMacLinux-SSE2-O3-LTO 2.6.8-1
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-GENERIC 2.6.8-1
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-INTEL 2.6.8-1
  • DXVK-GPLALL-MSVC-Windows-SSE2-O1_Oi_Ob3-LTCG 2.6.8-1
  • DXVK-GPLALL-MSVC-Windows-AVX2-O1_Oi_Ob3-LTCG-AMD64 2.6.8-1
  • DXVK-GPLALL-MSVC-Windows-SSE4.2-O1_Oi_Ob3-LTCG-INTEL64 2.6.8-1
  • DXVK Native-GPLALL-GCC-SSE2-O3-LTO 2.6.8-1
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-GENERIC 2.6.8-1
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-INTEL 2.6.8-1
  • Source Code
  • dxvk.conf

DXVK-GPLALL Roadmap Update:

  • DXVK-GPLALL 3.x branch is cancelled and will not be released.
    • Reasons:
      • DXVK 3.x introduced a large amount of performance/stability/rendering issues on different OSes/GPUs/Drivers.
        • For the first time from the moment I started to use DXVK, DXVK 3.x with and without GPL usage failed to run Borderlands 2 Remastered (D3D9 x32) on my test system. That alone shows that DXVK targets only a specific set of OSes/GPUs/Drivers. Not to mention, AMD RDNA 1/2 Windows performance, Intel Xe issues and etc.
      • Continuation of unjustified increase in Vulkan requirements to the ridiculous point in order to run applicaitons that were released from 2000s to 2010s.
        • Vulkan 1.4 should not be a requirement to play WarCraft 3 - I have played it on SiS Mirage 2 M760GX integrated graphics.
      • DXVK's development team questionable development decisions:
    • As a result, I don't see any practical reason to spend my limited time resources on DXVK-GPLALL 3.x. After all, DXVK-GPLALL is a hobby project, which I develop in my free time. I would rather spend it on a software that works across wide range of devices and does what it was designed to do well. Sorry for any inconvenience.
  • DXVK-GPLALL 2.x branch development, specifically DXVK-GPLALL 2.6.x, will procceed as planned.
    • Note: Actually, amount of changes in this release more than justfies naming DXVK-GPLALL 2.8.0-1. But, in order not to break existing naming scheme and show that this release does have same requirements as DXVK 2.6, it has been decided to keep 2.6.x naming for current and future releases.

Release Notes:

Sixth maintenance release of DXVK-GPLALL 2.6.x branch.

  • Significant changes:
    • DXVK: [d3d9] Improve SetRenderState state tracking
      • Improves CPU-bound performance in D3D9 applications.
    • DXVK: D3D9 Tracking mask cleanup
      • Improves CPU-bound performance in D3D9 applications.
    • DXVK: Refactor pipeline layouts
      • Improves CPU-bound performance and shaders compilation time, reduces the amount of memory used for Push Constants from 128 to 64 bytes.
        • Interestingly, this PR lowers one of key Vulkan requirements - maxPushConstantSize - and since upstream DXVK raised this requirement to 256 bytes, this makes DXVK-GPLALL somewhat unique, as it is the only DXVK fork that has such low maxPushConstantSize requirement.
    • DXVK: [d3d11] Support planar outputs in video processor
      • Implements video playback in some applications.
    • DXVK: 7e55c2d - [d3d11] Use existing MD5 hash to look up shader objects
      • Significantly speeds up D3D11 shaders compilation.
    • DXVK: Render target binding fix
      • Improves CPU-bound performance, allows to use GPLAsync-2.7.1 patch.
    • DXVK: de4d685 - [dxvk] Use smaller global sampler set
      • Fixes performance issues on NVIDIA GPUs, lowers max VRAM usage.
    • DXVK: 69b57e8 - [dxvk] Don't needlessly destroy samplers if there is space
      • Improves CPU-bound performance.
    • DXVK: [d3d9] Rework render target binding logic
      • Improves CPU-bound performance in D3D9 applications.
    • DXVK: [d3d9] Optimize StretchRect stretching resolves + D3D9 blit + resolve rework + 6d48513 - [dxvk] Support average resolve in blit shader
      • Improves GPU-bound performance in D3D9 applications that use MSAA.
        • Upstream DXVK MSAA shader was rewritten to keep same GPU requirements - it uses the to GLSL 450 and does not require shaderInt64. In the process of rewriting MSAA shader was optimized - its performance now scales with MSAA count and a few performance tweaks were applied. As a result, it should be faster than upstream DXVK MSAA shader at 2x MSAA and 4x MSAA and should be equal at 8x MSAA.
    • DXVK: [d3d9] Bind framebuffer rework
      • Improves CPU-bound performance in D3D9 applications.
    • DXVK: Optimize D3D9 vertex buffer binding
      • Improves CPU-bound performance in D3D9 applications.
    • DXVK: 660d382 - [dxvk] Limit shader compiler threads to 8 on 32-bit
      • Set to 12 in DXVK-GPLALL. Due to all DXVK-GPLALL 2.6.8-1 improvements does not affect shaders compilation time in 32-bit applications, but lower address space usage, which is useful for different applications, like Fallout New Vegas, Borderlands 2, World of Warcraft 3.3.5a etc.
    • DXVK: Some rasterizer discard optimizations
      • Improves GPU-bound performance in some cases.
    • DXVK: 5c45928 - [d3d9] Pass view format and swizzle to samplers - Implement border color swizzle -
      • Previously unimplemented part of PR#5390 - now fully operational.
    • DXVK: Only enable CUDA interop extensions on winevulkan
      • Fixes address space issues on NVIDIA GPUs.
    • GPLALL: Adjusted descriptor set allocation, changed MaxDesiredPoolCount.
      • Rebalanced to be more optimal for usage without GPL (i.e. when there is no severe address space issues) to improve RAM usage, CPU-bound and GPU-bound performance, should improve frametime consistency.
    • DXVK: Rewrite unmaped memory allocator
      • Improves CPU-bound performance and lowers RAM usage in D3D9 applications.
    • DXVK: a137f78 - [dxvk] Add option to enable descriptor update templates on legacy
      • Enabled by default in DXVK-GPLALL. Improves CPU-bound performance.
    • GPLALL: Reverted 51f2e24 - [util,dxvk] Limit frame rate based on deadline + d819ec2 - [util] Implement refresh rate heuristic for frame rate limiter. Author - Digger1955.
      • Resolves frame pacing issues in dxvk.framePace = max-frame-latency with and without enabled DXVK FPS Limiter.
        • Heuristic logic was the main culprit of the observed frame pacing issues in dxvk.framePace = max-frame-latency mode. Due to upstream DXVK's defaults, heuristic logic was always enabled, to check whether FPS Limiter needs to be enabled. More info at the respective upstream DXVK issue: doitsujin#5802
        • As a result, default state for DXVK FPS Limiter is now -1 - always disabled by default.
    • GPLALL: Raised number of required draw calls for render target, after which asynchronous pipeline compilation for corresponding shader will be enabled. Author - Digger1955.
      • Improves CPU-bound performance, slightly speeds up shaders compilation time, due to more balanced Sync/Async compilation usage, and Async graphical side effects are lessened, because of more shaders getting synchronous pipeline compilation.
      • CPU-bound performance improvements and shader compilation time improvements in DXVK-GPLALL 2.6.8-1 made current number of draw calls inefficient - there is now no need to send so many shaders to the Async compilation in order to av...
Read more

2.6.7-1

Choose a tag to compare

@Digger1955 Digger1955 released this 14 Jun 15:55
deec286

DXVK-GPLALL 2.6.7-1 (DXVK-GPLAsync-LowLatency 2.6.7-1)

Based on DXVK 2.6.2 and commits from DXVK 2.7, DXVK 2.7.1 and later, DXVK GPLAsync 2.6.2 and DXVK GPLAsync 2.7-patch, DXVK Low Latency 2.7.1-commit 9659672.

It consists of:

  • DXVK-GPLALL-GCC-WinMacLinux-SSE2-O3-LTO 2.6.7-1
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-GENERIC 2.6.7-1
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-INTEL 2.6.7-1
  • DXVK-GPLALL-MSVC-Windows-SSE2-O1_Oi_Ob3-LTCG 2.6.7-1
  • DXVK-GPLALL-MSVC-Windows-AVX2-O1_Oi_Ob3-LTCG-AMD64 2.6.7-1
  • DXVK-GPLALL-MSVC-Windows-SSE4.2-O1_Oi_Ob3-LTCG-INTEL64 2.6.7-1
  • DXVK Native-GPLALL-GCC-SSE2-O3-LTO 2.6.7-1
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-GENERIC 2.6.7-1
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-INTEL 2.6.7-1
  • Source Code
  • dxvk.conf

DXVK-GPLALL Roadmap:

  • After the release of DXVK 3.x, two separate DXVK-GPLALL branches will be maintained.

    • DXVK-GPLALL 3.x branch, which will consist of upstream DXVK 3.x + GPLAsync-patch + Low Latency commits + GPLALL-specific commits. It will be updated on every upstream DXVK 3.x release, but only after every aforementioned component is considered ready.
      • DXVK-GPLALL 3.x branch will be the most performant version of DXVK-GPLALL, due to DXVK 3.x improvements, such as new shader compiler, usage of VK_EXT_descriptor_heap, huge number of various improvements etc.
    • DXVK-GPLALL 2.x branch, specifically DXVK-GPLALL 2.6.x branch, which will consist of upstream DXVK 2.6.2 + later commits + GPLAsync-patch + Low Latency commits + GPLALL-specific commits. It will be maintained for GPUs/drivers that do not meet requirements for DXVK 2.7.x and later. It will be updated if/when there will be reasonable amount of changes to justify new release.
      • DXVK-GPLALL 2.6.x branch is chosen due to its broader compatibility, the fact that DXVK-GPLALL 2.6.7-1 is the most performant variant of DXVK-GPLALL 2.x branch and because it incorporates huge number of fixes from upstream DXVK that are not present in DXVK-GPLALL 2.7.x branch.
  • DXVK-GPLALL 2.7.x branch will no longer be updated. This decision was made, because DXVK-GPLALL 2.6.x branch have accumulated huge number of fixes and improvements from upstream DXVK that are not present in DXVK-GPLALL 2.7.x branch. Due to this fact, it makes no sense to update DXVK-GPLALL 2.7.x branch.

    • DXVK-GPLALL 2.7.1-4 users should update to DXVK-GPLALL 2.6.7-1. The only missing functionality from DXVK-GPLALL 2.6.x branch is VK_EXT_descriptor_buffer, which is already deperecated by upstream DXVK in favor of VK_EXT_descriptor_heap in DXVK 3.x.
      • Note: On devices that do not have timestampValidBits = 64 (Adreno/Mail/PowerVR etc. mobile GPUs, Intel iGPUs, Intel ARC A GPU Series, possibly more) DXVK-GPLALL will crash applications randomly, if dxvk.framePace is set to dxvk.framePace = "low-latency" (default value) or dxvk.framePace = "low-latency-vrr-x". In order to use DXVK-GPLALL 2.6.7-1 on such devices set dxvk.framePace = "max-frame-latency" or dxvk.framePace = "min-latency". Performance of these modes is improved in DXVK-GPLALL 2.6.7-1 in comparison to both DXVK-GPLALL 2.7.1-4 and DXVK-GPLALL 2.6.6-1.
        • Reason: timestampValidBits check can't be implemented, due to DXVK 2.6.x codebase.
          • In order to check, whether GPU has timestampValidBits = 64, use Vulkan GPUInfo website, section "Queue Families". Example - NVIDIA GeForce GT730M.

Release Notes:

Fifth maintenance release of DXVK-GPLALL 2.6.x branch.

Next maintenance releases will have less changes, due to more significant incompatibilities between DXVK 2.6.x and next DXVK versions.

List of ported and adapted upstream DXVK commits:

a1abc9c - [wsi] Don't treat SDL_SetWindowPosition failure as fatal

b1b1d97 - [d3d9] Fix weird 16-bit swapchain format mapping - Port built-in shaders to dxbc-spv IR

011706c - [d3d11] Fix deadlock when recursively destroying state objects

89087e6 - [dxgi] Update UMD version

e3d3f69 - [dxvk] Always re-route mapped allocations to cached memory on tilers

817081a - [d3d9] Add option to force draw time buffer uploads - Add option to force draw time upload to work around game bug

3174b66 - [util] Enable draw time buffer uploads for CSGO and Insurgency - Add option to force draw time upload to work around game bug

1986a9c - [dxvk] Correctly track "move" usage

35eb7a2 - [dxvk] Fix feature check when adding image usage flags

c2308b6 - [d3d9] Disable sRGB support for D3DFMT_L8

bdda2cc - [dxvk] Bump maximum number of dynamic states to 20 - Make depth-stencil and depth bias state fully dynamic

6f0e2f1 - [dxvk] Make depth bias enable fully dynamic - Make depth-stencil and depth bias state fully dynamic

92d2145 - [dxvk] Remove depth bias enable from rasterizer state - Make depth-stencil and depth bias state fully dynamic

ab32c6c - [dxvk] Make depth bounds state fully dynamic - Make depth-stencil and depth bias state fully dynamic

e9708d1 - [dxvk]...

Read more

2.7.1-4

Choose a tag to compare

@Digger1955 Digger1955 released this 22 May 12:39
83df10a

DXVK-GPLALL 2.7.1-4 (DXVK-GPLAsync-LowLatency 2.7.1-4)

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-4
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-GENERIC 2.7.1-4
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-INTEL 2.7.1-4
  • DXVK-GPLALL-MSVC-Windows-SSE2-O1_Oi_Ob3-LTCG 2.7.1-4
  • DXVK-GPLALL-MSVC-Windows-AVX2-O1_Oi_Ob3-LTCG-AMD64 2.7.1-4
  • DXVK-GPLALL-MSVC-Windows-SSE4.2-O1_Oi_Ob3-LTCG-INTEL64 2.7.1-4
  • DXVK Native-GPLALL-GCC-SSE2-O3-LTO 2.7.1-4
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-GENERIC 2.7.1-4
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-INTEL 2.7.1-4
  • Source Code
  • dxvk.conf

Release Notes:

  • GPLALL: Improved state cache functionality by removing duplicated depth-stencil states and using depth-stencil states synthesised at write time. Author - Laitinlok.
    • Improves CPU-bound performance, fixes minor stuttering.
  • GCC: GitHub Actions infrastructure, which is used to provide releases, updated to GCC 16.1.
  • MSVC: GitHub Actions infrastructure, which is used to provide releases, was forced to MSVC 2022, due to MSVC 2026 WIP-state.

2.7.1-3

Choose a tag to compare

@Digger1955 Digger1955 released this 30 Apr 11:30
a162593

DXVK-GPLALL 2.7.1-3 (DXVK-GPLAsync-LowLatency 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

2.6.6-1

Choose a tag to compare

@Digger1955 Digger1955 released this 16 Apr 09:46
330cac9

DXVK-GPLALL 2.6.6-1 (DXVK-GPLAsync-LowLatency 2.6.6-1)

Based on DXVK 2.6.2 and commits from DXVK 2.7, DXVK 2.7.1 and later, DXVK GPLAsync 2.6.2 and DXVK GPLAsync 2.7-patch, DXVK Low Latency 2.7.1-commit 9659672.

It consists of:

  • DXVK-GPLALL-GCC-WinMacLinux-SSE2-O3-LTO 2.6.6-1
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-GENERIC 2.6.6-1
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-INTEL 2.6.6-1
  • DXVK-GPLALL-MSVC-Windows-SSE2-O1_Oi_Ob3-LTCG 2.6.6-1
  • DXVK-GPLALL-MSVC-Windows-AVX2-O1_Oi_Ob3-LTCG-AMD64 2.6.6-1
  • DXVK-GPLALL-MSVC-Windows-SSE4.2-O1_Oi_Ob3-LTCG-INTEL64 2.6.6-1
  • DXVK Native-GPLALL-GCC-SSE2-O3-LTO 2.6.6-1
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-GENERIC 2.6.6-1
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-INTEL 2.6.6-1
  • Source Code
  • dxvk.conf

Release Notes:

IMPORTANT: DXVK-GPLALL 2.6.x version will be maintained for GPUs/drivers that do not have VK_KHR_maintenance5 and/or maxPushConstantsSize=256. Commits from DXVK, DXVK GPLAsync, DXVK Low Latency will be ported to DXVK-GPLALL 2.6.x, if possible. Also, DXVK-GPLALL 2.6.x will be recompiled from time to time, when new compiler versions with significant improvements are out.

Fourth maintenance release of DXVK-GPLALL 2.6.x branch.

IMPORTANT: Please refer to Quick Start Guide to achieve the best results on the end-user system.

  • Significant changes:
    • DXVK: [dxvk] Throttle resource eviction
      • Improves performance under extreme memory pressure.
    • DXVK Low Latency: Use calibrated device timestamps for each submit
      • Significant precision and smoothness improvements for GPU Drivers that support VK_EXT_calibrated_timestamps. Note: VK_EXT_calibrated_timestamps was used instead of VK_KHR_calibrated_timestamps due to larger coverage of devices and drivers.
      • IMPORTANT: timestampValidBits check can't be implemented, due to DXVK 2.6.x codebase. In order to check, whether GPU has timestampValidBits = 64, use Vulkan GPUInfo website, section "Queue Families". Example - NVIDIA GeForce GT730M.
      • IMPORTANT: On devices that do not have timestampValidBits = 64 (Adreno/Mail/PowerVR etc. mobile GPUs, Intel iGPUs, Intel ARC A GPU Series, possibly more) DXVK-GPLALL will crash applications randomly, if dxvk.framePace is set to dxvk.framePace = "low-latency" (default value) or dxvk.framePace = "low-latency-vrr-x". In order to use DXVK-GPLALL 2.6.6-1 on such devices set dxvk.framePace = "max-frame-latency" or dxvk.framePace = "min-latency".
    • DXVK Low Latency: Minor optimizations
      • CPU-bound performance improvements.
    • DXVK Low Latency: Threaded sleep
      • Significant smoothness improvements, minor performance and latency improvement.
  • 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.

Next maintenance releases will have less changes, due to more significant incompatibilities between DXVK 2.6.x and next DXVK versions.

List of ported and adapted upstream DXVK commits:

584041f - [util] Add a frame cap for The Evil Within 2

c774d93 - [include] Fix Windows typedefs in native headers

5c3437c - [d3d11] Fix surface map flags check

a26a504 - [d3d11] Add D3D11Device::RegisterDeviceRemovedEvent() stub

b776f63 - [dxvk] Fix VVL error about vkGetPhysicalDeviceMultisamplePropertiesEXT

c10c75e - [d3d8] Readjust ZBIAS factor

aa7f779 - Support for MW:R HMW-Mod

08925ba - Add comment for AMD AGS crash in HMW-Mod

77d57f2 - [util] Add infinite warfare / iw7-mod support

8710c80 - [dxgi,dxvk] Add support for P010/P016 textures

a5d2ded - [d3d9] Allow cursor clears on hidden HW cursors

9d5dd98 - [d3d9] Add a tiny amount of padding to texture mapping data - [d3d9] Add a tiny amount of padding to texture mapping data

252bdd8 - [util] Remove BlazBlue textureMemory workaround - [d3d9] Add a tiny amount of padding to texture mapping data

c27ef1c - [util] Spoof GPU for Sims 3

fe277ae - Correct a few native API data types

eab5145 - [d3d11] Construct D3D11DXGISurface with only ID3D11Resource. - [d3d11] Implement subresource surface support.

0bf876e - [d3d11] Implement subresource surface support. - [d3d11] Implement subresource surface support.

4bbe487 - [util] Fix crash on resolution change in Pirates

c8d5d8e - [dxgi] Do not update target frame rate when PRESENT_TEST is set

aadc4b4 - meson: Fix glfw dependency request to use correct pkgconfig name

9f97d4c - native: Add define for DECLARE_INTERFACE_IID

31c5433 - [dxvk] Throttle resource eviction

d222d2c -...

Read more

2.7.1-2

Choose a tag to compare

@Digger1955 Digger1955 released this 30 Jan 07:15
f4be44f

DXVK-GPLALL 2.7.1-2 (DXVK-GPLAsync-LowLatency 2.7.1-2)

Based on DXVK 2.7.1, DXVK GPLAsync 2.7-patch, DXVK Low Latency 2.7.1-3.

It consists of:

  • DXVK-GPLALL-GCC-WinMacLinux-SSE2-O3-LTO 2.7.1-2
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-GENERIC 2.7.1-2
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-INTEL 2.7.1-2
  • DXVK-GPLALL-MSVC-Windows-SSE2-O2-LTCG 2.7.1-2
  • DXVK-GPLALL-MSVC-Windows-AVX2-O2-LTCG-AMD64 2.7.1-2
  • DXVK-GPLALL-MSVC-Windows-SSE4.2-O2-LTCG-INTEL64 2.7.1-2
  • DXVK Native-GPLALL-GCC-SSE2-O3-LTO 2.7.1-2
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-GENERIC 2.7.1-2
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-INTEL 2.7.1-2
  • Source Code
  • dxvk.conf

Release Notes:

IMPORTANT: Please refer to DXVK-GPLALL Wiki for information about changes to the recommended configuration of Low Latency Frame Pacing Options.

2.6.5-1

Choose a tag to compare

@Digger1955 Digger1955 released this 21 Dec 03:42
84c53d8

DXVK-GPLALL 2.6.5-1 (DXVK-GPLAsync-LowLatency 2.6.5-1)

Based on DXVK 2.6.2 and commits from DXVK 2.7, DXVK 2.7.1 and later, DXVK GPLAsync 2.6.2 and DXVK GPLAsync 2.7-patch, DXVK Low Latency 2.7.1-commit b7e76e6.

It consists of:

  • DXVK-GPLALL-GCC-WinMacLinux-SSE2-O3-LTO 2.6.5-1
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-GENERIC 2.6.5-1
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-INTEL 2.6.5-1
  • DXVK-GPLALL-MSVC-Windows-SSE2-O2-LTCG 2.6.5-1
  • DXVK-GPLALL-MSVC-Windows-AVX2-O2-LTCG-AMD64 2.6.5-1
  • DXVK-GPLALL-MSVC-Windows-SSE4.2-O2-LTCG-INTEL64 2.6.5-1
  • DXVK Native-GPLALL-GCC-SSE2-O3-LTO 2.6.5-1
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-GENERIC 2.6.5-1
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-INTEL 2.6.5-1
  • Source Code
  • dxvk.conf

Release Notes:

IMPORTANT: DXVK-GPLALL 2.6.x version will be maintained for GPUs/drivers that do not have VK_KHR_maintenance5 and/or maxPushConstantsSize=256. Commits from DXVK, DXVK GPLAsync, DXVK Low Latency will be ported to DXVK-GPLALL 2.6.x, if possible. Also, DXVK-GPLALL 2.6.x will be recompiled from time to time, when new compiler versions with significant improvements are out.

Third maintenance release of DXVK-GPLALL 2.6.x branch.

IMPORTANT: Please refer to DXVK-GPLALL Wiki for information about changes to the recommended configuration of Low Latency Frame Pacing Options.

Next maintenance releases will have less changes, due to more significant incompatibilities between DXVK 2.6.x and next DXVK versions.

List of ported and adapted upstream DXVK commits:

71ed2e6 - [d3d8/9] Adjust invalid viewport handling - [d3d8/9] Adjust invalid viewport handling

07084e1 - [d3d9] Only D3D_OK D3DMULTISAMPLE_NONE checks for NULL format - [d3d8/9] Adjust invalid viewport handling

87f809d - [d3d9] Relax UpdateTexture size validations for single mip textures

66ac77a - [d3d9] Clean up cursor logic

c9feb0d - [d3d9] Advertise multisample NULL format checks - [d3d9] Advertise multisample NULL format checks

554b4e1 - [d3d8] Log d3d9 bridge exceptions and handle them gracefully - [d3d9] Advertise multisample NULL format checks

f963433 - [util] Rename custom device name for Crazy Machines 3

7216d72 - [util] Set custom device name for World of Final Fantasy

dfa52b6 - [d3d9] Fast skip DrawIndexedPrimitive(UP) calls with 0 NumVertices

e37ab16 - [util] Hide nvidia in RaceRoom Racing Experience

9a80ae6 - [util] Disable direct buffer mapping for Lego Racers 2

49ab4b9 - [util] Disable direct buffer mapping for Smash Up Derby

8bd72bb - [d3d9] Relax lock dimension checks on SYSTEMMEM surfaces

5819a1a - [util] Correct naming of scaleDref option in example config

43db11f - [d3d9] Lock the device when applying or capturing state blocks - [d3d8/9] State block refactoring and fixes

49d928f - [d3d8] Refactor d3d8 state blocks - [d3d8/9] State block refactoring and fixes

55ca713 - [d3d8/9] Validate state block types on creation - [d3d8/9] State block refactoring and fixes

53eee4b - [util] Splinter a Steam profile for Pandora Tomorrow

b3da810 - [util] Enable memoryTrackTest for Blitzkrieg 2

f33133a - [util] Disable counting losables for Core Awaken series & Mine Dungeon 2

2f93097 - [dxgi] Return S_OK from DxgiSwapChain::SetRotation() for identity rotation.

faae3ed - [wsi] Introduce separate methods to save and restore window state

e5ca79b - [dxgi] Update saved window state on ResizeTarget

eb1e375 - [util] Fix D3DKMT_DESTROYDCFROMMEMORY hDc member name - [util] Link with gdi32 before dxgi and link D3DKMT functions directly on Win32 platform

f5ad1aa - [util] Move initializers out of D3DKMT_DESTROYDCFROMMEMORY - [util] Link with gdi32 before dxgi and link D3DKMT functions directly on Win32 platform

847f7fd - [d3d11] Link with gdi32 before dxgi - [util] Link with gdi32 before dxgi and link D3DKMT functions directly on Win32 platform

0ad714f - [util] Import D3DKMT functions directly - [util] Link with gdi32 before dxgi and link D3DKMT functions directly on Win32 platform

66ad437 - [util] enable zeroMappedMemory for Ridge Racer Unbounded

47b4817 - [d3d9] Do sequence number tracking for directly mapped buffer - Ported and adapted by sTc2201

4463b5e - [d3d8] General casting and init cleanup - [d3d8] ZBIAS factor adjustment and general cleanup

2cb1816 - [d3d8] ZBIAS factor adjustment - [d3d8] ZBIAS factor adjustment and general cleanup

[1925f04](htt...

Read more

2.7.1-1

Choose a tag to compare

@Digger1955 Digger1955 released this 11 Sep 13:48
11ed50a

DXVK-GPLALL 2.7.1-1 (DXVK-GPLAsync-LowLatency 2.7.1-1)

Based on DXVK 2.7.1, DXVK GPLAsync 2.7-patch, DXVK Low Latency 2.7.1.

It consists of:

  • DXVK-GPLALL-GCC-WinMacLinux-SSE2-O3-LTO 2.7.1-1
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-GENERIC 2.7.1-1
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-INTEL 2.7.1-1
  • DXVK-GPLALL-MSVC-Windows-SSE2-O2-LTCG 2.7.1-1
  • DXVK-GPLALL-MSVC-Windows-AVX2-O2-LTCG-AMD64 2.7.1-1
  • DXVK-GPLALL-MSVC-Windows-SSE4.2-O2-LTCG-INTEL64 2.7.1-1
  • DXVK Native-GPLALL-GCC-SSE2-O3-LTO 2.7.1-1
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-GENERIC 2.7.1-1
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-INTEL 2.7.1-1
  • Source Code
  • dxvk.conf

Release Notes:

  • Reverted upstream DXVK 2.7 change which removes state cache starting from DXVK 2.7. Author - Laitinlok.
    • Upstream DXVK state cache and DXVK GPLAsync state cache fixes for Async and GPL were ported in full, including options controls in dxvk.conf and environment variables.
      • State cache would be useful when used with Async without GPL to reduce stuttering in cases where shaders aren't compiling fast enough without GPL. Having state cache enabled should improve frame pacing which might benefit the latency of the application.

2.6.4-1

Choose a tag to compare

@Digger1955 Digger1955 released this 06 Sep 11:22
8cb66e4

DXVK-GPLALL 2.6.4-1 (DXVK-GPLAsync-LowLatency 2.6.4-1)

Based on DXVK 2.6.2 and commits from DXVK 2.7, DXVK 2.7.1, DXVK GPLAsync 2.6.2 and DXVK GPLAsync 2.7-patch, DXVK Low Latency 2.7.1-commit d9d9c8f

It consists of:

  • DXVK-GPLALL-GCC-WinMacLinux-SSE2-O3-LTO 2.6.4-1
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-GENERIC 2.6.4-1
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-INTEL 2.6.4-1
  • DXVK-GPLALL-MSVC-Windows-SSE2-O2-LTCG 2.6.4-1
  • DXVK-GPLALL-MSVC-Windows-AVX2-O2-LTCG-AMD64 2.6.4-1
  • DXVK-GPLALL-MSVC-Windows-SSE4.2-O2-LTCG-INTEL64 2.6.4-1
  • DXVK Native-GPLALL-GCC-SSE2-O3-LTO 2.6.4-1
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-GENERIC 2.6.4-1
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-INTEL 2.6.4-1
  • Source Code
  • dxvk.conf

Release Notes:

IMPORTANT: DXVK-GPLALL 2.6.x version will be maintained for GPUs/drivers that do not have VK_KHR_maintenance5 and/or maxPushConstantsSize=256. Commits from DXVK, DXVK GPLAsync and DXVK Low Latency will be ported to DXVK-GPLALL 2.6.x, if possible. Also, DXVK-GPLALL 2.6.x will be recompiled from time to time, when new compiler versions with significant improvements are out.

Second maintenance release of DXVK-GPLALL 2.6.x branch. Next maintenance releases will have less changes, due to more significant incompatibilities between DXVK 2.6.x and next DXVK versions.

List of ported and adapted upstream DXVK commits:

3265e4a - [util] Remove Crysis 3 vendor override

070a0a6 - [d3d9] Adjust texture memory reporting - [d3d8/9] Assorted fixes and nits

9738d6c - [util] Atempt to align most config profiles - [d3d8/9] Assorted fixes and nits

1b213e8 - [d3d9] Adjust DrawRect/TriPatch returns - [d3d8/9] Assorted fixes and nits

5743ae9 - [d3d9] Silence GetPresentStats warn loggers - [d3d8/9] Assorted fixes and nits

842b812 - [util] Add a custom device ID for Comanche 4 - [d3d8/9] Assorted fixes and nits

07f0d8e - [d3d9] Validate present parameters on calls to ResetEx - [d3d9] Fix several Wine 9Ex tests

65f9c3e - [d3d9] Validate SetMaximumFrameLatency MaxLatency values - [d3d9] Fix several Wine 9Ex tests

df0f17c - [d3d9] Don't allow D3DPOOL_MANAGED use on extended devices - [d3d9] Fix several Wine 9Ex tests

0286e99 - [d3d9] Validate shader constant register count - [d3d9] Fix several Wine 9Ex tests

61eec75 - [d3d9] Add a modeCountCompatibility config option - [d3d9] Add a modeCountCompatibility config option

2476135 - [util] Add modeCountCompatibility for the first 2 AquaNox games - [d3d9] Add a modeCountCompatibility config option

08c98f6 - [d3d11] Slience video related log spam in Overcooked AYCE

15dd702 - [d3d9] Add some missing texture validation - [d3d9] Texture creation cleanup + missing D3D9Ex texture creation validations

e915668 - [d3d9] Don't add RT usage for every offscreen surface - [d3d9] Texture creation cleanup + missing D3D9Ex texture creation validations

835e98c - [d3d9] Improve naming in StretchRect - [d3d9] Texture creation cleanup + missing D3D9Ex texture creation validations

c3125fe - [util] Hide Nvidia in Fallout New Vegas

5ef9412 - [util] Cap Witcher 1 at 300 fps

9f39fef - [util] Cap Guilty Gear at 60 fps

3425b1c - [util] Add a frame rate cap for Psi-Ops

2014db4 - [d3d9] Allow using StretchRect for simple copies on 9Ex devices - v.2.6.x Backport: TF2 fixes

8ec25ef - [d3d9] Properly set alpha test dirty flag when changing RT - v.2.6.x Backport: TF2 fixes

120fa71 - [d3d9] Address several d3d9Ex specific behaviors - [d3d9] Additional d3d9Ex Wine test fixes

bb2a46c - [d3d9] Restrict ATI2 format use - [d3d9] Additional d3d9Ex Wine test fixes

097c1a5 - [d3d8] Don't ref D3D9 state blocks in D3D8Device::CreateStateBlock - [d3d8] Top Spin fixes

3485312 - [util] Enforce legacy DISCARD behavior for Top Spin - [d3d8] Top Spin fixes

d0c3cde - [d3d9] Handle setting/getting texture palettes - [d3d9] Handling more state-related setters/getters

ba88d0c - [d3d9] Handle setting/getting NPatchMode - [d3d9] Handling more state-related setters/getters

dee6649 - [d3d9] Return 0 on calls to GetGPUThreadPriority - [d3d9] Handling more state-related setters/getters

46488ce - [d3d8] Use Set/GetNPatchMode for D3DRS_PATCHSEGMENTS - [d3d9] Handling more state-related setters/getters

448fd8f - [util] Track memory use for Alone in the Dark

bcb0abd - [util] Set cachedDynamicResources for Everybody's Gone to the Rapture

1e1551e - [d3d9] Fix crash in GetVulkanImageInfo for SYSMEM or NULL textures

84c233b - [d3d9] Validate the cursor bitmap against adapter mode dimensions - [d3d8/9] Yet another motley crew of fixes

fdf0d9d - [d3d8] Consolidate the present param validations - [d3d8/9] Yet another motley crew of fixes

97b220d - [d3d9] Allow the creation of D3DDEVTYPE_REF devices - [d3d8/9] Yet another motley crew of fixes

f0b9a1c - [util] Add a cautionary note on samplerAnisotropy - [d3d8/9] Yet another motley crew of fixes

5bf84f3 - [d3d9] Bring back allowDiscard hack - [d3d9] Bring back allowDiscard hack

5621bd0 - [util] Disable allowDiscard for ...

Read more

2.7-3

Choose a tag to compare

@Digger1955 Digger1955 released this 05 Aug 02:48
3a36637

DXVK-GPLALL 2.7-3 (DXVK-GPLAsync-LowLatency 2.7-3)

Based on DXVK 2.7, DXVK GPLAsync 2.7-patch, DXVK Low Latency 2.7-commit cd329aa.

It consists of:

  • DXVK-GPLALL-GCC-WinMacLinux-SSE2-O3-LTO 2.7-3
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-GENERIC 2.7-3
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-INTEL 2.7-3
  • DXVK-GPLALL-MSVC-Windows-SSE2-O2-LTCG 2.7-3
  • DXVK-GPLALL-MSVC-Windows-AVX2-O2-LTCG-AMD64 2.7-3
  • DXVK-GPLALL-MSVC-Windows-SSE4.2-O2-LTCG-INTEL64 2.7-3
  • DXVK Native-GPLALL-GCC-SSE2-O3-LTO 2.7-3
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-GENERIC 2.7-3
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-INTEL 2.7-3
  • Source Code
  • dxvk.conf

Release Notes:

  • Reverted upstream DXVK 2.7 change which removes state cache starting from DXVK 2.7. Author - Laitinlok.

    • Upstream DXVK state cache and DXVK GPLAsync state cache fixes for Async and GPL were ported in full, including options controls in dxvk.conf and environment variables.
      • State cache would be useful when used with Async without GPL to reduce stuttering in cases where shaders aren't compiling fast enough without GPL. Having state cache enabled should improve frame pacing which might benefit the latency of the application.
  • Enabled additional optimization (/Qpar) for MSVC SSE2-optimized (/arch:SSE2) builds of DXVK-GPLALL to futher increase performance in CPU-bound situations, speed ​​up shader compilation. Author - Digger1955

    • Note: /Qpar-report:2 and /Qvec-report:2 for MSVC builds are enabled for logging purposes and do not affect runtime performance in any way.