1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-12-14 00:48:44 +01:00
Commit Graph

6268 Commits

Author SHA1 Message Date
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
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