Commit graph

341 commits

Author SHA1 Message Date
Philip Rebohle
fcabffc1e5 [dxvk] Add store op optimization for image discards in tiler mode 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
215cebc019 [dxvk] Remove superfluous function declaration 2025-02-06 14:29:19 +01:00
Philip Rebohle
a413eb0843 [dxvk] Only end render pass in invalidateImage if currently bound
Not really needed otherwise.
2025-02-05 22:49:25 +01:00
Philip Rebohle
2ee598b4af [dxvk] Add latency tracker to context 2025-01-25 18:02:20 +01:00
Philip Rebohle
1b9ea8c6e3 [dxvk] Add debug regions for render passes 2025-01-09 16:25:46 +01:00
Philip Rebohle
d9b5f09239 [dxvk] Add debug region stack
Ensures that we correctly begin and end app-provided regions within
each command buffer.
2025-01-09 16:25:46 +01:00
Philip Rebohle
b62a8c78b4 [dxvk] Add context feature flag for debug utils support 2025-01-09 16:25:46 +01:00
Philip Rebohle
2507820339 [dxvk] Add support for resource debug names 2025-01-09 16:25:46 +01:00
Philip Rebohle
0e14fff749 [dxvk] Introduce tracking ID for resource tracking
Replaces the existing bit masks, which is possible now because the
CS thread is the only place where submissions happen now.

This way we only count each resource once per submission, or twice
in case a read access is followed by a write.

