Commit graph

6601 commits

Author SHA1 Message Date
netborg
8e2a509eb6 Revert "[dxvk] Fix lack of forward progress guarantee in presenter"
This reverts commit efeb15edbd, because ordering guarantees were broken, that notifyGpuPresentEnd should happen after notifyGpuPresentBegin, which in turn lead to wrong latency measurements in case vkWaitForPresent was skipped.
2025-02-19 20:46:36 +01:00
netborg
2c26eb2118 [hud] Add render latency 2025-02-19 18:23:18 +01:00
netborg
a8bd6f069e [dxvk] Integrate frame pacing 2025-02-19 18:23:18 +01:00
netborg
01ccd1e776 [dxvk] Add low-latency frame pacing 2025-02-19 18:23:18 +01:00
netborg
13ae0d218b [dxvk] Add config variables for frame pacing 2025-02-19 18:22:56 +01:00
Philip Rebohle
23067c48c7 [dxvk] Clean up CS chunk allocation
This also makes it more robust w.r.t. alignment.
2025-02-18 15:37:11 +01:00
Philip Rebohle
4c8ee300b5 [util] Add more optimal popcnt implementation 2025-02-18 15:28:41 +01:00
Robin Kertels
4282829f38 [d3d9] Route operations on unmappable memory through allocator
Fixes an extremely race condition that can happen when freeing a chunk.
2025-02-17 19:23:15 +01:00
WinterSnowfall
92523fc0dd [d3d9] Fix x64 crash on SetVertexShaderConstantF index overflow 2025-02-17 15:11:05 +01:00
WinterSnowfall
4a89b75bb7 [d3d8] Fix x64 crash on shader validation 2025-02-17 15:11:05 +01:00
WinterSnowfall
274c590ad6 [d3d9] Set priority only for D3DPOOL_MANAGED/DEFAULT resources 2025-02-17 15:11:05 +01:00
WinterSnowfall
84b2ac3f97 [d3d8] Set priority only for D3DPOOL_MANAGED resources 2025-02-17 15:11:05 +01:00
WinterSnowfall
8efa3ed84a [d3d8] A few minor formatting adjustments 2025-02-17 15:11:05 +01:00
Robin Kertels
3269f92138 [d3d9] Fix mismatching texture type mask updates 2025-02-17 14:32:34 +01:00
Jeff
0aebedae16 [d3d8] Add shadow perspective divide hack for Splinter Cell 2025-02-17 14:10:54 +01:00
Philip Rebohle
f2802dd2ff [dxvk] Fix some potential image layout bugs 2025-02-17 01:26:03 +01:00
Philip Rebohle
9389a0ca96 [dxvk] Don't transition image layout in clearImageViewCs unless necessary 2025-02-17 01:26:03 +01:00
Philip Rebohle
6d9e0baa27 [dxvk] Don't hold queue lock when invoking periodic memory tasks 2025-02-14 14:34:33 +01:00
Philip Rebohle
9573c389de [dxvk] Don't create GPL pipeline if we need to patch the vertex shader
Works around a game bug in Kingdom Come Deliverance and silences a validation
error.
2025-02-13 18:46:49 +01:00
Philip Rebohle
3453732bba [dxvk] Fix clear optimization edge case with multi-planar images 2025-02-12 21:42:27 +01:00
Philip Rebohle
0a84dbb787 [dxvk] Implement resolves with a render target clear if possible
Same idea as for copies, if the last use of the source image was a clear
then we can simply clear the destination image instead of performing a
much more expensive resolve operation.
2025-02-12 21:42:27 +01:00
Philip Rebohle
f5a5ec7c88 [dxvk] Factor out method to find pending deferred clears 2025-02-12 21:42:27 +01:00
Philip Rebohle
1cabbee2bb [dxvk] Rework render pass resolves
In an attempt to also support batching layered resolves.
2025-02-12 21:42:27 +01:00
Philip Rebohle
563129c863 [dxvk] Fix potential resolve attachment invalidation bug 2025-02-12 14:44:54 +01:00
Philip Rebohle
c5a3aa73a0 [util] Enable dummy composition swap chain for an upcoming game 2025-02-12 01:36:10 +01:00
Philip Rebohle
80bfd2ed97 [util] Add functionality to support hashed app profiles 2025-02-12 01:34:40 +01:00
Philip Rebohle
813ae020b6 [d3d11] Flush more around non-multisampled render passes 2025-02-11 16:14:53 +01:00
Philip Rebohle
7e3c6f819a [util] Add new flush type for render pass boundaries 2025-02-11 16:14:53 +01:00
Philip Rebohle
94b5cfc3d8 [dxvk] Don't use secondary command buffers for certain render passes
If we can't use any store/resolve op optimizations on a render pass, there
is no reason to pay for the overhead of secondary command buffers.
2025-02-11 16:14:53 +01:00
Philip Rebohle
beaf6dd2a6 [dxvk] Add context flag for active secondary command buffers
Makes some checks more explicit.
2025-02-11 16:14:53 +01:00
Philip Rebohle
cf9ccf711b [dxvk] Add perf hint to avoid secondary command buffers 2025-02-11 16:14:53 +01:00
Philip Rebohle
94254f556e [dxvk] Fix stencil resolve mode 2025-02-11 15:26:08 +01:00
Philip Rebohle
70492b2954 [dxvk] Avoid locking built-in latency tracker when calling into presenter
Same reason as for the Reflex one.
2025-02-11 15:12:13 +01:00
Philip Rebohle
b1174a1bdf [dxvk] Avoid locking Reflex latency tracker when calling into presenter
There are complex deadlock conditions during swap chain destruction.
2025-02-11 15:12:13 +01:00
Philip Rebohle
efeb15edbd [dxvk] Fix lack of forward progress guarantee in presenter
Turns out that relying on two threads to unblock another was a bad idea.
Fixes a potential deadlock w.r.t. swapchain recreation with Reflex.
2025-02-11 15:12:13 +01:00
Philip Rebohle
ac17d5f9b1 [dxvk] Enable tiler mode for more drivers 2025-02-10 18:36:01 +01:00
Philip Rebohle
11ec65d516 [include] Update Vulkan headers 2025-02-10 17:44:36 +01:00
Neal Gompa
4d3b35ae53 meson: Fix version construct by dropping the "v" prefix
The "v" prefix was causing the version to be incorrectly set for
generated files (such as pc files for pkg-config).

