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

6211 Commits

Author SHA1 Message Date
Philip Rebohle
710d24c603 [dxvk] Include chunk status in statistics 2024-10-18 23:10:36 +02:00
Philip Rebohle
ddf858d1cf [dxvk] Implement per-submission resource relocation 2024-10-18 23:10:36 +02:00
Philip Rebohle
a858305900 [dxvk] Add helper class for resource relocation 2024-10-18 23:10:36 +02:00
Philip Rebohle
2d1f785bef [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-18 23:10:36 +02:00
Philip Rebohle
5a135d7000 [dxvk] Use small_vector in submission code 2024-10-18 23:10:36 +02:00
Philip Rebohle
5975dde85f [dxvk] Add function to safely acquire a resource 2024-10-18 23:10:36 +02:00
Philip Rebohle
4f4f9177cc [dxvk] Handle dead chunks in pool allocator 2024-10-18 23:10:36 +02:00
Philip Rebohle
f0e2ff8996 [dxvk] Add concept of disabled chunks to allocator 2024-10-18 23:10:36 +02:00
Philip Rebohle
2667622678 [dxvk] Add method to allocate backing storage with constraints 2024-10-18 23:10:36 +02:00
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
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
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