Skip to content

Detailed Changelog

Digger1955 edited this page Jul 28, 2026 · 31 revisions

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: https://github.com/doitsujin/dxvk/issues/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 avoid stutter.
      • Based on tests results m_rtBindingFrameCount was changed from m_rtBindingFrameCount >= 2 to m_rtBindingFrameCount >= 6.
    • GPLALL: Implemented significant improvements to upstream DXVK FPS Limiter, such as constant timer inteval - 1 ms, which is now does not depend on CPU or OS capabilities, implemented per-CPU-architecture specifc pause macros to save energy during busy-waiting, improved overall sleep logic. Author - Digger1955
      • I was advised to debug DXVK FPS Limiter issues myself by DXVK's development team - https://github.com/doitsujin/dxvk/issues/5802#issuecomment-5023787838 - and that is what I did.
      • DXVK FPS Limiter in dxvk.framePace = max-frame-latency in DXVK-GPLALL 2.6.8-1 uses signifcantly less CPU time (higher efficiency), while having better frame pacing (due to stable logic and higher precision), compared to DXVK-GPLALL 2.6.7-1 and DXVK 3.0.2.
    • GPLALL: Changed default dxvk.framePace mode from dxvk.framePace = "low-latency" to dxvk.framePace = "max-frame-latency". Author - Digger1955
      • Reasons:
        • Benchmarks. Link to Benchmarks in DXVK-GPLALL Wiki.
        • Broader compatibility, due to workarounding DXVK-GPLALL 2.6.7-1 known issue - now 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 by default works properly out of the box, no user intervention is needed. Note: The cause of the issue is not yet fixed. So do not set dxvk.framePace = "low-latency" or dxvk.framePace = "low-latency-vrr-x" modes on aforementioned devices.
        • Unfortunately, there is still no way to automatically set refresh rate for dxvk.framePace = "low-latency-vrr-x" mode, which is the best low latency mode. And since user in any case will have to tweak DXVK-GPLALL config to get the best result for his specific needs, if user wants to use Low Latency feature, there is no reason to set worse low latency mode (dxvk.framePace = "low-latency") by default.

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

Benchmarks:

In order to showcase the progress between different DXVK-GPLALL versions, improvements that were made to upstream DXVK's default FPS Limiter and the reason why DXVK-GPLALL 2.6.8-1 default mode was changed from dxvk.framePace = "low-latency" to dxvk.framePace = "max-frame-latency", it has been decided to provide some benchmarks. Also, benchmarks show the direction of improvements in both upstream DXVK and DXVK-GPLALL.

Link to Benchmarks in DXVK-GPLALL Wiki.

List of ported and adapted upstream DXVK commits:

2bb8900 - [d3d9] Improve SetRenderState state tracking - [d3d9] Improve SetRenderState state tracking

37d9930 - [d3d9] Remove stored shader masks - D3D9 Tracking mask cleanup

84e125d - [d3d9] Remove unused IsDMAPSampler - D3D9 Tracking mask cleanup

e83f48e - [d3d9] Add dref clamp bits for VS textures - D3D9 Tracking mask cleanup

a39414c - [d3d9] Move texture type bitmask update into UpdateTextureBitmasks - D3D9 Tracking mask cleanup

54c2776 - [d3d9] Remove cubemap tracking mask - D3D9 Tracking mask cleanup

f2706fb - [d3d9] Remove lastSamplerType - D3D9 Tracking mask cleanup

c3755a5 - [d3d9] Move texture tracking masks to struct - D3D9 Tracking mask cleanup

b992dd8 - [d3d9] Move render target tracking masks to struct - D3D9 Tracking mask cleanup

a0ecae3 - [d3d9] Move vertex buffer tracking masks to struct - D3D9 Tracking mask cleanup

51f7a36 - [dxvk] Add new pipeline layout and binding map abstractions - Refactor pipeline layouts

9a37b63 - [dxvk] Add new pipeline layout objects to shader pipelines - Refactor pipeline layouts

4c05f0e - [dxvk] Ensure compatibility between old and new pipeline layouts - Refactor pipeline layouts

4efbc94 - [dxvk] Use new pipeline layouts for pipelines and resource updates - Refactor pipeline layouts

2db1ac8 - [dxvk] Use new pipeline layouts for descriptor set allocation - Refactor pipeline layouts

63d8b00 - [dxvk] Use new pipeline layouts for resource updates - Refactor pipeline layouts

373e62e - [dxvk] Use new pipeline layouts for hazard checking - Refactor pipeline layouts

1ae6050 - [dxvk] Special-case uniform buffers in descriptor updates - Refactor pipeline layouts

dcce371 - [dxvk] Do not set buffer slice when binding buffer views - Refactor pipeline layouts

91a4146 - [dxvk] Use separate arrays for different resource types - Refactor pipeline layouts

788f984 - [dxvk] Remove old pipeline layout code - Refactor pipeline layouts

2ff3e2e - [dxvk] Restore push constant trimming - Refactor pipeline layouts

00561c1 - [dxvk] Rework push constant tracking - Refactor pipeline layouts

2f6f1f3 - [dxbc] Don't declare rasterizer push constant for compute shaders - Refactor pipeline layouts

d9955a6 - [dxvk] Rework DxvkBindingInfo - Refactor pipeline layouts

50b989e - [dxbc] Use unique set and binding numbers for shader resources - Refactor pipeline layouts

adaf53c - [dxbc] Treat different resource types as their own namespace - Refactor pipeline layouts

a6c6a3b - [dxvk] Reduce number of resource slots - Refactor pipeline layouts

5730271 - [dxvk] Add convenience method to create pipeline layout - Refactor pipeline layouts

a643e0a - [dxvk] Add method to create built-in compute pipelines - Refactor pipeline layouts

b5bd391 - [dxvk] Add helper to manage built-in shaders - Require maintenance4 and maintenance5

0214c54 - [dxvk] Add method to create built-in graphics pipeline - Refactor pipeline layouts

1dbe53c - [hud] Use new built-in functions for pipeline creation - Refactor pipeline layouts

42958e7 - [dxvk] Use new built-in pipeline creation for swapchain blitter - Refactor pipeline layouts

9e9bb81 - [dxvk] Use new built-in pipeline creation for clear pipelines - Refactor pipeline layouts

2b9741d - [dxvk] Don't create shader modules for internal clear pipelines - Require maintenance4 and maintenance5

