1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-23 01:54:22 +01:00

6614 Commits

Author SHA1 Message Date
Philip Rebohle
73fccba1f5 [dxvk] Add debug region for barrier control 2025-02-18 15:38:11 +01:00
Philip Rebohle
db59501beb [dxvk] Improve handling of nested debug regions 2025-02-18 15:38:11 +01:00
Philip Rebohle
ec4fc06bb3 [dxvk,d3d11] Improve explicit UAV overlap behaviour
If the app explicitly enables UAV overlap, don't synchronize
back-to-back read-modify-write operations to the same UAV either.
2025-02-18 15:38:11 +01:00
Philip Rebohle
acfe3cb0e3 [d3d11] Use resource cookies for draw buffer tracking
Avoids keeping draw buffers alive when the app stops using indirect
draws. Unlikely to have caused issues in practice, but draw buffers
are not part of the API state to begin with.
2025-02-18 15:38:11 +01:00
Philip Rebohle
eaa2c9f513 [dxvk,d3d11] Fix draw buffer tracking for DrawAuto
Not like anybody uses this feature, but we need to both check for
hazards and make sure the SO counter actually gets tracked. Use
the existing draw buffer mechanism for this.
2025-02-18 15:38:11 +01:00
Philip Rebohle
ff2faa4b1b [dxvk] Rename and repurpose ignoreGraphicsBarriers option
Less nuclear approach that hopefully works just as well in practice.
2025-02-18 15:38:11 +01:00
Philip Rebohle
d24dba21ee [dxvk] Fix resource hazard checks
Turns out we've had broken write-after-read checks for a while.
2025-02-18 15:38:11 +01:00
Philip Rebohle
6ad5ee34e3 [dxvk] Change debug color for pipelines with side effects 2025-02-18 15:38:11 +01:00
Philip Rebohle
e76c71aad0 [dxvk] Clean up shader resource hazard checking 2025-02-18 15:38:11 +01:00
Philip Rebohle
8f77fc9371 [dxvk] Rework compute barrier tracking 2025-02-18 15:38:11 +01:00
Philip Rebohle
e45ea9f3bb [dxvk] Rework graphics barrier tracking
Avoids having to insert redundant barriers when the app does UAV rendering.
2025-02-18 15:38:11 +01:00
Philip Rebohle
767bf80b23 [dxvk] Emit barriers when updating shader resources 2025-02-18 15:38:11 +01:00
Philip Rebohle
ea99f2f2c5 [dxvk] Track transform feedback buffer access 2025-02-18 15:38:11 +01:00
Philip Rebohle
f0c6e27938 [dxvk] Track vertex buffer access 2025-02-18 15:38:11 +01:00
Philip Rebohle
fdaa4f43f5 [dxvk] Track index buffer access 2025-02-18 15:38:11 +01:00
Philip Rebohle
bd2245022b [dxvk] Track indirect draw buffer access 2025-02-18 15:38:11 +01:00
Philip Rebohle
8bd6d16fde [dxvk] Add resource flag to track graphics pipeline side effects 2025-02-18 15:38:11 +01:00
Philip Rebohle
cb92589452 [dxvk] Add more convenience methods to track buffer barriers 2025-02-18 15:38:11 +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