Philip Rebohle
|
861195a62e
|
[dxvk] Fix race condition in relocation check
The storage pointer is not safe to dereference outside the CS thread
for relocatable resources since the storage object may change.
|
2024-10-18 23:10:36 +02:00 |
|
Philip Rebohle
|
527d9c2236
|
[dxvk] Introduce allocation modes
Will be useful when relocating resources for defragmentation purposes.
|
2024-10-18 23:10:36 +02:00 |
|
Philip Rebohle
|
1525fbef03
|
[dxvk] Add global resource map to memory allocator
|
2024-10-18 23:10:36 +02:00 |
|
Philip Rebohle
|
5bff4c97f2
|
[dxvk] Add per-chunk allocation list
|
2024-10-18 23:10:36 +02:00 |
|
Philip Rebohle
|
fb896efc24
|
[dxvk] Add allocation flag for moveable resources
|
2024-10-18 23:10:36 +02:00 |
|
Philip Rebohle
|
456485f176
|
[dxvk] Pass resource cookie to allocation objects
|
2024-10-18 23:10:36 +02:00 |
|
Philip Rebohle
|
3eca3fc52c
|
[dxvk] Introduce DxvkAllocationInfo
Useful when more properties are added in the future.
|
2024-10-18 23:10:36 +02:00 |
|
Philip Rebohle
|
81380cddcf
|
[dxvk] Reintroduce resource cookies
|
2024-10-18 23:10:36 +02:00 |
|
Philip Rebohle
|
30d3a7b223
|
[dxvk] Rename unspecific "next" member in DxvkResourceAllocation
|
2024-10-18 23:10:36 +02:00 |
|
Philip Rebohle
|
66427ade9f
|
[dxvk] Actually count barriers from resource relocation
|
2024-10-18 23:10:36 +02:00 |
|
Philip Rebohle
|
e5482a2405
|
[dxvk] Ignore uninitialized image subresources during relocation
|
2024-10-18 23:10:36 +02:00 |
|
Philip Rebohle
|
de4de00e04
|
[dxvk] Track initialization of internally managed images
Otherwise, these will not be relocated properly during defragmentation.
|
2024-10-18 23:10:36 +02:00 |
|
Philip Rebohle
|
e60123cfc0
|
[util] Properly return reference from small_vector emplace_back
|
2024-10-18 23:10:36 +02:00 |
|
Philip Rebohle
|
d41231fc13
|
[dxvk] Use swap chain fences to synchronize WSI semaphores
Requires EXT_swapchain_maintenance1 to work, otherwise we won't use this.
|
2024-10-18 23:10:36 +02:00 |
|
Philip Rebohle
|
70e4017fdc
|
[dxvk] Use timeline semaphores for GPU synchronization
Ditches the old fence and binary semaphore code.
|
2024-10-18 22:09:09 +02:00 |
|
Philip Rebohle
|
5df5887095
|
[dxvk] Create timeline semaphores in submission queue
|
2024-10-18 21:32:07 +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
|
6540ab4f3e
|
[dxvk] Use DxvkPagedResource for CPU synchronization
|
2024-10-18 12:42:33 +02:00 |
|
Philip Rebohle
|
3a587c5116
|
[dxvk] Remove old lifetime tracking code
|
2024-10-18 12:42:33 +02:00 |
|
Philip Rebohle
|
cc22ccfc5c
|
[dxvk] Use new lifetime tracking for resources
|
2024-10-18 12:42:33 +02:00 |
|
Philip Rebohle
|
8389734e9f
|
[dxvk] Use new lifetime tracking for raw allocations
|
2024-10-18 12:42:33 +02:00 |
|
Philip Rebohle
|
b011e22406
|
[dxvk] Use new lifetime tracking for samplers
|
2024-10-18 12:42:33 +02:00 |
|
Philip Rebohle
|
7fef97dae0
|
[dxvk] Use new lifetime tracking for events
|
2024-10-18 12:42:33 +02:00 |
|
Philip Rebohle
|
50d8e3933a
|
[dxvk] Use new lifetime tracking for queries
|
2024-10-18 12:42:33 +02:00 |
|
Philip Rebohle
|
4a00623c40
|
[dxvk] Introduce DxvkTrackingRef and new tracking functions
The intention here is to clean up the code significantly while also
paving a way to perform more complex operations on resource release.
|
2024-10-18 12:42:33 +02:00 |
|
Philip Rebohle
|
56e8d55830
|
[dxvk] Remove direct resource allocation tracking
Track the containing virtual resources instead and only explicitly
keep allocations alive through invalidations.
|
2024-10-18 12:42:33 +02:00 |
|
Philip Rebohle
|
863ce5f117
|
[dxvk] Move DxvkAccess{Flags} to separate file
|
2024-10-18 12:42:33 +02:00 |
|
Philip Rebohle
|
d72346f2cb
|
[dxvk] Rename various storage-related functions
|
2024-10-18 12:42:33 +02:00 |
|
Philip Rebohle
|
43355ecd73
|
[dxvk] Optimize small_vector reallocation code
|
2024-10-18 12:42:33 +02:00 |
|
Philip Rebohle
|
e2b4060d43
|
[dxvk] Properly dirty multisample state when binding linked pipelines
Fixes a validation error in GTA V in very specific circumstances.
|
2024-10-17 19:40:17 +02:00 |
|
Philip Rebohle
|
990c7f562a
|
[dxvk] Rework HUD to use a GPU query directly
Allows us to leverage the global timestamp query pool now that queries
are reference-counted properly.
|
2024-10-17 14:27:09 +02:00 |
|
Philip Rebohle
|
fb6e0ad6c1
|
[dxvk] Remove useless DxvkMarker class
|
2024-10-16 20:57:50 +02:00 |
|
Philip Rebohle
|
500c86c054
|
[d3d9] Replace staging buffer marker with monotonic fence
Brings this in line with D3D11.
|
2024-10-16 20:57:50 +02:00 |
|
Philip Rebohle
|
0249193403
|
[util] Avoid locking fence objects on wait if target value was reached
|
2024-10-16 20:57:50 +02:00 |
|
Philip Rebohle
|
bdec26b442
|
[dxvk] Actually flush layout transition in clearImageViewCs
Fixes 2864a5e474a2b4ef46ba058106885e36f2ebbfb8.
|
2024-10-16 20:55:59 +02:00 |
|
Philip Rebohle
|
f8b9efd11e
|
[dxvk] Fix misaligned image uploads on transfer queue
|
2024-10-16 11:38:42 +02:00 |
|
Philip Rebohle
|
d2155c7f8c
|
[dxvk] End transform feedback when changing the active graphics pipeline
|
2024-10-16 11:33:40 +02:00 |
|
Philip Rebohle
|
f69dc96c24
|
[dxvk] Sanitize multisample state for fragment output libraries
Validation complains about MS state being different between fragment shader
pipeline libraries and fragment output libraries on the EDS3 path.
|
2024-10-16 11:33:29 +02:00 |
|
Philip Rebohle
|
8ab6b8616b
|
[dxvk] Track image initialization
|
2024-10-16 11:32:55 +02:00 |
|
Philip Rebohle
|
255e7b7d7a
|
[dxvk] Add functions for image subresource initialization tracking
|
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
|
f76fb75956
|
[d3d9] Prefer GENERAL layout for read-only textures
|
2024-10-16 11:32:55 +02:00 |
|
Philip Rebohle
|
b2598906ca
|
[d3d11] Prefer GENERAL layout for read-only textures
|
2024-10-16 11:32:55 +02:00 |
|
Philip Rebohle
|
6301b9d23d
|
[dxvk] Remove old barrier tracking code
|
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
|
4d2799f0d4
|
[dxvk] Add helper to determine pending barriers
|
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
|
4b94b8989d
|
[dxvk] Use new barrier helpers in transition*Attachment
|
2024-10-16 11:32:55 +02:00 |
|
Philip Rebohle
|
0388f20cd3
|
[dxvk] Use new barrier helpers in updateGraphicsPipelineState
|
2024-10-16 11:32:55 +02:00 |
|
Philip Rebohle
|
7c274d0852
|
[dxvk] Use new barrier helpers in renderPassEmitPostBarriers
|
2024-10-16 11:32:55 +02:00 |
|