D3D8 support
D8VK is now part of DXVK, and implements D3D8 largely on top of the existing D3D9 implementation. Please refer to pull request #3411 for further details.
Native WSI changes
dxvk-native now supports multiple window system backends that the application can choose between at runtime. Refer to the corresponding pull request #3738 for details. In addition, proper ABI versioning has been added for native libraries.
Non-native refresh rate emulation
In environments where the display mode cannot be changed (e.g. Proton), it is possible that DXVK reports a different refresh rate to the game than what the display is currently running at. This is problematic for games that require to be run at 60 FPS but do not limit their frame rate when using a 60 Hz display mode.
To work around this, the frame rate limiter will now be engaged automatically if a game runs in full-screen mode with vertical synchronization enabled, and if the detected frame rate over a short period of time is higher than the refresh rate of the selected display mode. This also applies to D3D12 when using vkd3d-proton as of commit 80f6c46 or later.
In case a game runs at a lower rate than expected and does not provide an in-game option to change refresh rate, this behaviour can be disabled by setting d3d9.maxFrameRate = -1
(or the corresponding dxgi
option for D3D10+ games). Setting DXVK_FRAME_RATE
also overrides this behaviour as usual.
Bug fixes and Improvements
- Fixed various issues with D3D9 fixed-function texture coordinate processing (PR #4015, PR #4026).
- Fixed pipeline layout compatibility issues when using graphics pipeline libraries, which would cause crashes or rendering issues on AMD’s official drivers with pipeline libraries enabled.
- If supported,
VK_NV_descriptor_pool_overallocation
will now be used to potentially save small quantities of descriptor memory. - Improved descriptor pool management in general to save memory in case a game renders without ever presenting to the screen.
- Improved video processor blit functionality (PR #3970 PR #3984)
- Improved compatibility to third-party mods hooking various DXGI entry points (PR #3966, #3968).
- Battlefield 2, 2142: Work around hang on alt+tab (PR #4109).
- Dead Space 2: Work around issues caused by the game’s Vsync implementation (PR #4071).
- Dragonshard: Work around performance issues (PR #4079).
- Fallout 4: Work around an issue with the game locking itself to 45 FPS on Steam Deck OLED.
- Fallout New Vegas: Fix rendering issues when using certain mods (PR #4079).
- Ghostbusters Remastered: Work around flickering character faces (#4045, PR #4046).
- Gothic 3: Fix shadow rendering issues caused by incorrectly reported format support (#3980, PR #3991).
- Guild Wars 2: Work around a flickering issue (PR #3992).
- Prototype: Work around broken shadow rendering if the game detects an AMD or Intel GPU (#4008, PR #4011).
- Star Citizen: Work around an issue with the game’s UMD version check (PR #3985).
- The Sims 2: Work around low CPU-bound performance in some situations.
- Tomb Raider Legend: Work around flickering character issues (PR #4105).
- Red Faction Guerrila Remastered: Work around sky box rendering issues (#3696, PR #3972).
- Rise of Nations: Work around crash on alt+tab (PR #4117).
- Watch Dogs, Watch Dogs 2: Work around flickering character issues (PR #4059, PR #4090).
- WRC 4: Enable 60 FPS limit to work around audio issues (PR #4099).