02b91e1 - [dxvk] Use new built-in pipeline creation for blit pipelines - Refactor pipeline layouts

fcb55fc - [dxvk] Don't create shader modules for internal blit pipelines - Require maintenance4 and maintenance5

b6de022 - [dxvk] Use new built-in pipeline creation for copy pipelines - Refactor pipeline layouts

a2738e0 - [dxvk] Don't create shader modules for internal copy pipelines - Require maintenance4 and maintenance5

daddabc - [dxvk] Use new built-in pipeline creation for resolve pipelines - Refactor pipeline layouts

8080bb7 - [dxvk] Don't create shader modules for internal resolve pipelines - Require maintenance4 and maintenance5

431f37f - [d3d9] Use new built-in pipeline creation for format conversion - Refactor pipeline layouts

03e7123 - [d3d9] Don't create shader module for format helper pipelines - Require maintenance4 and maintenance5

1a0cb45 - [dxvk] Reduce push constant size to 64 Bytes - Refactor pipeline layouts

0cdebaf - [dxvk] Use generic push constant layout for linked pipelines - Refactor pipeline layouts

3c5a371 - [d3d9] Bind output for ProcessVertices as raw buffer view - Refactor pipeline layouts

e9eff9c - [dxvk] Use internal descriptor set layout pointer for set look-up

1085ccb - [dxvk] Rename dxvk_descriptor.*

0f4bf3b - [util] Add functionality to query rejected submission request type - Rework tiler submission heuristic (again)

a169933 - [d3d11] Rework render pass boundary submission heuristic for tilers - Rework tiler submission heuristic (again)

5d09231 - [util] Remove medium hint for submission heuristic - Rework tiler submission heuristic (again)

4751079 - [util] Add D3DDestructionNotifier implementation - Clean up device and instance creation

6647394 - [d3d11] Add D3DDestructionNotifier to all relevant interfaces - Clean up device and instance creation

2e0d0fe - [dxgi] Add D3DDestructionNotifier to swap chain - Clean up device and instance creation

e73b324 - [d3d11] Remove unused image subresources from D3D11VideoProcessorInputView - [d3d11] Support planar outputs in video processor

218360b - [d3d11] Add VideoProcessorView class - [d3d11] Support planar outputs in video processor

d677a4c - [d3d11] Use VideoProcessorView in D3D11VideoProcessorInputView - [d3d11] Support planar outputs in video processor

c39233a - [d3d11] Use VideoProcessorView in D3D11VideoProcessorOutputView - [d3d11] Support planar outputs in video processor

c78dc47 - [d3d11] Allow video blit shader to handle planar and YCbCr outputs - [d3d11] Support planar outputs in video processor

7d9faaa - [d3d11] Use multiple passes to render planar video output - [d3d11] Support planar outputs in video processor

9c69d21 - [d3d11] Refactor ClearView method - Rework ClearView

4a988d3 - [d3d11] Support clearing planar video output views - Rework ClearView

d44370e - [dxvk] Fix broken aspect check in clearImageView - Rework ClearView

3494386 - [d3d11] Remove unused GetView method from D3D11VideoProcessorOutputView - Rework ClearView

cbd8253 - [d3d11] Store image directly in video output view

2e2d6e7 - [d3d11] Reintroduce shadow image path for video processor views

e93c4fc - [d3d11] Fix planar video output when dst rect is enabled

7e55c2d - [d3d11] Use existing MD5 hash to look up shader objects

0b4a79d - [dxvk] Rename some more descriptor structures - Descriptor management rework

a532b6d - [dxvk] Only allow one image usage bit per view - Descriptor management rework

7ffa281 - [dxvk] Add image layout property to image view key - Descriptor management rework

51dfd04 - [d3d11] Set explicit view layout for RTVs, DSVs and UAVs - Descriptor management rework

57abc54 - [d3d9] Set explicit view layout for RTVs and DSV - Descriptor management rework

6d97353 - [dxvk] Remove render target layout from attachment info - Descriptor management rework

677f670 - [d3d11] Validate buffer size for UpdateSubresource - Descriptor management rework

53c495e - [dxvk] Use plain image view descriptor info for resource updates - Descriptor management rework

a7dce4f - [dxvk] Implement equality checks for render target classes - Render target binding fix

35d7974 - [dxvk] Clean up and fix render target updates - Render target binding fix

f620939 - [dxvk] Properly end render pass if there are pending resolves

de4d685 - [dxvk] Use smaller global sampler set - Post-descriptor buffer cleanup

69b57e8 - [dxvk] Don't needlessly destroy samplers if there is space - Sampler simplification

c5e6e31 - [dxvk] Fix live sampler reporting - Sampler simplification

e5e001e - [dxvk] Remove total sampler counter - Sampler simplification

a06cb51 - [d3d9] Remove sampler count HUD - Sampler simplification

6eb92c2 - [d3d9] Rework RT binding logic - [d3d9] Rework render target binding logic

1cf46d3 - [d3d9] Remove redundant GetImageView - [d3d9] Rework render target binding logic

366df98 - [d3d8/9] Clean up CheckDeviceFormat and CreateImageSurface formats

78b1e01 - [d3d9] Return error when creating lockable MS texture - [d3d9] Optimize StretchRect stretching resolves

ab8ad4f - [dxvk] Add resolving blit - [d3d9] Optimize StretchRect stretching resolves

1bf8878 - [d3d9] Remove intermediate resolve in StretchRect - [d3d9] Optimize StretchRect stretching resolves

f2f7bf0 - [dxvk] Remove unused DxvkMetaBlitRenderPassKey - D3D9 blit + resolve rework

133e80a - [dxvk] Refactor meta blit pipeline creation - D3D9 blit + resolve rework

11590fb - [dxvk] Pass filter to blit pipeline - D3D9 blit + resolve rework

211e3bd - [dxvk] Rework multisampled blit shader - D3D9 blit + resolve rework

5a2c246 - [d3d9] Only use readonly depth layout if necessary

c958880 - Add missing ID3DDestructionNotifier support in DXGI - Add missing ID3DDestructionNotifier support in DXGI

8d74493 - [d3d9] Fix shared resource behavior - [d3d9] Shared resource fixes (based on d3d9ex wine tests)

6d48513 - [dxvk] Support average resolve in blit shader

4889adf - [d3d9] Don't use RT mask in UpdateActiveHazardsRT - [d3d9] Bind framebuffer rework

