-
Notifications
You must be signed in to change notification settings - Fork 3
Detailed Changelog
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:
- DXVK 3.x introduced a large amount of performance/stability/rendering issues on different OSes/GPUs/Drivers.
- 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.
-
Reasons:
- 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.
-
Note: Actually, amount of changes in this release more than justfies naming
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 lowmaxPushConstantSizerequirement.
- Interestingly, this PR lowers one of key Vulkan requirements -
- Improves CPU-bound performance and shaders compilation time, reduces the amount of memory used for Push Constants from 128 to 64 bytes.
-
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.1patch.
- Improves CPU-bound performance, allows to use
-
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.
- Upstream DXVK MSAA shader was rewritten to keep same GPU requirements - it uses the to GLSL 450 and does not require
- Improves GPU-bound performance in D3D9 applications that use 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-1improvements 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.
- Set to 12 in DXVK-GPLALL. Due to all
-
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, changedMaxDesiredPoolCount.- 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-latencywith and without enabled DXVK FPS Limiter.- Heuristic logic was the main culprit of the observed frame pacing issues in
dxvk.framePace = max-frame-latencymode. 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.
- Heuristic logic was the main culprit of the observed frame pacing issues in
- Resolves frame pacing issues in
-
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
Asynccompilation in order to avoid stutter. - Based on tests results
m_rtBindingFrameCountwas changed fromm_rtBindingFrameCount >= 2tom_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-latencyin 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 defaultdxvk.framePacemode fromdxvk.framePace = "low-latency"todxvk.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-1known issue - now on devices that do not havetimestampValidBits = 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 setdxvk.framePace = "low-latency"ordxvk.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 useLow Latencyfeature, there is no reason to set worse low latency mode (dxvk.framePace = "low-latency") by default.
-
Reasons:
-
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
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 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
- 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-1is 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.6.x branch is chosen due to its broader compatibility, the fact that
- DXVK-GPLALL 3.x branch, which will consist of
-
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-4users should update toDXVK-GPLALL 2.6.7-1. The only missing functionality from DXVK-GPLALL 2.6.x branch isVK_EXT_descriptor_buffer, which is already deperecated by upstream DXVK in favor ofVK_EXT_descriptor_heapin 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, ifdxvk.framePaceis set todxvk.framePace = "low-latency"(default value) ordxvk.framePace = "low-latency-vrr-x". In order to useDXVK-GPLALL 2.6.7-1on such devices setdxvk.framePace = "max-frame-latency"ordxvk.framePace = "min-latency". Performance of these modes is improved inDXVK-GPLALL 2.6.7-1in comparison to bothDXVK-GPLALL 2.7.1-4andDXVK-GPLALL 2.6.6-1.-
Reason:
timestampValidBitscheck 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.
- In order to check, whether GPU has
-
Reason:
-
Note: On devices that do not have
-
Release Notes:
Fifth maintenance release of DXVK-GPLALL 2.6.x branch.
-
Significant changes:
-
DXVK: [d3d11] Fix deadlock when recursively destroying state objects- Allows correct functioning of Luma Framework.
-
DXVK: Make depth-stencil and depth bias state fully dynamic- Improves CPU-bound performance, allows to backport state cache improvements from
DXVK-GPLALL 2.7.1-4.
- Improves CPU-bound performance, allows to backport state cache improvements from
-
DXVK: Optimize pipeline look-up if there are many pipeline variants- Improves CPU-bound performance and shaders compilation time.
-
DXVK: Implement centered sample locations- Implements
D3DRS_MULTISAMPLEANTIALIASin D3D9 and fixes rendering issues in some games with MSAA.
- Implements
-
DXVK: Fix parallel pipeline variant compiles- Improves CPU-bound performance and shaders compilation time, allows to use more performant version of
GPLAsyncpatch.
- Improves CPU-bound performance and shaders compilation time, allows to use more performant version of
-
DXVK: eae7563 - [dxvk] Dirty-check input layouts in the backend- Improves CPU-bound performance.
-
-
DXVK-GPLALL changes:
-
GPLALL: Improved state cache functionality by removing duplicated depth-stencil states and using depth-stencil states synthesised at write time. Author - Laitinlok, backport - Digger1955- Improves CPU-bound performance, fixes minor stuttering.
-
GPLALL: Switched to more performant version ofGPLAsyncpatch. Author - Britt Yazel, backport - Digger1955- Improves CPU-bound performance and shaders compilation time.
-
GPLALL: Implemented Dynamic State-Aware Bind-Skip. Based on - isygold, idea and initial implementation - Laitinlok, actual implementation and backport - Digger1955- Improves CPU-bound performance and applications startup time.
-
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.
-
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
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.
Based on DXVK 2.7.1, DXVK GPLAsync 2.7-patch, DXVK Low Latency 2.7.1-commit 9659672 without upstream DXVK merge commit b687611.
It consists of:
- DXVK-GPLALL-GCC-WinMacLinux-SSE2-O3-LTO 2.7.1-3
- DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-GENERIC 2.7.1-3
- DXVK-GPLALL-GCC-WinMacLinux-SSE4.2-O3-LTO-INTEL 2.7.1-3
- DXVK-GPLALL-MSVC-Windows-SSE2-O1_Oi_Ob3-LTCG 2.7.1-3
- DXVK-GPLALL-MSVC-Windows-AVX2-O1_Oi_Ob3-LTCG-AMD64 2.7.1-3
- DXVK-GPLALL-MSVC-Windows-SSE4.2-O1_Oi_Ob3-LTCG-INTEL64 2.7.1-3
- DXVK Native-GPLALL-GCC-SSE2-O3-LTO 2.7.1-3
- DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-GENERIC 2.7.1-3
- DXVK Native-GPLALL-GCC-SSE4.2-O3-LTO-INTEL 2.7.1-3
- Source Code
- dxvk.conf
Release Notes:
IMPORTANT: Please refer to Quick Start Guide to achieve the best results on the end-user system.
-
DXVK-GPLALL changes:
-
GCC: Added-ffunction-sections,-fdata-sections,-Wl,--gc-sectionsflags.- Has the same effect as
/Gw,/GF,/Gy,/OPT:REF,ICFforMSVC- reduces DLLs size and potentially improves performance.
- Has the same effect as
-
GCC-SSE4.2-O3-LTO-INTEL: Added-mbmi,-mbmi2,-mmovbeflags.- Allows compiler usage of BMI, BMI2 and MOVBE instructions, which improve CPU-bound performance. These instructions are non-AVX part of
x86-64-v3set and do not change DXVK-GPLALL requirements specified in Builds Reference Guide.-
Note:
MSVC-AVX2-O1_Oi_Ob3-LTCG-AMD64build uses all of these instructions as a part of/arch:AVX2.MSVC-SSE4.2-O1_Oi_Ob3-LTCG-INTEL64build does not use these instructions, due to/arch:SSE4.2, and there is no way to specify usage of separate instruction inMSVCcompiler.
-
Note:
- Allows compiler usage of BMI, BMI2 and MOVBE instructions, which improve CPU-bound performance. These instructions are non-AVX part of
-
GCC-SSE4.2-O3-LTO-GENERIC: Added-mbmi,-mmovbeflags.- Allows compiler usage of BMI and MOVBE instructions, which improve CPU-bound performance. These instructions are non-AVX part of
x86-64-v3set and do not change DXVK-GPLALL requirements specified in Builds Reference Guide.-
Note:
-mbmi2flag is not used, in order to avoid performance regression on AMD CPUs up to and including Zen2, due to usage of BMI2PDEP/PEXTinstructions.
-
Note:
- Allows compiler usage of BMI and MOVBE instructions, which improve CPU-bound performance. These instructions are non-AVX part of
-
MSVC: Changed optimization level from/O2to/O1with/Oi.- CPU-bound performance improvements. For DXVK-type workloads (DirectX-to-Vulkan translation layer) on out-of-order CPUs (all x86-64 CPUs) fitting a code segment into the instruction cache is preffered to fastest code. Older CPUs with slower and smaller cache will see the most significant performance improvements.
-
Note: For
GCC, change from-O3to-Osleads to compilation failure, probably due to alignment issues.
-
Note: For
- CPU-bound performance improvements. For DXVK-type workloads (DirectX-to-Vulkan translation layer) on out-of-order CPUs (all x86-64 CPUs) fitting a code segment into the instruction cache is preffered to fastest code. Older CPUs with slower and smaller cache will see the most significant performance improvements.
-
GCC: Added-Wno-deprecatedflag to silence not very useful compilation warnings about-mtune=x86-64usage. -
MSVC: Set/Qpar-report:1and/Qvec-report:1flags to decrease compilation logs size. -
MSVCandMSVC-AVX2-O1_Oi_Ob3-LTCG-AMD64: Additions of defaultMSVCflags, in order to have an explicit way to changeMSVCdefaults - no functional changes. -
Clang: Added-fwhole-program-vtablescompiler flag.- Requires FullLTO, enables single-implementation devirtualization and virtual constant propagation, improves CPU-bound performance.
-
GCC/MSVC/Clang: Added explanatory comments to compiler optimization flags.
-
- Updated DXVK Low Latency-part of the source code to the latest state.
- Improvements in DXVK Low Latency are significant enough to bulid a new DXVK-GPLALL release.
- Note: Upstream DXVK commits, that are part of DXVK Low Latency 2.7.1-3-521, are not part of this release, due to upstream DXVK WIP-state.
- Improvements in DXVK Low Latency are significant enough to bulid a new DXVK-GPLALL release.
List of ported and adapted DXVK Low Latency commits:
40e778a - [dxvk] Enable calibrated timestamps only for low-latency modes - Minor optimizations
159ff57 - [dxvk] Fix ringbuffer allocator bug - Minor optimizations
eeb9e83 - [dxvk] Reduce memory footprint of latency markers - Minor optimizations
e554b1b - [dxvk] Optimize DxvkSharedAllocationCache::freeAllocation - Minor optimizations
c42092a - [dxvk] Optimize DxvkCsChunkPool - Minor optimizations
b81475c - [dxvk] Optimize sync::Fence - Minor optimizations
96daf3c - [util] Add sync::AtomicSignal based on WaitOnAddress / futex - Threaded sleep
5311d42 - [dxvk] Add ThreadedSleep - Threaded sleep
6ccd7b4 - [dxvk] Add frame duration measurement for app-thread - Jitter display
9b85b1e - [dxvk] Add jitter tracking - Jitter display
07d5b3e - [hud] Change initialization location of latency hud items - Jitter display
9659672 - [hud] Add jitter hud item - Jitter display
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_timestampswas used instead ofVK_KHR_calibrated_timestampsdue to larger coverage of devices and drivers. -
IMPORTANT:
timestampValidBitscheck can't be implemented, due to DXVK 2.6.x codebase. In order to check, whether GPU hastimestampValidBits = 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, ifdxvk.framePaceis set todxvk.framePace = "low-latency"(default value) ordxvk.framePace = "low-latency-vrr-x". In order to use DXVK-GPLALL 2.6.6-1 on such devices setdxvk.framePace = "max-frame-latency"ordxvk.framePace = "min-latency".
- Significant precision and smoothness improvements for GPU Drivers that support
-
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-sectionsflags.- Has the same effect as
/Gw,/GF,/Gy,/OPT:REF,ICFforMSVC- reduces DLLs size and potentially improves performance.
- Has the same effect as
-
GCC-SSE4.2-O3-LTO-INTEL: Added-mbmi,-mbmi2,-mmovbeflags.- Allows compiler usage of BMI, BMI2 and MOVBE instructions, which improve CPU-bound performance. These instructions are non-AVX part of
x86-64-v3set and do not change DXVK-GPLALL requirements specified in Builds Reference Guide.-
Note:
MSVC-AVX2-O1_Oi_Ob3-LTCG-AMD64build uses all of these instructions as a part of/arch:AVX2.MSVC-SSE4.2-O1_Oi_Ob3-LTCG-INTEL64build does not use these instructions, due to/arch:SSE4.2, and there is no way to specify usage of separate instruction inMSVCcompiler.
-
Note:
- Allows compiler usage of BMI, BMI2 and MOVBE instructions, which improve CPU-bound performance. These instructions are non-AVX part of
-
GCC-SSE4.2-O3-LTO-GENERIC: Added-mbmi,-mmovbeflags.- Allows compiler usage of BMI and MOVBE instructions, which improve CPU-bound performance. These instructions are non-AVX part of
x86-64-v3set and do not change DXVK-GPLALL requirements specified in Builds Reference Guide.-
Note:
-mbmi2flag is not used, in order to avoid performance regression on AMD CPUs up to and including Zen2, due to usage of BMI2PDEP/PEXTinstructions.
-
Note:
- Allows compiler usage of BMI and MOVBE instructions, which improve CPU-bound performance. These instructions are non-AVX part of
-
MSVC: Changed optimization level from/O2to/O1with/Oi.- CPU-bound performance improvements. For DXVK-type workloads (DirectX-to-Vulkan translation layer) on out-of-order CPUs (all x86-64 CPUs) fitting a code segment into the instruction cache is preffered to fastest code. Older CPUs with slower and smaller cache will see the most significant performance improvements.
-
Note: For
GCC, change from-O3to-Osleads to compilation failure, probably due to alignment issues.
-
Note: For
- CPU-bound performance improvements. For DXVK-type workloads (DirectX-to-Vulkan translation layer) on out-of-order CPUs (all x86-64 CPUs) fitting a code segment into the instruction cache is preffered to fastest code. Older CPUs with slower and smaller cache will see the most significant performance improvements.
-
GCC: Added-Wno-deprecatedflag to silence not very useful compilation warnings about-mtune=x86-64usage. -
MSVC: Set/Qpar-report:1and/Qvec-report:1flags to decrease compilation logs size. -
MSVCandMSVC-AVX2-O1_Oi_Ob3-LTCG-AMD64: Additions of defaultMSVCflags, in order to have an explicit way to changeMSVCdefaults - no functional changes. -
Clang: Added-fwhole-program-vtablescompiler flag.- Requires FullLTO, enables single-implementation devirtualization and virtual constant propagation, improves CPU-bound performance.
-
GCC/MSVC/Clang: Added explanatory comments to compiler optimization flags.
-
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_timestampswas used instead ofVK_KHR_calibrated_timestampsdue 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_timestampswas used instead ofVK_KHR_calibrated_timestampsdue to larger coverage of devices and drivers. -
IMPORTANT:
timestampValidBitscheck can't be implemented, due to DXVK 2.6.x codebase. In order to check, whether GPU hastimestampValidBits = 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, ifdxvk.framePaceis set todxvk.framePace = "low-latency"(default value) ordxvk.framePace = "low-latency-vrr-x". In order to use DXVK-GPLALL 2.6.6-1 on such devices setdxvk.framePace = "max-frame-latency"ordxvk.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) indxvk.framePace = "max-frame-latency"ordxvk.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
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.
- Updated DXVK Low Latency to 2.7.1-3.
- Improvements in DXVK Low Latency are significant enough to bulid a new DXVK-GPLALL release:
- GitHub Actions infrastructure, which is used to provide releases, updated to GCC 15.2.
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.
-
Significant changes:
-
D3D9: [d3d9] Do sequence number tracking for directly mapped buffer and Change Buffer mapping strategy. Ported and adapted by sTc2201- Significantly improves performance of GTA IV and other affected applications. Please refer to DXVK-GPLALL Wiki for information about changes in
dxvk.confoptions.
- Significantly improves performance of GTA IV and other affected applications. Please refer to DXVK-GPLALL Wiki for information about changes in
-
D3D11: Properly track D3D11 state object lifetime- Significantly improves performance of Bioshock Infinite and other affected applications.
-
DXVK: Update to VK_KHR_present_id2/wait2- Frame pacing improvements for newer GPU Drivers on Windows that support
VK_KHR_present_id2andVK_KHR_present_wait2Vulkan extensions, but can't run DXVK 2.7 and later in specific games.
- Frame pacing improvements for newer GPU Drivers on Windows that support
-
DXVK: [dxvk] Optimize load/store ops for single-aspect depth-stencil clears -
DXVK: Implement border color swizzle- Note: D3D9-part of PR#5390 - Implement border color swizzle was not implemented due to incompatibility with DXVK-GPLALL 2.6.x codebase.
-
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
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.confand 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.
- Upstream DXVK state cache and DXVK GPLAsync state cache fixes for Async and GPL were ported in full, including options controls in
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
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.confand 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.
- Upstream DXVK state cache and DXVK GPLAsync state cache fixes for Async and GPL were ported in full, including options controls in
-
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:2and/Qvec-report:2for MSVC builds are enabled for logging purposes and do not affect runtime performance in any way.
- Note:
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:2and/Qvec-report:2for MSVC builds are enabled for logging purposes and do not affect runtime performance in any way.
- Note:
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.
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_rtBindingFrameCountwas changed fromm_rtBindingFrameCount >= 5tom_rtBindingFrameCount >= 2.- Note: Async graphical side effects are lessened, because of more shaders getting to use higher priority asynchronous pipeline compilation.
- Based on tests results
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_rtBindingFrameCountwas changed fromm_rtBindingFrameCount >= 5tom_rtBindingFrameCount >= 2.- Note: Async graphical side effects are lessened, because of more shaders getting to use higher priority asynchronous pipeline compilation.
- Based on tests results
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
devinfoformat. Author - Digger1955-
Reason: Backporting old
devinfoformat is problematic. Newdevinfoformat is better for Linux/MacOS and tolerable on Windows with adjustments that have been made.
-
Reason: Backporting old
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
387floating-point arithmetic instructions instead ofsseinstructions. Reported - ViNi-Arco, fixed - Digger1955.- Added
-msseand-msse2tocompiler_args. GCC requires either of them to be explicitly set in order to make-mfpmath=sseeffective.
- Added
-
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=autoto be explicitly set in order to activate multi-threading for LTO.
- Does not affect compiler/linker output, speeds up LTO process. GCC requires
-
Provided GCC SSE4.2-optimized (
-march=x86-64-v2) builds of DXVK-GPLALL with Link-Time Optimization (-flto=auto),-O3optimization 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=genericis used, because GCC does not have tuning options for AMD CPUs.
- Note: For any other CPU in GCC SSE4.2-optimized builds
- Enabled optimizations for Intel CPUs (
-
Provided GCC SSE4.2-optimized (
-march=x86-64-v2) builds of DXVK-GPLALL with Link-Time Optimization (-flto=auto),-O3optimization 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.
- Note: It was already active, due to GCC behaviour, which does set
- Explicitly set
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-O3optimization level. Author - Digger1955- Enabled use of Link-Time Optimization (
-flto) by GCC linker with additional optimizations and enabled-O3optimization level to futher increase performance in CPU-bound situations, speed up shader compilation.
- Enabled use of Link-Time Optimization (
-
Provided GCC SSE4.2-optimized (
-march=x86-64-v2, -mtune=x86-64-v2) builds of DXVK-GPLALL with Link-Time Optimization (-flto) and-O3optimization level. They are replacing GCC AVX2-optimized builds. Author - Digger1955- Use of
-march=x86-64-v2, -mtune=x86-64-v2allows to use GCC optimizations, such as-O3optimization 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).
- Use of
-
Provided MSVC SSE2-optimized (
/arch:SSE2) builds of DXVK-GPLALL with Link-Time Optimization (LTO, a.k.a./LTCG),/O2optimization 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/O2optimization level to futher increase performance in CPU-bound situations, speed up shader compilation. Enabled additional optimizations (/Ob3and/Qpar) to futher increase performance in CPU-bound situations, speed up shader compilation.
- Enabled use of Link-Time Optimization (
-
Provided MSVC AVX2-optimized (
/arch:AVX2) builds of DXVK-GPLALL with Link-Time Optimization (LTO, a.k.a./LTCG),/O2optimization level, optimizations for AMD CPUs in x64 DLLs (/favor:AMD64) and additional optimizations. Author - Digger1955- Enabled use of specific optimizations for AMD CPUs (
/favor:AMD64and'/d2vzeroupper') by MSVC compiler to get higher performance in CPU-bound situations on AMD CPUs in x64 applications. Enabled additional optimizations (/Ob3and/Qpar) to futher increase performance in CPU-bound situations, speed up shader compilation.
- Enabled use of specific optimizations for AMD CPUs (
-
Provided MSVC SSE4.2-optimized (
/arch:SSE4.2) builds of DXVK-GPLALL with Link-Time Optimization (LTO, a.k.a./LTCG),/O2optimization 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:INTEL64a.k.a./favor:EM64T) by MSVC compiler to get higher performance in CPU-bound situations on Intel CPUs in x64 applications. Enabled additional optimizations (/Ob3and/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/
- Enabled use of specific optimizations for Intel CPUs (
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-64and-msse3, but-mtune=x86-64. This combination does not produce the most optimal result.
- Note: Upstream DXVK implies
- 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.
-
Disabled GPL by default. GPL still can be enabled by setting
dxvk.enableGraphicsPipelineLibrary = Autoindxvk.conf. Author - Digger1955- Reason: Wiki
-
Restructured and tuned
meson.buildto guarantee proper output by various compilers. Author - Digger1955- Enabled use
-march=x86-64, -mtune=x86-64and-march=x86-64-v3, -mtune=x86-64-v3instead of separate instruction sets, correctedlink_argsstructure.
- Enabled use
-
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: AVX2-optimized (
- 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/
- Enabled use of Link-Time Optimization (
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/
- 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.
-
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
/O2level of compiler optimization for Windows (MSVC) AVX2 builds to futher increase performance in CPU-bound situations and decrease shader compilation stutter.-
Important: Builds with
-O2level 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.
-
Important: Builds with
- Enabled use of x86-64-v3 ISA by GCC compiler and AVX2 (
-
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.
- They are identical, but
-
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 -
devinfonow shows Device Name, Vulkan Headers version and Vulkan Driver version again. Author - Digger1955-
Reason: Inconsitent behaviour of new
devinfoHUD format on different drivers, because of driver vendors.
-
Reason: Inconsitent behaviour of new
-
Added fork tag to HUD -
versionnow shows DXVK-GPLALL 2.6.1 on non-AVX2 builds and DXVK-GPLALL-AVX2-Optimized 2.6.1 on AVX2 builds. Author - Digger1955
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