Dropping the prefix fixes the issue.
2025-02-10 16:38:03 +01:00
Philip Rebohle
3aeedb9c98 [d3d11] Forward DiscardResource calls to backend for images 2025-02-10 16:13:31 +01:00
Philip Rebohle
9b5499caf2 [dxvk] Ignore deferred discards that we can't fold into load ops 2025-02-10 16:13:31 +01:00
Philip Rebohle
fcabffc1e5 [dxvk] Add store op optimization for image discards in tiler mode 2025-02-10 16:13:31 +01:00
Philip Rebohle
821386aeff [dxvk] Add config option to toggle tiler optimizations 2025-02-10 16:13:31 +01:00
Philip Rebohle
fa2d791d79 [dxvk] Use resolve attachments if possible 2025-02-10 16:13:31 +01:00
Philip Rebohle
80fb7e2294 [d3d9,d3d11] Adjust flush heuristic on tiling GPUs
Probably needs work, just disable most of the heuristic for the time being.
2025-02-10 16:13:31 +01:00
Philip Rebohle
00299b264b [dxvk] Use secondary command buffers for rendering on tiling GPUs 2025-02-10 16:13:31 +01:00
Philip Rebohle
4a92b92f58 [dxvk] Add perf hint for tiling GPUs 2025-02-10 16:13:31 +01:00
Philip Rebohle
6c1bc35264 [dxvk] Add functionality to use secondary command buffers 2025-02-10 16:13:31 +01:00
Philip Rebohle
7d35afdc37 [dxvk] Add functionality to allocate secondary command buffer 2025-02-10 16:13:31 +01:00
Philip Rebohle
f615594f22 [dxgi] Create dummy window for composition swap chains
Obviously not a valid implementation, but allows composition swap chains
to exist with some basic functionality.
2025-02-10 14:23:12 +01:00
Philip Rebohle
76f9bec7cc [dxgi] Add option to expose composition swapchains 2025-02-10 14:14:38 +01:00