0f62760 - [d3d9] Rework BindFramebuffer - [d3d9] Bind framebuffer rework

4e603f7 - [d3d9] Avoid rebinding frame buffer based on shader change - [d3d9] Bind framebuffer rework

b8832d5 - [d3d9] Consolidate ATOC & alpha test state changes - [d3d9] TF2 fixes

29dc5c1 - [d3d9] Correct spelling of Reference - [d3d9] TF2 fixes

6a37435 - [d3d9] Override sampler anisotropy only on multi-mip textures - [d3d9] Override sampler anisotropy only on multi-mip textures

f271a1d - [d3d9] Don't hold adapter pointer in format table

96b223e - [d3d9] Forward 9On12 args to device - Display whether device is 11on12 or 9on12 device in HUD

425e3c9 - [d3d9] Display whether device is a 9On12 device - Display whether device is 11on12 or 9on12 device in HUD

86d4b25 - [d3d11] Display whether device is an 11on12 device - Display whether device is 11on12 or 9on12 device in HUD

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

e0863c2 - [d3d9] Keep depth write state in mind when trying to keep DS hazards - [d3d9] Keep depth write state in mind when trying to keep DS hazards

89b7637 - [d3d9] Keep COLORWRITEMASK state in mind when trying to keep RT hazards - [d3d9] Keep depth write state in mind when trying to keep DS hazards

841c499 - [dxvk] Get raw image view descriptors - Implement descriptor buffers

ff0f815 - [util] Add convenience class for fence sync points - Implement descriptor buffers

0e78a8c - [dxvk] Assign high memory priority to dedicated HVV allocations - Implement descriptor buffers

b327601 - [dxvk] Check whether views and samplers actually changed - Implement descriptor buffers

95001cd - [dxvk] Use force_inline for some common refcounting methods - Implement descriptor buffers

833ee11 - [dxvk] Turn image view usage to flag type - [d3d9] Add feedback loop usage to RT image view

635dae6 - [d3d9] Add feedback loop usage to attachment image views - [d3d9] Add feedback loop usage to RT image view

cac185f - [d3d9] Update the new texture type before checking diff

b433d32 - [d3d9] Statically register all linker slots used by FF - [d3d9] Preparation for the FF Ubershader

ca749ed - [dxso] Emit all outputs that fixed function fragment shaders expect - [d3d9] Preparation for the FF Ubershader

159f0c4 - [d3d9] Reorganize spec constants - [d3d9] Preparation for the FF Ubershader

ed17382 - [d3d9] Slightly improve spec const naming - [d3d9] Preparation for the FF Ubershader

2c3869a - [d3d9] Turn drefScaling into spec constant - [d3d9] Preparation for the FF Ubershader

252891d - [d3d9] Reduce size of VertexBlendCount field - [d3d9] Preparation for the FF Ubershader

bb24f08 - [d3d9] Clean up parts of the fixed function generator - [d3d9] Preparation for the FF Ubershader

0e06635 - [d3d9] Simplify vertex and index buffer binding - Optimize D3D9 vertex buffer binding

ea98788 - [d3d9] Only update buffer range when re-binding same vertex buffer - Optimize D3D9 vertex buffer binding

e4e43ed - [d3d9] Move non-dirty flags out of D3D9DeviceFlag - [d3d9] Move non-dirty flags out of D3D9DeviceFlag

bd0dc07 - [d3d9] Clean up SetRenderTargetInternal - [d3d9] Move non-dirty flags out of D3D9DeviceFlag

4bf7f3f - [d3d9] Use D_READONLY_S_OPTIMAL layout for DS sampling views

9e09adb - [d3d9] Reset texture projected bitmask

660d382 - [dxvk] Limit shader compiler threads to 8 on 32-bit - Note: Changed to 12 in GPLALL.

30f6f83 - [dxvk] Always include depth and stencil aspects in barriers

07ae4ab - [build] Link with version DLL on Windows builds - Only hide Intel vendor ID for XeSS 1.x

4ccfdab - [dxgi] Do not hide Intel GPU when the XeSS library is version 2 or above - Only hide Intel vendor ID for XeSS 1.x

843b200 - [dxvk] Do not fuse clears with feedback loops

ba4c7e0 - [d3d8] Always quick return on failure - [d3d8] Handle odd cases of texture UAF

f1fa1a5 - [d3d8] Add a UAF texture guard config option - [d3d8] Handle odd cases of texture UAF

ec44064 - [util] Force sampler anisotropy for Mafia

d435948 - [dxvk] Disable HVV usage if zeroMappedMemory option is set

5c45928 - [d3d9] Pass view format and swizzle to samplers - Implement border color swizzle - Note: Previously unimplemented part of PR#5390.

5000fb1 - [d3d9] Simplify and fix light enablement - Simplify D3D9 fixed-function lighting

67dba69 - [dxgi] Create a windowed swapchain instead when the fullscreen mode scanline order or scaling is invalid.

68dbde1 - [dxvk] Enable VK_EXT_dynamic_rendering_unused_attachments - Some rasterizer discard optimizations

0566ef7 - [dxvk] Enable rasterizer discard if GS does not export position - Some rasterizer discard optimizations

9e293e7 - [dxvk] Do not pass unnecessary state for pipelines with rasterizer discard - Some rasterizer discard optimizations

3fcacb8 - [dxvk] Disable raster-related dynamic state if raster is disabled - Some rasterizer discard optimizations

5ab213f - [dxvk] Fix transform feedback synchronization - Some rasterizer discard optimizations

a30e715 - [util] Don't error out if created directory already exists

0174158 - [util] Add check for winevulkan usage - Only enable CUDA interop extensions on winevulkan

994aaf5 - [dxvk] Disable CUDA interop extensions on Windows and native - Only enable CUDA interop extensions on winevulkan

a2e671e - [util] Avoid division by zero with invalid refresh rates

6454283 - [util] Actually return proper refresh period

8dc0423 - [dxvk] Fix memory ordering for release

3c6a6ff - [dxvk] Fix self-assignment of resource cookie for imported resources

f2f7b50 - [util] Add FPS limit for Manhunt

6ff51fc - [d3d9] Do not transform normals if WorldView is not invertible

cc13f9d - Revert "[d3d9] Ignore buffer lock range for static D3DPOOL_DEFAULT buffers"

1c11472 - [dxvk] Add helper for unmappable memory blobs - Rewrite unmaped memory allocator

