github Digger1955/dxvk-gplall DXVK-GPLALL-2.6.8-1
2.6.8-1

5 hours ago

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

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

It consists of:

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

DXVK-GPLALL Roadmap Update:

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

Release Notes:

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

  • Significant changes:
    • DXVK: [d3d9] Improve SetRenderState state tracking
      • Improves CPU-bound performance in D3D9 applications.
    • DXVK: D3D9 Tracking mask cleanup
      • Improves CPU-bound performance in D3D9 applications.
    • DXVK: Refactor pipeline layouts
      • Improves CPU-bound performance and shaders compilation time, reduces the amount of memory used for Push Constants from 128 to 64 bytes.
        • Interestingly, this PR lowers one of key Vulkan requirements - maxPushConstantSize - and since upstream DXVK raised this requirement to 256 bytes, this makes DXVK-GPLALL somewhat unique, as it is the only DXVK fork that has such low maxPushConstantSize requirement.
    • DXVK: [d3d11] Support planar outputs in video processor
      • Implements video playback in some applications.
    • DXVK: 7e55c2d - [d3d11] Use existing MD5 hash to look up shader objects
      • Significantly speeds up D3D11 shaders compilation.
    • DXVK: Render target binding fix
      • Improves CPU-bound performance, allows to use GPLAsync-2.7.1 patch.
    • DXVK: de4d685 - [dxvk] Use smaller global sampler set
      • Fixes performance issues on NVIDIA GPUs, lowers max VRAM usage.
    • DXVK: 69b57e8 - [dxvk] Don't needlessly destroy samplers if there is space
      • Improves CPU-bound performance.
    • DXVK: [d3d9] Rework render target binding logic
      • Improves CPU-bound performance in D3D9 applications.
    • DXVK: [d3d9] Optimize StretchRect stretching resolves + D3D9 blit + resolve rework + 6d48513 - [dxvk] Support average resolve in blit shader
      • Improves GPU-bound performance in D3D9 applications that use MSAA.
        • Upstream DXVK MSAA shader was rewritten to keep same GPU requirements - it uses the to GLSL 450 and does not require shaderInt64. In the process of rewriting MSAA shader was optimized - its performance now scales with MSAA count and a few performance tweaks were applied. As a result, it should be faster than upstream DXVK MSAA shader at 2x MSAA and 4x MSAA and should be equal at 8x MSAA.
    • DXVK: [d3d9] Bind framebuffer rework
      • Improves CPU-bound performance in D3D9 applications.
    • DXVK: Optimize D3D9 vertex buffer binding
      • Improves CPU-bound performance in D3D9 applications.
    • DXVK: 660d382 - [dxvk] Limit shader compiler threads to 8 on 32-bit
      • Set to 12 in DXVK-GPLALL. Due to all DXVK-GPLALL 2.6.8-1 improvements does not affect shaders compilation time in 32-bit applications, but lower address space usage, which is useful for different applications, like Fallout New Vegas, Borderlands 2, World of Warcraft 3.3.5a etc.
    • DXVK: Some rasterizer discard optimizations
      • Improves GPU-bound performance in some cases.
    • DXVK: 5c45928 - [d3d9] Pass view format and swizzle to samplers - Implement border color swizzle -
      • Previously unimplemented part of PR#5390 - now fully operational.
    • DXVK: Only enable CUDA interop extensions on winevulkan
      • Fixes address space issues on NVIDIA GPUs.
    • GPLALL: Adjusted descriptor set allocation, changed MaxDesiredPoolCount.
      • Rebalanced to be more optimal for usage without GPL (i.e. when there is no severe address space issues) to improve RAM usage, CPU-bound and GPU-bound performance, should improve frametime consistency.
    • DXVK: Rewrite unmaped memory allocator
      • Improves CPU-bound performance and lowers RAM usage in D3D9 applications.
    • DXVK: a137f78 - [dxvk] Add option to enable descriptor update templates on legacy
      • Enabled by default in DXVK-GPLALL. Improves CPU-bound performance.
    • GPLALL: Reverted 51f2e24 - [util,dxvk] Limit frame rate based on deadline + d819ec2 - [util] Implement refresh rate heuristic for frame rate limiter. Author - Digger1955.
      • Resolves frame pacing issues in dxvk.framePace = max-frame-latency with and without enabled DXVK FPS Limiter.
        • Heuristic logic was the main culprit of the observed frame pacing issues in dxvk.framePace = max-frame-latency mode. Due to upstream DXVK's defaults, heuristic logic was always enabled, to check whether FPS Limiter needs to be enabled. More info at the respective upstream DXVK issue: doitsujin#5802
        • As a result, default state for DXVK FPS Limiter is now -1 - always disabled by default.
    • GPLALL: Raised number of required draw calls for render target, after which asynchronous pipeline compilation for corresponding shader will be enabled. Author - Digger1955.
      • Improves CPU-bound performance, slightly speeds up shaders compilation time, due to more balanced Sync/Async compilation usage, and Async graphical side effects are lessened, because of more shaders getting synchronous pipeline compilation.
      • CPU-bound performance improvements and shader compilation time improvements in DXVK-GPLALL 2.6.8-1 made current number of draw calls inefficient - there is now no need to send so many shaders to the Async compilation in order to avoid stutter.
      • Based on tests results m_rtBindingFrameCount was changed from m_rtBindingFrameCount >= 2 to m_rtBindingFrameCount >= 6.
    • GPLALL: Implemented significant improvements to upstream DXVK FPS Limiter, such as constant timer inteval - 1 ms, which is now does not depend on CPU or OS capabilities, implemented per-CPU-architecture specifc pause macros to save energy during busy-waiting, improved overall sleep logic. Author - Digger1955
      • I was advised to debug DXVK FPS Limiter issues myself by DXVK's development team - doitsujin#5802 (comment) - and that is what I did.
      • DXVK FPS Limiter in dxvk.framePace = max-frame-latency in DXVK-GPLALL 2.6.8-1 uses signifcantly less CPU time (higher efficiency), while having better frame pacing (due to stable logic and higher precision), compared to DXVK-GPLALL 2.6.7-1 and DXVK 3.0.2.
    • GPLALL: Changed default dxvk.framePace mode from dxvk.framePace = "low-latency" to dxvk.framePace = "max-frame-latency". Author - Digger1955
      • Reasons:
        • Benchmarks. Link to Benchmarks in DXVK-GPLALL Wiki.
        • Broader compatibility, due to workarounding DXVK-GPLALL 2.6.7-1 known issue - now on devices that do not have timestampValidBits = 64 (Adreno/Mail/PowerVR etc. mobile GPUs, Intel iGPUs, Intel ARC A GPU Series, possibly more) DXVK-GPLALL by default works properly out of the box, no user intervention is needed.
          Note: The cause of the issue is not yet fixed. So do not set dxvk.framePace = "low-latency" or dxvk.framePace = "low-latency-vrr-x" modes on aforementioned devices.
        • Unfortunately, there is still no way to automatically set refresh rate for dxvk.framePace = "low-latency-vrr-x" mode, which is the best low latency mode. And since user in any case will have to tweak DXVK-GPLALL config to get the best result for his specific needs, if user wants to use Low Latency feature, there is no reason to set worse low latency mode (dxvk.framePace = "low-latency") by default.

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

Benchmarks:

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

Link to Benchmarks in DXVK-GPLALL Wiki.

List of ported and adapted upstream DXVK commits:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

d9955a6 - [dxvk] Rework DxvkBindingInfo - Refactor pipeline layouts

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1085ccb - [dxvk] Rename dxvk_descriptor.*

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

9e09adb - [d3d9] Reset texture projected bitmask

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

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

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

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

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

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

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

ec44064 - [util] Force sampler anisotropy for Mafia

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

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

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

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

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

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

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

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

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

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

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

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

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

6454283 - [util] Actually return proper refresh period

8dc0423 - [dxvk] Fix memory ordering for release

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

f2f7b50 - [util] Add FPS limit for Manhunt

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

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

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

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

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

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

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

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

deed337 - [dxgi] Use singleton for DXGI options

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

f08cb4d - [dxgi] Write back altered swapchain flags

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

dbfb867 - [dxgi] Hide Intel vendor ID for XeSS < 2.0.2.68 (doitsujin#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

Don't miss a new dxvk-gplall release

NewReleases is sending notifications on new releases.