Philip Rebohle
|
9977313c32
|
[dxvk] Do not defragment chunks with immovable resources
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
62f266098e
|
[dxvk] Consider driver allocations when computing memory budget
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
de400ae8a9
|
[dxvk] Increase memory task tick rate to 0.5s
Makes cleanup a bit quicker in some cases.
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
7a09ab6c83
|
[dxvk] Limit amount of memory to relocate per submission
If the resources we're moving around are in slow memory, moving a full
chunk at once can already take several milliseconds. Try to avoid that.
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
787671ef62
|
[dxvk] Limit number of allocations to move per submissions
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
899f48bc43
|
[dxvk] Periodically defragment VRAM chunks
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
c4cddebb89
|
[hud] Visualize inactive chunks
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
2c8fe59924
|
[dxvk] Sort chunks by allocation time for statistics
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
69437c2fea
|
[dxvk] Include chunk status in statistics
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
7a693ed41a
|
[dxvk] Implement per-submission resource relocation
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
9cbd45b8cf
|
[dxvk] Add helper class for resource relocation
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
0723250c12
|
[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-24 12:31:18 +02:00 |
|
Philip Rebohle
|
13da763f9b
|
[dxvk] Use small_vector in submission code
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
800792a67d
|
[dxvk] Add function to safely acquire a resource
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
c7a9c626f5
|
[dxvk] Handle dead chunks in pool allocator
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
a9bcb40655
|
[dxvk] Add concept of disabled chunks to allocator
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
bfcfcab60f
|
[dxvk] Add method to allocate backing storage with constraints
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
a3c8c88222
|
[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-24 12:31:18 +02:00 |
|
Philip Rebohle
|
3a1de271cb
|
[dxvk] Introduce allocation modes
Will be useful when relocating resources for defragmentation purposes.
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
9a8406f28a
|
[dxvk] Add global resource map to memory allocator
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
8e94a8bcc6
|
[dxvk] Add per-chunk allocation list
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
4e40d0b939
|
[dxvk] Add allocation flag for moveable resources
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
bb05f123db
|
[dxvk] Pass resource cookie to allocation objects
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
efebceecbe
|
[dxvk] Introduce DxvkAllocationInfo
Useful when more properties are added in the future.
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
7ccfb57d57
|
[dxvk] Reintroduce resource cookies
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
809257051b
|
[dxvk] Rename unspecific "next" member in DxvkResourceAllocation
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
3befea6516
|
[dxvk] Actually count barriers from resource relocation
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
90f32d76ff
|
[dxvk] Ignore uninitialized image subresources during relocation
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
77a1164d1b
|
[dxvk] Track initialization of internally managed images
Otherwise, these will not be relocated properly during defragmentation.
|
2024-10-24 12:31:18 +02:00 |
|
Philip Rebohle
|
1c157d1a63
|
[util] Properly return reference from small_vector emplace_back
|
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
|
b4ed108105
|
[d3d9] Remove format conversion context
|
2024-10-24 12:30:54 +02:00 |
|
Philip Rebohle
|
f9a99e81f4
|
[dxvk] Bump state cache format to v18
All D3D11 shader keys change, so we should invalidte existing caches.
|
2024-10-23 16:56:32 +02:00 |
|
Philip Rebohle
|
f3fa2535e8
|
[d3d11] Validate shader creation parameters
|
2024-10-23 16:56:32 +02:00 |
|
Philip Rebohle
|
800f71c4f5
|
[d3d11] Use existing MD5 hash to look up shader objects
Skips the expensive SHA-1 pass.
|
2024-10-23 16:56:32 +02:00 |
|
Philip Rebohle
|
ae9024492b
|
[d3d11] Devirtualize context method forwarding
|
2024-10-23 16:56:22 +02:00 |
|
Philip Rebohle
|
d10df6353b
|
[d3d11] Devirtualize resource and view creation method forwarding
|
2024-10-23 16:56:22 +02:00 |
|
Philip Rebohle
|
565af8c311
|
[dxvk] Add important assert to object tracker
|
2024-10-23 11:30:37 +02:00 |
|
Blisto91
|
24e0440043
|
[util] Remove The Old Republic config
Looks fine without since dxvk 2.0
|
2024-10-23 11:19:01 +02:00 |
|
Philip Rebohle
|
01300bb884
|
[dxvk] Improve some descriptor setup code
Help the compiler out since it cannot fully prove that two consecutive
calls to DxvkImageView::handle with the same argument return the same result.
|
2024-10-23 10:26:24 +02:00 |
|
Philip Rebohle
|
cd4d68244d
|
[dxvk] Use real shader access types for writeable descriptor types
Mostly relevant for storage buffers since those are often read-only.
|
2024-10-23 10:08:03 +02:00 |
|
Blisto91
|
f813549ced
|
[util] Set forceSamplerTypeSpecConstants for Alpha Protocol
Some objects like metal containers will have unwanted reflection when they shouldn't otherwise.
|
2024-10-22 11:34:02 +02:00 |
|
Philip Rebohle
|
ce42ce2f3f
|
[dxvk] Remove memory worker thread
|
2024-10-21 17:29:38 +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 |
|