31e1787 - [d3d9] Use new unmapping code for textures - Rewrite unmaped memory allocator

57343d1 - [d3d9] Use new unmapping code for shaders - Rewrite unmaped memory allocator

8d4115b - [d3d9] Remove old unmapping code - Rewrite unmaped memory allocator

0002371 - [d3d9] Add option to ignore buffer locking ranges - Add option to ignore D3DDPOOL_DEFAULT buffer lock range

c2f9dfc - [util] Enable ignoring default lock ranges for Splinter Cell Chaos Theory - Add option to ignore D3DDPOOL_DEFAULT buffer lock range

deed337 - [dxgi] Use singleton for DXGI options

b5bebe5 - [util] Enable ignoring default lock ranges for Halo Trial and Halo Custom Edition

f08cb4d - [dxgi] Write back altered swapchain flags

a137f78 - [dxvk] Add option to enable descriptor update templates on legacy

dbfb867 - [dxgi] Hide Intel vendor ID for XeSS < 2.0.2.68 (#5798)

List of reverted upstream DXVK commits:

51f2e24 - [util,dxvk] Limit frame rate based on deadline - Limit frame rate to display refresh - Reverted

d819ec2 - [util] Implement refresh rate heuristic for frame rate limiter - Limit frame rate to display refresh - Reverted

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] Make depth-stencil state fully dynamic - Make depth-stencil and depth bias state fully dynamic

da33bdf - [dxvk] Only enable dynamic stencil test when using a stencil format - Make depth-stencil and depth bias state fully dynamic

94252d6 - [util] Add shared_mutex wrapper - Add shader cache and enable dxbc-spirv by default

01cfc8e - [util] Add FNV-1a implementation - Add shader cache and enable dxbc-spirv by default

48d25e6 - [util] Make fnv1a hash operate efficiently on byte arrays - Optimize pipeline look-up if there are many pipeline variants

9b1bb7b - [dxvk] Add hash functions to graphics and compute pipeline state - Optimize pipeline look-up if there are many pipeline variants

ceeb1d8 - [dxvk] Add efficient look-up table for pipeline variants - Optimize pipeline look-up if there are many pipeline variants

46ce92e - [dxvk] Use new pipeline variant table for graphics pipelines - Optimize pipeline look-up if there are many pipeline variants

4412884 - [dxvk] Use new pipeline variant table for compute pipelines - Optimize pipeline look-up if there are many pipeline variants

4057d3e - [util] Remove thread-safe list - Optimize pipeline look-up if there are many pipeline variants

9380aaa - [dxvk] Bump spec constant count to 20 - Optimize pipeline look-up if there are many pipeline variants

f64cac5 - [dxvk] Use fnv1a for DxvkHashState - Optimize pipeline look-up if there are many pipeline variants

1d4120a - [dxvk] Remove DxvkFramebufferKey - Optimize pipeline look-up if there are many pipeline variants

dcfb183 - [dxvk] Silence annoying gcc warnings

85b10cc - [dxvk] Enable VK_EXT_sample_locations if supported - Implement centered sample locations

e8d6c2a - [dxvk] Use small_vector for dynamic states - Implement centered sample locations

deb71c8 - [dxvk] Set up dynamic sample locations as necessary - Implement centered sample locations

dbdcda9 - [dxvk] Recreate depth-stencil image with SAMPLE_COMPATIBLE_DEPTH_BIT - Implement centered sample locations

d7fb1a3 - [d3d9] Implement D3DRS_MULTISAMPLEANTIALIAS - Implement centered sample locations

f082ec7 - [meta] Add VK_EXT_sample_locations to profile - Implement centered sample locations

1e4b86a - [meta] Add VK_EXT_extended_dynamic_state3 to profile - Implement centered sample locations

be4ac08 - [d3d9] Adjust fixed function shaders HUD element

cc41851 - [dxvk] Fix thread synchronization on pipeline compiles - Fix parallel pipeline variant compiles

602d7a8 - [dxvk] Adjust logic that assigns compile worker priorities - Fix parallel pipeline variant compiles

48d852b - [d3d9] Add a config option for cube texture depth format support

d7b1a29 - [util] Extend Fallout NV regex to include the GOG release

4277b7e - [d3d11] Fail device creation for some cases unsupported on Windows

80c80bf - [d3d11] Include all planes in subresource layout DepthPitch calculation.

2cae043 - [d3d9] Consolidate SWVP HUD

3db36db - [d3d9,dxgi] Add unified dxvk.maxFrameRate option

ab0940f - [meta] Fix sample config derp

eae7563 - [dxvk] Dirty-check input layouts in the backend - Optimize D3D9 input layout binding

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.

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

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 - [util] Disable direct image mapping for Total War Pharaoh Dynasties

b02cac8 - [meta] FIFA regex adjustment

4357d63 - [util] Enable zeroMappedMemory for Dawn of War DE

fae3c43 - [meta] Expand the W40K DoW DE regex

6f3a758 - [util] Enable zeroMappedMemory for Nioh 2

1ebe643 - [CI] Run steamrt container with --user 1001

1676dca - [dxvk] Fix build failure with Clang 22

List of ported and adapted DXVK Low Latency commits:

9b15fdc - [dxvk] Switch to implicit VRR frame pacing - Switch to implicit VRR pacing

  • Note: No functional changes compared to 691cab5

075d652 - [dxvk] Drop the V-Sync requirement for VRR pacing - Switch to implicit VRR pacing

  • Note: No functional changes compared to b7e76e6

1a928cd - [dxvk] Disable V-Sync buffer tracking

cf650d7 - [dxvk] Add VK_KHR_calibrated_timestamps - Use calibrated device timestamps for each submit

  • Note: VK_EXT_calibrated_timestamps was used instead of VK_KHR_calibrated_timestamps due to larger coverage of devices and drivers.

ae4db00 - [dxvk] Improve GPU runtime estimation - Use calibrated device timestamps for each submit

177919e - [util] Add ringbuffer allocator - Use calibrated device timestamps for each submit

b10ff87 - [dxvk] Add query pools to the frame pacer - Use calibrated device timestamps for each submit

28a142e - [dxvk] Write device timestamp at the end of each submit - Use calibrated device timestamps for each submit

76592cf - [dxvk] Use device timestamps for frame pacing - Use calibrated device timestamps for each submit

96f0acf - [dxvk] Check VK_KHR_calibrated_timestamps support for frame pacing - Use calibrated device timestamps for each submit

  • 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".

