Philip Rebohle
0ca39e9b8f
[dxvk] Limit number of allocations to move per submissions
2024-10-21 22:25:48 +02:00
Philip Rebohle
db26403839
[dxvk] Periodically defragment VRAM chunks
2024-10-21 22:25:48 +02:00
Philip Rebohle
0d916ee7ef
[hud] Visualize inactive chunks
2024-10-21 22:25:48 +02:00
Philip Rebohle
9174523fde
[dxvk] Sort chunks by allocation time for statistics
2024-10-21 12:04:28 +02:00
Philip Rebohle
025186dba8
[dxvk] Include chunk status in statistics
2024-10-21 12:04:28 +02:00
Philip Rebohle
3cb2be22fc
[dxvk] Implement per-submission resource relocation
2024-10-21 12:04:28 +02:00
Philip Rebohle
e217f54e97
[dxvk] Add helper class for resource relocation
2024-10-21 12:04:28 +02:00
Philip Rebohle
be0c75227c
[dxvk] Introduce flag to synchronize transfer queue
...
Also, get rid of superfluous binary semaphores since we have
a straight per-submission timeline anyway.
2024-10-21 12:04:28 +02:00
Philip Rebohle
6e0f5dd0fd
[dxvk] Use small_vector in submission code
2024-10-21 12:04:28 +02:00
Philip Rebohle
215b24b0ed
[dxvk] Add function to safely acquire a resource
2024-10-21 12:04:28 +02:00
Philip Rebohle
fa51aee061
[dxvk] Handle dead chunks in pool allocator
2024-10-21 12:04:28 +02:00
Philip Rebohle
de17079da0
[dxvk] Add concept of disabled chunks to allocator
2024-10-21 12:04:28 +02:00
Philip Rebohle
a9a1fc5545
[dxvk] Add method to allocate backing storage with constraints
2024-10-21 12:04:28 +02:00
Philip Rebohle
b59c4db475
[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-21 12:04:28 +02:00
Philip Rebohle
2acfd19d70
[dxvk] Introduce allocation modes
...
Will be useful when relocating resources for defragmentation purposes.
2024-10-21 12:04:28 +02:00
Philip Rebohle
f31d9a60dd
[dxvk] Add global resource map to memory allocator
2024-10-21 12:04:28 +02:00
Philip Rebohle
fcb140b6b1
[dxvk] Add per-chunk allocation list
2024-10-21 12:04:28 +02:00
Philip Rebohle
3a0308899e
[dxvk] Add allocation flag for moveable resources
2024-10-21 12:04:28 +02:00
Philip Rebohle
319f6b975a
[dxvk] Pass resource cookie to allocation objects
2024-10-21 12:04:28 +02:00
Philip Rebohle
3383c48ea6
[dxvk] Introduce DxvkAllocationInfo
...
Useful when more properties are added in the future.
2024-10-21 12:04:28 +02:00
Philip Rebohle
8691a4062f
[dxvk] Reintroduce resource cookies
2024-10-21 12:04:28 +02:00
Philip Rebohle
f8ff8ce92b
[dxvk] Rename unspecific "next" member in DxvkResourceAllocation
2024-10-21 12:04:28 +02:00
Philip Rebohle
e79a4d7db4
[dxvk] Actually count barriers from resource relocation
2024-10-21 12:04:28 +02:00
Philip Rebohle
a204e8911f
[dxvk] Ignore uninitialized image subresources during relocation
2024-10-21 12:04:28 +02:00
Philip Rebohle
a2f4c09476
[dxvk] Track initialization of internally managed images
...
Otherwise, these will not be relocated properly during defragmentation.
2024-10-21 12:04:28 +02:00
Philip Rebohle
36ef98cbc9
[util] Properly return reference from small_vector emplace_back
2024-10-21 12:04:28 +02:00
Philip Rebohle
c7c08fb898
[dxvk] Remove memory worker thread
2024-10-21 12:04:01 +02:00
Philip Rebohle
a5dc3400bd
[dxvk] Use swap chain fences to synchronize WSI semaphores
...
Requires EXT_swapchain_maintenance1 to work, otherwise we won't use this.
2024-10-21 12:02:44 +02:00
Philip Rebohle
27539fc838
[dxvk] Use timeline semaphores for GPU synchronization
...
Ditches the old fence and binary semaphore code.
2024-10-21 12:02:44 +02:00
Philip Rebohle
1ee60048c0
[dxvk] Create timeline semaphores in submission queue
2024-10-21 12:02:44 +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
num0005
f56b77942d
[CI][Win] Copy version logic from artifacts script.
2024-10-17 22:40:08 +00:00
num0005
f85596ffbf
[CI] Upload artifacts for Windows builds.
2024-10-17 22:40:08 +00:00
num0005
01684d36ba
[build][msvc] Enable PDB output for all builds.
...
PDB generation even for release builds takes a little more time, but makes debugging DXVK on Windows easier. As the symbols are not embedded in the DLL it doesn't impact code generation or output binary size.
2024-10-17 22:40:08 +00: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