1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-03-14 13:29:15 +01:00

6719 Commits

Author SHA1 Message Date
Philip Rebohle
52a27ac4b5 [dxvk] Store various image properties inside the view 2025-03-07 20:35:32 +01:00
Philip Rebohle
d3e6634d0a [dxvk] Add binding flag for multisampled images 2025-03-07 20:35:32 +01:00
Philip Rebohle
34e5cc2aca [dxvk] Add separate flag to forcibly end a render pass
Otherwise, if the app binds the same set of render targets again,
the dirty framebuffer flag will get cleared.
2025-03-07 20:35:32 +01:00
Philip Rebohle
91cde7f9b9 [d3d9] Remove double presents with SyncInterval > 1 2025-03-07 20:32:32 +01:00
Philip Rebohle
9597acc224 [util] Add missing returns to small_vector 2025-03-07 16:15:42 +01:00
Philip Rebohle
3558b4c3da [dxvk] Do not dirty the pipeline when starting the render pass
Redundant, since the pipeline update happens outside of a render pass
anyway and thus does not record any Vulkan commands.

All other state should still be dirtied since we might use secondary
command buffers for render passes.
2025-03-07 13:07:32 +01:00
Philip Rebohle
659205b5a6 [dxvk] Fix tracking of graphics pipeline side effects inside a render pass
Previously, we wouldn't track the first draw correctly in all cases because
the side effect flag would get reset when ending a previous render pass.
2025-03-07 12:43:31 +01:00
Philip Rebohle
720a62a7ba [dxbc] Generalize invariant stores to cover constant stores 2025-03-07 12:43:31 +01:00
Philip Rebohle
d729567e7a [dxvk] Refactor AccessOp
Allows us to do some more fun stuff with it going forward.
2025-03-07 12:43:31 +01:00
Philip Rebohle
a08579e555 [dxvk] Fix clear after late resolve 2025-03-06 09:54:34 +01:00
Philip Rebohle
45ec01a0a1 [d3d11] Add TRANSFER_SRC usage to icb
Needed for defrag.
2025-03-06 09:54:34 +01:00
Philip Rebohle
542e0d2ab0 [dxvk,d3d9,d3d11] Decouple ID3DUserDefinedAnnotation from internal markers
Some games nope out when we expose debug markers, so add a debug mode
that doesn't while still providing internal markers and debug names.
2025-03-06 09:54:34 +01:00
Philip Rebohle
91b48dd31d [d3d11] Make user defined annotation more robust 2025-03-06 09:54:34 +01:00
GranMinigun
d8eb4d0d66 [util] Spoof vendor ID for CivCity: Rome 2025-03-06 01:25:30 +01:00
Philip Rebohle
f161d9bc7b [dxvk] Fix synchronization on swapchain tear-down 2025-03-05 23:16:28 +01:00
Philip Rebohle
634f38b38d [dxvk] Enable sparse binding features if supported 2025-03-05 23:15:47 +01:00
Philip Rebohle
ff8378be19 [dxvk] Fix uploadImage barriers 2025-03-05 23:15:47 +01:00
Philip Rebohle
ad75fb17cd [dxvk] Fix uploadBuffer barriers 2025-03-05 23:15:47 +01:00
Philip Rebohle
76244812fb [dxvk] Move compressed image initialization to transfer queue
This is relatively common.
2025-03-05 23:15:47 +01:00
Philip Rebohle
9c0dec9f58 [dxvk] Move buffer initialization to transfer queue 2025-03-05 23:15:47 +01:00
Philip Rebohle
a4a5bf5d63 [dxvk] Add helpers for transfer queue release barriers 2025-03-05 23:15:47 +01:00
Philip Rebohle
49f0968f57 [dxvk] Use sparse residency for zero buffer
Saves a small amount of memory since reading from an unbound
buffer will return zero anyway.
2025-03-05 23:15:47 +01:00
Philip Rebohle
ec0deb73da [dxvk] Fix missing zero buffer tracking
Scary.
2025-03-05 23:15:47 +01:00
WinterSnowfall
fed51e6c92 [dxso] Fix uninitialized m_maxDefinedConstant variable 2025-03-05 15:02:11 +01:00
Philip Rebohle
196258111c [dxvk] Be more conservative with CS data alignment
Fixes #4734. Apparently, weak alignment hints are an error rather
than getting ignored.
2025-03-05 13:12:23 +01:00
Philip Rebohle
d04fe1cdc0 [meta] Add some missing documentation to dxvk.conf 2025-03-04 21:49:39 +01:00
Philip Rebohle
3cf453160c [d3d11] Ensure required image usage flags for video blits
Fixes some validation errors.
2025-03-04 21:05:59 +01:00
Philip Rebohle
9769df9dd8 [d3d11] Implement ID3D11On12Device1 2025-03-02 19:21:39 +01:00
Philip Rebohle
106032fa65 [dxvk] Use granular image access tracking in copyImageHw 2025-03-02 14:01:09 +01:00
Philip Rebohle
d2b53b76de [dxvk] Use granular image access tracking in copyBufferToImageHw 2025-03-02 14:01:09 +01:00
Philip Rebohle
02dc403074 [dxvk] Use granular image access tracking in copyImageToBufferCs 2025-03-02 14:01:09 +01:00
Philip Rebohle
420d083677 [dxvk] Use granular image access tracking in copyImageToBufferHw 2025-03-02 14:01:09 +01:00
Philip Rebohle
cd29f0feaa [dxvk] Add barrier helpers for granular image access tracking 2025-03-02 14:01:09 +01:00
Philip Rebohle
baaf72a373 [dxvk] Add helpers to compute more granular image address ranges 2025-03-02 14:01:09 +01:00
Philip Rebohle
1f0ad760e1 [dxvk] Refactor address range for barrier tracking
Allows us to bump the size and offset to 64 bits without increasing the
total size of the node.
2025-03-02 14:01:09 +01:00
Philip Rebohle
fe58b393d4 [util] Add helper for 2D and 3D morton codes 2025-03-02 14:01:09 +01:00
Philip Rebohle
c21f4e0190 [util] Add 48-bit integer type 2025-03-02 14:01:09 +01:00
Philip Rebohle
416f9c5a4a [d3d11] Embed UpdateBuffer data in CS chunk
Tiny optimization that gets rid of a copy and also lets us use chunk
memory more efficiently.
2025-03-02 13:29:48 +01:00
Philip Rebohle
5b68884fd9 [d3d11] Fix confusing debug color for GPU synchronization
Purple was already used for various other things.
2025-03-01 16:37:39 +01:00
Robin Kertels
8f84085370 [dxvk] Add CS thread load to the HUD 2025-03-01 14:23:22 +01:00
Philip Rebohle
b35e69b467 [d3d11] Skip empty draws
Watch Dogs 2 likes to do this with graphics UAVs bound, which
introduces quite a bit of unnecessary GPU synchronization.
2025-03-01 11:30:38 +01:00
Philip Rebohle
11dc0e7ce8 [util] Enable compute UAV barriers for Watch Dogs 2 2025-02-28 23:57:26 +01:00
Philip Rebohle
6b5d595b3e [d3d11] Add option to force compute shader UAV synchronization 2025-02-28 23:57:26 +01:00
Philip Rebohle
396a4e0235 [dxbc] Add option to implicitly synchronize UAV accesses 2025-02-28 23:57:26 +01:00
Philip Rebohle
c04410ca00 [dxbc] Increase maximum size of embedded icbs to 256 bytes
Gives drivers more info, while still avoiding duplication of large ICBs
when compiling the same shader into a large number of pipelines.
2025-02-28 12:07:49 +01:00
Philip Rebohle
fcbdff3b72 [d3d9] Set correct input topology for SWVP emulation
Otherwise we'll run the input patch pass, even if it doesn't do anything.
2025-02-26 20:58:47 +01:00
Philip Rebohle
0359a3521d [dxvk] Patch geometry shader if input topology does not match pipeline 2025-02-26 20:53:43 +01:00
Philip Rebohle
b41253e18d [dxvk] Add pass to patch GS input topology if necessary 2025-02-26 20:53:43 +01:00
Philip Rebohle
96a260e94e [dxbc] Write back GS input topology to shader info 2025-02-26 20:53:43 +01:00
Philip Rebohle
2cb9d40f88 [dxvk] Add input topology field to shader info 2025-02-26 20:53:43 +01:00