55558cb - [dxvk] Fix GPU runtime in GpuProgress

330afbd - [dxvk] Improve robustness to stutters

40e778a - [dxvk] Enable calibrated timestamps only for low-latency modes - Minor optimizations

  • IMPORTANT: This commit makes possible for DXVK-GPLALL to work on devices that do not have timestampValidBits = 64 (Adreno/Mail/PowerVR etc. mobile GPUs, Intel iGPUs, Intel ARC A GPU Series, possibly more) in dxvk.framePace = "max-frame-latency" or dxvk.framePace = "min-latency" modes.

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

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.

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 - [d3d9] Disable depth bounds test if min > max

f0abc47 - [include] Update Vulkan headers - Update to VK_KHR_present_id2/wait2

492afc5 - [dxvk] Enable VK_KHR_present_id2 and VK_KHR_present_wait2 if supported - Update to VK_KHR_present_id2/wait2

39863ab - [dxvk] Use present_wait2 and present_id2 functionality if present - Update to VK_KHR_present_id2/wait2

df15de2 - [dxvk] Enable KHR_surface_maintenance1 instance extension - Update to VK_KHR_present_id2/wait2

50e4f92 - [dxvk] Enable KHR_swapchain_maintenance1 if supported - Update to VK_KHR_present_id2/wait2

8b2f6b9 - [meta] Update Vulkan profile - Update to VK_KHR_present_id2/wait2

7e1573d - Change Buffer mapping strategy - Ported and adapted by sTc2201

7ec502f - Change Buffer mapping strategy - Ported and adapted by sTc2201

a0358f8 - [util] Remove unnecessary configs - Change Buffer mapping strategy

3972f88 - [d3d9] Ignore buffer lock range for static D3DPOOL_DEFAULT buffers - Change Buffer mapping strategy

32b79cd - [dxvk] Fix external fence validation error

1855e5e - [d3d9] Add ID3D9VkExtInterface

0118eaf - [d3d9] Deprecate ID3D9VkExtSwapchain::UnlockAdditionalFormats

c926f7f - [d3d8] Refactor d3d9 includes

6cec53d - [util] Remove redundant cachedWriteOnlyBuffers config options

b51ae83 - [util] Support bool operator for com pointers - Properly track D3D11 state object lifetime

9058367 - [d3d11] Initialize context after state objects - Properly track D3D11 state object lifetime

c767530 - [d3d11] Privately reference state objects - Properly track D3D11 state object lifetime

5c68150 - [d3d11] Destroy state objects at the end of their lifetime - Properly track D3D11 state object lifetime

21eb344 - [d3d9] Activate focus window when creating fullscreen device

89212a3 - [dxvk] Optimize load/store ops for single-aspect depth-stencil clears - [dxvk] Optimize load/store ops for single-aspect depth-stencil clears

0f76f9a - [dxvk] Clamp implicit scissor to viewport area - [dxvk] Optimize load/store ops for single-aspect depth-stencil clears

8b7b609 - [dxvk] Adjust render area based on used scissor rects - [dxvk] Optimize load/store ops for single-aspect depth-stencil clears

900779d - [dxvk] Also use secondaries for single color attachment passes - [dxvk] Optimize load/store ops for single-aspect depth-stencil clears

29fe1cd - [dxvk] Fix render area calculation for clears

7e42357 - [dxvk] Enable VK_EXT_border_color_swizzle if supported - Implement border color swizzle

5ff9b05 - [dxvk] Add view info to sampler fields - Implement border color swizzle

12cc324 - [dxvk] Implement border color swizzle - Implement border color swizzle

777730d - [dxvk] Always use view swizzle for swizzled border colors

b650fae - [d3d9] Bump allowed amount of staging/discard memory in flight

List of ported and adapted DXVK Low Latency commits:

d75b504 - [dxvk] Refactor frame sync for frame pacing

691cab5 - [dxvk] Switch to implicit VRR frame pacing - Switch to implicit VRR pacing

b7e76e6 - [dxvk] Drop the V-Sync requirement for VRR pacing - Switch to implicit VRR pacing

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.

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 Scarface - [d3d9] Bring back allowDiscard hack

1ed752a - [util] Fix annoying config warning

5346de7 - [dxvk] Flush overlapping clears in clearImageView

ac59b1d - [dxvk] Consider inactive render pass when clearing image views

6450041 - [util] Add a frame cap for HoAE

465b5b7 - [util] Enable dummy composition for Anno 117

List of ported and adapted DXVK Low Latency commits:

32d1d41 - [dxvk] Add GpuProgress to track GPU submits in realtime to improve low-latency frame pacing - Tracking GPU progress in real-time

5aa86b4 - [dxvk] Integrate GpuProgress into FramePacer - Tracking GPU progress in real-time

c8c26f9 - [dxvk] Store firstFrameId for frame pacing - Tracking GPU progress in real-time

ec04dc0 - [dxvk] Integrate GpuProgress into low-latency frame pacing - Tracking GPU progress in real-time

d56ed70 - [dxvk] Change outlier detection for low-latency frame pacing - Tracking GPU progress in real-time

a3503cc - [dxvk] Revert to calling vkWaitForPresentKHR only with V-Sync on

d9d9c8f - [hud] Remove presentlatency

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.

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

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

It consists of:

  • DXVK-GPLALL-GCC-WinMacLinux-SSE2-O3-LTO 2.6.3-1
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-GENERIC 2.6.3-1
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-INTEL 2.6.3-1
  • DXVK-GPLALL-MSVC-Windows-SSE2-O2-LTCG 2.6.3-1
  • DXVK-GPLALL-MSVC-Windows-AVX2-O2-LTCG-AMD64 2.6.3-1
  • DXVK-GPLALL-MSVC-Windows-SSE4.2-O2-LTCG-INTEL64 2.6.3-1
  • DXVK Native-GPLALL-GCC-SSE2-O3-LTO 2.6.3-1
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-GENERIC 2.6.3-1
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-INTEL 2.6.3-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.

First 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.

  • 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.

List of ported and adapted upstream DXVK commits:

  • Note: The most significant and important change is Resource eviction PR with all fixes for it and defragmentation for Intel Battlemage GPUs

9afa095 - [d3d9] Fix GetAvailableTextureMem

06e5081 - [d3d9] Clarify vendor hack support

f4e67e5 - [d3d9] Don't change offset when skipping binding null VB

