|
1 | 1 | # Change Log
|
2 | 2 |
|
| 3 | +## 2.14 |
| 4 | + |
| 5 | +Rolls up the usual collection of new features, performance improvements, bug fixes and the copious amount of game workarounds, |
| 6 | +just in time for the holidays. |
| 7 | + |
| 8 | +### Features |
| 9 | + |
| 10 | +- Implement DXGI frame statistics (exposed by DXVK DXGI). |
| 11 | +- Implement a global frame rate limiter (see `VKD3D_FRAME_RATE` or `DXVK_FRAME_RATE`). |
| 12 | + Also improves behavior of presentation with swap interval > 1 since we use frame limiter instead |
| 13 | + of duplicated presents now. Also allows support for full-screen frame rate targets in DXGI which normally would imply a mode change. |
| 14 | +- Implement support for planar video formats such as NV12. |
| 15 | +- Implement D24 depth bias correctly now on AMD when `VK_EXT_depth_bias_control` is supported. |
| 16 | +- Expose a new command interop interface that allows e.g. dxvk-nvapi to implement DLSS3 frame generation. |
| 17 | +- Use VK_KHR_compute_shader_derivatives when available. |
| 18 | +- Use VK_EXT_device_generated_commands when available. Expose execute indirect tier 1.1. |
| 19 | +- Implement GPU upload heap from latest AgilitySDKs. Allows explicit control over ReBAR instead of heuristic based hacks in games that use the new API. |
| 20 | +- Implement ID3DDestructionNotifier. Fixes some particular games that expect this to be supported. |
| 21 | + |
| 22 | +### Performance |
| 23 | + |
| 24 | +- Reduce some VRAM bloat on RDNA2 and 3 GPUs when `VK_MESA_image_alignment_control` is exposed. |
| 25 | +- Improve CPU overhead for games that query swapchain format support over and over. |
| 26 | +- Remove old heuristic that preferred 2 frames of latency depending on BufferCount used. |
| 27 | + The default on DXGI is 3, and using 2 caused some performance issues in various games with GPU starvation, |
| 28 | + especially on Deck. `VKD3D_SWAPCHAIN_LATENCY_FRAMES` is still available as an override to force a tighter default. |
| 29 | +- Rewrite queue submission logic to deal better with difficult submission patterns such as FSR3 3.1 Frame Generation. |
| 30 | + On implementations with only one graphics queue, vkd3d-proton will now attempt to do basic software scheduling of GPU work. |
| 31 | + This may regress GPU performance in some other cases and `VKD3D_CONFIG=no_staggered_submit` is a way to disable this code path. |
| 32 | + One particularly big improvement is FF XVI on RADV with FSR 3 frame-gen, with almost doubled performance in some cases. |
| 33 | + We are still awaiting a proper kernel-level fix for this problem to be fully resolved. |
| 34 | +- Rewrite queue submission logic to use fewer "dummy" wait/signal submissions. |
| 35 | + Works around pathological CPU overhead in amdgpu taking 20ms+ to submit work in some cases. |
| 36 | +- Rewrite queue submission logic for sparse updates to be more efficient. |
| 37 | + |
| 38 | +### Fixes and workarounds |
| 39 | + |
| 40 | +- Rework various multi-sampling queries to be more spec correct. |
| 41 | +- Workaround bugged MSAA behavior in World of Warcraft. |
| 42 | +- Workaround buggy/questionable use of ID3D12PipelineLibrary in FF XVI. |
| 43 | +- Always use native 16-bit integers for min16int. Fixes some real-world bugs where shaders expect min16int is always implemented as 16-bit. |
| 44 | +- Workaround game bug leading to GPU hang in Dragon Age: Veilguard on RADV. |
| 45 | +- Always emit proper floating-point environment modes in DXBC shaders. Fixes glitched eyes in Dragon Age: Veilguard on NV. |
| 46 | +- Fix potential use-after-free bug for some sparse resource update cases. |
| 47 | +- Correctly validate when application attempts to allocate a too large descriptor heap. |
| 48 | + Fixes Stalker 2 entering into undefined behavior. |
| 49 | +- A lot of misc fixes in dxil-spirv as usual. |
| 50 | +- Workaround broken amdgpu zerovram behavior on 6.10+ kernels. Fixes random extreme glitchiness in Helldivers 2 on AMD. |
| 51 | +- Workaround NV issue which lead to GPU hang when loading a save file in Star Wars: Outlaws. |
| 52 | +- Fix copying between BC <-> RGBA images in some cases. |
| 53 | +- Add workaround for a game bug in The First Descendant which lead to broken cubemap reflections in some cases. |
| 54 | +- Workaround Skull & Bones crashing on startup on NV GPUs by disabling Reflex support. |
| 55 | +- Workaround Hunt: Showdown missing precise qualifiers on vertex shaders, leading to glitched rendering. |
| 56 | +- Workaround poor CPU performance in Red Dead Redemption. |
| 57 | + |
| 58 | +### Misc / Debug |
| 59 | + |
| 60 | +- Add support for instruction_qa_checks. For deep debug, allows us to be notified when NaNs and Infs are generated in shaders. |
| 61 | + For internal QA use. |
| 62 | +- Add fine-grained control of QA behavior on a per-shader basis. For narrowing down issues. |
| 63 | +- Remove a bunch of old and obsolete workarounds for NV drivers. New cutoff is 535 series. |
| 64 | +- Bump exposed SDKVersion to 614 to match latest stable AgilitySDK. |
| 65 | +- Add an optional code path to support DXBC via the official dxilconv library. |
| 66 | + This code is not enabled in release builds, |
| 67 | + and is currently only intended as a path to take advantage of QA instrumentation for DXBC shaders. |
| 68 | + |
3 | 69 | ## 2.13
|
4 | 70 |
|
5 | 71 | ### Features
|
|
0 commit comments