This also fixes a potential tracking bug with shader-writeable resources.
2024-10-30 09:41:49 +01:00
Philip Rebohle
34b82a2b5b [dxvk] Add dedicated command buffers for initial layout transitions
This helps batch initial layout transitions for image uploads.
2024-10-28 23:03:46 +01:00
Philip Rebohle
c8ab88e8f5 [dxvk] Add helper for out-of-order resource transfers 2024-10-28 23:03:46 +01:00
Philip Rebohle
f0054e7e65 [dxvk] Add command list tracking to resource 2024-10-28 23:03:46 +01:00
Philip Rebohle
d535e2964f [dxvk] Remove obsolete comments 2024-10-25 19:22:58 +02:00
Philip Rebohle
7a693ed41a [dxvk] Implement per-submission resource relocation 2024-10-24 12:31:18 +02:00
Philip Rebohle
4af31a9d64 [dxvk] Remove context type concept
We only have a single context per device now.
2024-10-24 12:30:54 +02:00
Philip Rebohle
4c0cbbef6a [dxvk] Factor DxvkResource code into DxvkPagedResource
And remove the now obsolete code.
2024-10-18 12:42:33 +02:00
Philip Rebohle
fb6e0ad6c1 [dxvk] Remove useless DxvkMarker class 2024-10-16 20:57:50 +02:00
Philip Rebohle
f8b9efd11e [dxvk] Fix misaligned image uploads on transfer queue 2024-10-16 11:38:42 +02:00
Philip Rebohle
8ab6b8616b [dxvk] Track image initialization 2024-10-16 11:32:55 +02:00
Philip Rebohle
af4ec3c63d [dxvk] Normalize render target layouts when binding framebuffer
No reason to use ATTACHMENT_OPTIMAL when the default layout is GENERAL.
2024-10-16 11:32:55 +02:00
Philip Rebohle
708d23ca4b [dxvk] Use new barrier batch and barrier tracker for main command buffer 2024-10-16 11:32:55 +02:00
Philip Rebohle
56a58095fe [dxvk] Use new barrier helpers for shader execution barriers 2024-10-16 11:32:55 +02:00
Philip Rebohle
856a84e6fd [dxvk] Use new barrier helpers in copyImageToBufferCs
And actually rename that function to make sense.
2024-10-16 11:32:55 +02:00
Philip Rebohle
bbe7767475 [dxvk] Add helpers to flush pending execution barriers if needed 2024-10-16 11:32:55 +02:00
Philip Rebohle
318e79c2ad [dxvk] Use new barrier batch for init and sdma barriers
No tracking needed here.
2024-10-16 11:32:55 +02:00
Philip Rebohle
b771bef837 [dxvk] Add helper functions to record pending barriers 2024-10-16 11:32:55 +02:00
Philip Rebohle
d154a684ad [dxvk] Remove acquire barrier set 2024-10-16 11:32:55 +02:00
Philip Rebohle
ef79f8a617 [dxvk] Use new layout transition helper in initImage
Removes another barrier set.
2024-10-16 11:32:55 +02:00
Philip Rebohle
1e8631189c [dxvk] Use new layout transition helper in uploadImageHw
Allows us to get rid of a barrier set.
2024-10-16 11:32:55 +02:00
Philip Rebohle
8955d2a285 [dxvk] Add various helpers to emit image layout transitions 2024-10-16 11:32:55 +02:00
Philip Rebohle
d00669cb52 [dxvk] Rename DxvkGpu{Event,Query} to Dxvk{Event,Query}
The old name only ever existed because DXVK had two separate implementations
of these prior to version 1.1. Let's name them back so that more sensible
names are available for internal use.
2024-10-13 12:08:35 +02:00
Philip Rebohle
ac1dfbacb6 [dxvk] Move image initialization to init command buffer 2024-10-08 17:46:18 +02:00
Philip Rebohle
e137f049ee [dxvk] Make buffer<->image copy format checks more robust
There are situations where the source format may not match
the image format but the copy is valid nonetheless.
2024-10-08 17:46:18 +02:00
Philip Rebohle
e6f90b8003 [dxvk] Remove legacy depth/stencil repacking code 2024-10-08 17:46:18 +02:00
Philip Rebohle
ad1f70beea [dxvk] Support format conversion in copyImageToBuffer 2024-10-08 17:46:18 +02:00
Philip Rebohle
f67c8dd1da [dxvk] Support format conversion in copyBufferToImage 2024-10-08 17:46:18 +02:00
Philip Rebohle
501b0991da [dxvk] Remove per-context staging buffer
No longer used.
2024-10-08 17:46:18 +02:00
Philip Rebohle
725a04b954 [dxvk,d3d11] Refactor uploadImage to consume a staging buffer
And also handle format differences.
2024-10-08 17:46:18 +02:00
Philip Rebohle
c92ee8ee07 [dxvk,d3d11] Refactor uploadBuffer to consume a staging buffer 2024-10-08 17:46:18 +02:00
Philip Rebohle
bf9dfc77ce [dxvk] Add context method for WSI synchronization
Mostly convenience, but we do want to get rid of Begin/EndRecording
at some point.
2024-10-04 12:58:55 +02:00
Philip Rebohle
1c06431e18 [dxvk] Add method to use a context's command list directly
Also provide the descriptor pool for convenience.
2024-10-04 12:58:55 +02:00
Philip Rebohle
11f8dc0818 [dxvk] Add functions to lock in and query GPU buffer addresses 2024-09-30 10:29:27 +02:00
Philip Rebohle
150c40280f [dxvk] Get rid of internal blit samplers 2024-09-30 10:29:27 +02:00
Philip Rebohle
67d1285b08 [dxvk] Refactor meta blits 2024-09-30 10:29:27 +02:00
Philip Rebohle
8c67af680c [dxvk] Refactor meta resolves 2024-09-30 10:29:27 +02:00
Philip Rebohle
2c176f4950 [dxvk] Refactor meta image copies 2024-09-30 10:29:27 +02:00
Philip Rebohle
56a07b5bd0 [dxvk] Add function to recreate image views with guaranteed compatibility 2024-09-30 10:29:27 +02:00
Philip Rebohle
bfbb7987b2 [dxvk] Add functions to recreate images with additional usage info
Useful when we don't know in advance which usage flags are required
and don't want to set them preemptively for performance reasons.
2024-09-30 10:29:27 +02:00
Philip Rebohle
53f14e2914 [dxvk] Add functions to move resources to a different allocation
Basically a batched copy to use when one or more resources are being
recreated for any reason.
2024-09-30 10:29:27 +02:00