fe6a45e - [d3d9] Only show unsupported vendor hack warnings once

0038671 - [dxvk] Fall back to system memory when exceeding vram budget - Resource eviction

d10abad - [dxvk] Move resource allocator pointer to base class - Resource eviction

4ecaa93 - [dxvk] Allow passing null storage to relocation list - Resource eviction

d7251f9 - [dxvk] Migrate resources from system memory to VRAM on use - Resource eviction

1cf8bb0 - [dxvk] Periodically evict resources when under memory pressure - Resource eviction

8c32bef - [dxvk] Do not try to reclaim chunks from other memory pools - Resource eviction

cb92aee - [dxvk] Introduce new "move" access type - Resource eviction

6a78506 - [dxvk] Add config option to override memory budget - Resource eviction

9640b39 - [dxvk] Also defrag fallback memory types - Resource eviction

7668000 - [dxvk] Add proper heap property to enforce memory budget - Resource eviction

8ea8093 - [dxvk] Also defrag chunks that resources get evicted from - Resource eviction

39ccbc1 - [hud] Separate fallback chunks from mapped chunks - Resource eviction

680bf24 - [dxvk] Only consider one heap for device-local memory allocations - Resource eviction

d51422e - [dxvk] Be less aggressive about defragmenting fallback memory - Resource eviction

dedeee1 - [d3d9/dxgi] Add a force refresh rate config option - [d3d9/dxgi] Add a force refresh rate config option

78eded8 - [d3d8] Optimize D3D8 adapter format caching - [d3d9/dxgi] Add a force refresh rate config option

2316680 - [util] Disable direct image mapping for LEGO City Undercover

21e1d92 - [dxvk] Fix layers crashing when passing null swapchain to vkDestroySwapchainKHR

f1b60fd - [dxvk] Keep roughly 1% of device-local memory heaps unused

cb44610 - [util] Don't error out for otherwise unknown CPU architectures

d2c8e54 - [dxvk] Error out at build time if AVX is enabled

d2ee3ff - [d3d9] Remove support for d3d9ex specific depth formats

389702c - [dxvk] Enable memory defragmentation on Intel Battlemage GPUs

f6d790e - [util] Fix black screen on return from the A.I.M. options window

5270f64 - [spirv] Exclude unique types from type look-up

e668e33 - [d3d9] Remove the forceSwapchainMSAA option

9c5c310 - [util] Don't count losable resources for Astebreed

dd46e48 - [util] disable d3d9.textureMemory for Dungeon Lords

fae0af9 - [util] Disable losable resource tracking for SFC3

c2d59b0 - [util] Hide Nvidia GPU for Wargame: European Escalation

24fcf38 - [util] Splinter Cell config option tweaks

5c40598 - [util] Add configs for GTR - FIA GT Racing Game

2ac295f - [util] Enable deviceLossOnFocusLoss for Test Drive Unlimited 2

e940893 - [util] Explicitly flush log stream

b8db71b - [dxgi] Support presenting swap chains without a window

35aa75e - [d3d9] Only fail on DISCARD|READONLY locks of D3DPOOL_DEFAULT resources

629a5f0 - [util] Enable d3d9.hideNvidiaGpu for Perilous Warp

6a5544f - [dxvk] Fix isoline tessellation enum order

Ported D3D8 part and d3d9_bridge of upstream DXVK commits:

118094c - [d3d8/9] General and format helpers cleanup

6847d00 - [d3d8/9] Clean up CheckDeviceFormat and CreateImageSurface formats

List of ported and adapted DXVK Low Latency commits:

c29abbe - [dxvk] Collect GPU and V-Sync buffer stats - [hud] Latency Details: Show GPU buffer, V-Sync buffer, etc.

6d40102 - [hud] Add latency details - [hud] Latency Details: Show GPU buffer, V-Sync buffer, etc.

cd329aa - [dxvk] Track frame pacing buffer stats only on demand - [hud] Latency Details: Show GPU buffer, V-Sync buffer, etc.

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

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

It consists of:

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

Release Notes:

  • Lowered number of required draw calls for render target, after which asynchronous pipeline compilation for corresponding shader will be enabled, which leads to lower peak CPU load during shader compilation process, which leads to less stutters in both amount and longevity. Author - Digger1955, scientific info - Britt Yazel
    • Based on tests results m_rtBindingFrameCount was changed from m_rtBindingFrameCount >= 5 to m_rtBindingFrameCount >= 2.
      • Note: Async graphical side effects are lessened, because of more shaders getting to use higher priority asynchronous pipeline compilation.

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

Based on DXVK 2.6.2, DXVK GPLAsync 2.6.2 and DXVK GPLAsync 2.7-patch, DXVK Low Latency 2.7-commit 1b5f3ac.

It consists of:

  • DXVK-GPLALL-GCC-WinMacLinux-SSE2-O3-LTO 2.6.2-1
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-GENERIC 2.6.2-1
  • DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-INTEL 2.6.2-1
  • DXVK-GPLALL-MSVC-Windows-SSE2-O2-LTCG 2.6.2-1
  • DXVK-GPLALL-MSVC-Windows-AVX2-O2-LTCG-AMD64 2.6.2-1
  • DXVK-GPLALL-MSVC-Windows-SSE4.2-O2-LTCG-INTEL64 2.6.2-1
  • DXVK Native-GPLALL-GCC-SSE2-O3-LTO 2.6.2-1
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-GENERIC 2.6.2-1
  • DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-INTEL 2.6.2-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.

  • Lowered number of required draw calls for render target, after which asynchronous pipeline compilation for corresponding shader will be enabled, which leads to lower peak CPU load during shader compilation process, which leads to less stutters in both amount and longevity. Author - Digger1955, scientific info - Britt Yazel
    • Based on tests results m_rtBindingFrameCount was changed from m_rtBindingFrameCount >= 5 to m_rtBindingFrameCount >= 2.
      • Note: Async graphical side effects are lessened, because of more shaders getting to use higher priority asynchronous pipeline compilation.

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

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

It consists of:

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

Release Notes:

  • Adjusted and implemented upstream DXVK change to HUD devinfo format. Author - Digger1955
    • Reason: Backporting old devinfo format is problematic. New devinfo format is better for Linux/MacOS and tolerable on Windows with adjustments that have been made.

DXVK-GPLALL 2.6.1-6 (DXVK-GPLAsync-LowLatency 2.6.1-6)

Based on DXVK 2.6.1, DXVK GPLAsync 2.6.1, DXVK Low Latency 2.6.1.

It consists of:

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

Release Notes:

GCC builds fixes only, MSVC builds users can ignore this release.

  • Fixed regression in GCC x86 builds, which led to use of 387 floating-point arithmetic instructions instead of sse instructions. Reported - ViNi-Arco, fixed - Digger1955.

    • Added -msse and -msse2 to compiler_args. GCC requires either of them to be explicitly set in order to make -mfpmath=sse effective.
  • Enabled multi-threaded Link-Time Optimization (-flto=auto) for GCC builds. Author - Digger1955

    • Does not affect compiler/linker output, speeds up LTO process. GCC requires -flto=auto to be explicitly set in order to activate multi-threading for LTO.
  • Provided GCC SSE4.2-optimized (-march=x86-64-v2) builds of DXVK-GPLALL with Link-Time Optimization (-flto=auto), -O3 optimization level, optimizations for Intel CPUs (-mtune=intel) and additional optimizations. Author - Digger1955

    • Enabled optimizations for Intel CPUs (-mtune=intel) to futher increase performance in CPU-bound situations and to speed ​​up shader compilation on Intel CPUs.
      • Note: For any other CPU in GCC SSE4.2-optimized builds -mtune=generic is used, because GCC does not have tuning options for AMD CPUs.
  • Provided GCC SSE4.2-optimized (-march=x86-64-v2) builds of DXVK-GPLALL with Link-Time Optimization (-flto=auto), -O3 optimization level, optimizations for up-to-date CPUs (-mtune=generic) and additional optimizations. Author - Digger1955

    • Explicitly set -mtune=genericto enable optimizations for any up-to-date CPUs. Up-to-date CPUs in GCC 15.1 are: AMD Zen and Intel Haswell or newer.
      • Note: It was already active, due to GCC behaviour, which does set -mtune=generic, if you specify -mtune=x86-64-v2.

DXVK-GPLALL 2.6.1-5 (DXVK-GPLAsync-LowLatency 2.6.1-5)

Based on DXVK 2.6.1, DXVK GPLAsync 2.6.1, DXVK Low Latency 2.6.1.

It consists of:

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

Release Notes:

  • Provided GCC SSE2-optimized (-march=x86-64, -mtune=x86-64) builds of DXVK-GPLALL with Link-Time Optimization (-flto) and -O3 optimization level. Author - Digger1955

    • Enabled use of Link-Time Optimization (-flto) by GCC linker with additional optimizations and enabled -O3 optimization level to futher increase performance in CPU-bound situations, speed ​​up shader compilation.
  • Provided GCC SSE4.2-optimized (-march=x86-64-v2, -mtune=x86-64-v2) builds of DXVK-GPLALL with Link-Time Optimization (-flto) and -O3 optimization level. They are replacing GCC AVX2-optimized builds. Author - Digger1955

    • Use of -march=x86-64-v2, -mtune=x86-64-v2 allows to use GCC optimizations, such as -O3 optimization level and -flto, which results in higher performance and broader compatibility than -march=x86-64-v3, -mtune=x86-64-v3. GCC AVX2-optimized builds (-march=x86-64-v3, -mtune=x86-64-v3) crashed at application launch (known compiler toolchain bug).
  • Provided MSVC SSE2-optimized (/arch:SSE2) builds of DXVK-GPLALL with Link-Time Optimization (LTO, a.k.a. /LTCG), /O2 optimization level and additional optimizations. Author - Digger1955

    • Enabled use of Link-Time Optimization (LTO, a.k.a. /LTCG) by MSVC linker with additional optimizations and enabled /O2 optimization level to futher increase performance in CPU-bound situations, speed ​​up shader compilation. Enabled additional optimizations (/Ob3 and /Qpar) to futher increase performance in CPU-bound situations, speed ​​up shader compilation.
  • Provided MSVC AVX2-optimized (/arch:AVX2) builds of DXVK-GPLALL with Link-Time Optimization (LTO, a.k.a. /LTCG), /O2 optimization level, optimizations for AMD CPUs in x64 DLLs (/favor:AMD64) and additional optimizations. Author - Digger1955

    • Enabled use of specific optimizations for AMD CPUs (/favor:AMD64 and '/d2vzeroupper') by MSVC compiler to get higher performance in CPU-bound situations on AMD CPUs in x64 applications. Enabled additional optimizations (/Ob3 and /Qpar) to futher increase performance in CPU-bound situations, speed ​​up shader compilation.
  • Provided MSVC SSE4.2-optimized (/arch:SSE4.2) builds of DXVK-GPLALL with Link-Time Optimization (LTO, a.k.a. /LTCG), /O2 optimization level, optimizations for Intel CPUs in x64 DLLs (/favor:INTEL64, a.k.a. /favor:EM64T) and additional optimizations. Author - Digger1955

    • Enabled use of specific optimizations for Intel CPUs (/favor:INTEL64 a.k.a. /favor:EM64T) by MSVC compiler to get higher performance in CPU-bound situations on Intel CPUs in x64 applications. Enabled additional optimizations (/Ob3 and /Qpar) to futher increase performance in CPU-bound situations, speed ​​up shader compilation.
      • Note: MSVC AVX2-optimized builds for Intel CPUs will not be provided. GCC/MSVC AVX2-optimized builds used with Intel CPUs exhibit degraded performance in power/temperature-limited cases due to downclocking/throttling. GCC/MSVC SSE4.2-optimized builds are providing the best possible performance for Intel CPUs.
    • Important: Update your Visual C++ 2015-2022 Runtime to the latest version before using DXVK for Windows. Link for Visual C++ Redistributable Runtimes - https://www.techpowerup.com/download/visual-c-redistributable-runtime-package-all-in-one/

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

Based on DXVK 2.6.1, DXVK GPLAsync 2.6.1, DXVK Low Latency 2.6.1.

It consists of:

  • DXVK-GPLALL-GCC-WinMacLinux 2.6.1-4
  • DXVK-GPLALL-GCC-WinMacLinux-AVX2 2.6.1-4
  • DXVK-GPLALL-MSVC-Windows 2.6.1-4
  • DXVK-GPLALL-MSVC-Windows-AVX2-O2-LTCG 2.6.1-4
  • DXVK Native-GPLALL-GCC 2.6.1-4
  • DXVK Native-GPLALL-GCC-AVX2 2.6.1-4
  • Source Code
  • dxvk.conf

Release Notes:

  • Changed minimal CPU requirements of GCC build from SSE3 to SSE2 (-march=x86-64, -mtune=x86-64). Author - Digger1955

    • GCC build is tuned for SSE2 by default in upstream DXVK. Use of SSE3 instructions alone does not bring much benefit to DXVK and will have a negligible effect when CPU-bound (even at the fixed clock speed), and no effect whatsoever when GPU-bound.
      • Note: Upstream DXVK implies -march=x86-64 and -msse3, but -mtune=x86-64. This combination does not produce the most optimal result.
  • Disabled GPL by default. GPL still can be enabled by setting dxvk.enableGraphicsPipelineLibrary = Auto in dxvk.conf. Author - Digger1955

  • Restructured and tuned meson.build to guarantee proper output by various compilers. Author - Digger1955

    • Enabled use -march=x86-64, -mtune=x86-64 and -march=x86-64-v3, -mtune=x86-64-v3 instead of separate instruction sets, corrected link_args structure.
  • Provided MSVC AVX2-optimized (/arch:AVX2) builds of DXVK-GPLALL with Link-Time Optimization (LTO, a.k.a /LTCG). Author - Digger1955

    • Enabled use of Link-Time Optimization (LTO, a.k.a /LTCG) by MSVC linker with additional optimizations to futher increase performance in CPU-bound situations, decrease shader compilation stutter. DLLs size increased by 5-10% due to LTO.
      • Important: AVX2-optimized (/arch:AVX2) builds minimum requirements is support for AVX2 instructions. Best results will be observed on AMD CPUs starting from AMD Zen 3 generation. For Intel CPUs performance may degrade in some power/temperature-limited cases due to downclocking/throttling, but it depends on end-user configuration.
    • Important: Update your Visual C++ 2015-2022 Runtime to the latest version before using DXVK for Windows. Link for Visual C++ Redistributable Runtimes - https://www.techpowerup.com/download/visual-c-redistributable-runtime-package-all-in-one/

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

Based on DXVK 2.6.1, DXVK GPLAsync 2.6.1, DXVK Low Latency 2.6.1.

It consists of:

  • DXVK-GPLALL-LinuxMac 2.6.1-3
  • DXVK-GPLALL-Windows 2.6.1-3
  • DXVK-GPLALL-AVX2-Optimized-LinuxMac 2.6.1-3
  • DXVK-GPLALL-AVX2-Optimized-Windows 2.6.1-3
  • DXVK Native-GPLALL 2.6.1-3
  • DXVK Native-GPLALL-AVX2-Optimized 2.6.1-3
  • Source Code
  • dxvk.conf

Release Notes:

  • Provided Windows (MSVC) builds of DXVK-GPLALL. Author - Digger1955

    • Windows (MSVC) builds minimum requirements is support for SSE2 instructions (Note: for Linux/MacOS - SSE3). It is the recommended DXVK build for using on Windows - it works better in CPU-bound situations, compiles shaders a little faster and is smaller in size in comparison to DXVK build for Linux/MacOS.
      • Note: PDBs are not provided.
    • Important: Update your Visual C++ 2015-2022 Runtime to the latest version before using DXVK for Windows. Link for Visual C++ Redistributable Runtimes - https://www.techpowerup.com/download/visual-c-redistributable-runtime-package-all-in-one/
  • Provided AVX2 (x86-64-v3) optimized builds of DXVK-GPLALL. Author - Digger1955

    • Enabled use of x86-64-v3 ISA by GCC compiler and AVX2 (/arch:AVX2) by MSVC compiler to increase performance in CPU-bound situations and decrease shader compilation stutter.
      • Important: AVX2 (x86-64-v3) builds minimum requirements is support for AVX2 instructions. Best results will be observed on AMD processors starting from AMD Zen 3 generation. For Intel processors performance may degrade due to downclocking/throttling, so it is not recommended for them.
    • Enabled use of /O2 level of compiler optimization for Windows (MSVC) AVX2 builds to futher increase performance in CPU-bound situations and decrease shader compilation stutter.
      • Important: Builds with -O2 level of compiler optimization for Linux/MacOS (GCC) x86-64-v3 are crashing applications at launch, and therefore are not provided. Since builds are compiled using GitHub infrastructure there is nothing can be done to fix it for now.
  • Implemented use of "VK_EXT_load_store_op_none" Vulkan extension instead of "VK_KHR_load_store_op_none". Author - Digger1955

    • They are identical, but "VK_EXT_load_store_op_none" available on a broader range of GPU drivers. This is especially important for mobile devices with Qualcomm Adreno GPUs, where it is not possible to change or update drivers.
  • Changed default number of used CPU logical threads from all to (CPULogicalThreads - 2). Author - Digger1955

    • Reason: It leads to less stuttering when compiling shaders while playing, in comparison to using all CPU logical threads.
  • Reverted back upstream DXVK change to HUD format - devinfo now shows Device Name, Vulkan Headers version and Vulkan Driver version again. Author - Digger1955

    • Reason: Inconsitent behaviour of new devinfo HUD format on different drivers, because of driver vendors.
  • Added fork tag to HUD - version now shows DXVK-GPLALL 2.6.1 on non-AVX2 builds and DXVK-GPLALL-AVX2-Optimized 2.6.1 on AVX2 builds. Author - Digger1955

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

Based on DXVK 2.6.1, DXVK GPLAsync 2.6.1, DXVK Low Latency 2.6.1.

It consists of:

  • DXVK-GPLAsync-LowLatency 2.6.1-2
  • DXVK Native-GPLAsync-LowLatency 2.6.1-2
  • Source Code
  • dxvk.conf

Release Notes:

  • Implemented Low Latency frame pacing mode that aims to greatly reduce latency with minimal impact in fps. Author - netborg-afps
  • Implemented Asynchronous pipeline compilation (Async) that aims to greatly reduce shader compilation stutter by not blocking the main thread when compiling async pipelines. Authors - jomihaka and Sporif
  • Implemented the ability to use both (together or separately) Graphics Pipeline Library (GPL) and Asynchronous pipeline compilation (Async) on DXVK 2.1 and later. Author - Ph42oN
  • Implemented default location for global DXVK configuration file (dxvk.conf) on Windows, Linux and MacOS. Author - Ph42oN
  • Implemented all of aforementioned in one DXVK package. Author - Digger1955

Clone this wiki locally