Ethan Lee
469025d234
native: Add SDL3 WSI
...
Co-authored-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2024-10-27 12:58:22 +01:00
Philip Rebohle
0259f55285
wsi: Pass window state to setWindowMode
2024-10-27 12:58:22 +01:00
WinterSnowfall
5ad84563dd
[d3d9] Improve the naming of GetFormatBlockSize helper
2024-10-27 12:36:33 +01:00
WinterSnowfall
7ffe77f7c4
[d3d9] Validate pBox dimensions with LockBox
2024-10-27 12:36:33 +01:00
WinterSnowfall
a0d48cd2a2
[d3d9] Adjust pLockedRect/pLockedBox clearing and return behavior
2024-10-27 12:36:33 +01:00
WinterSnowfall
63d9affdcb
[d3d9] Add volume texture creation and locking validations
2024-10-27 12:36:33 +01:00
WinterSnowfall
a323abe085
[d3d9] Validate alignment for block aligned formats
2024-10-27 12:36:33 +01:00
WinterSnowfall
678ccc721d
[d3d9] Validate pRect dimensions with LockRect
2024-10-27 12:36:33 +01:00
Philip Rebohle
80fbaed291
Revert "[d3d11] Use existing MD5 hash to look up shader objects"
...
This reverts commit 800f71c4f53bb13276571b09fecf8c878eb7b9bd.
We can't do this without breaking fossilize DBs because we compile the
SHA1 hash into the shader binary.
2024-10-27 12:53:11 +01:00
Philip Rebohle
4709d429ed
[dxbc] Fix EvalSnapped offset interpretation
2024-10-27 12:52:15 +01:00
Philip Rebohle
640758afcf
[util] Enable mapped memory clearing for Vindictus
2024-10-27 02:43:58 +02:00
Philip Rebohle
ed83534970
[dxvk] Add option to clear mapped memory regions to zero
2024-10-27 02:43:58 +02:00
Philip Rebohle
e9574a4155
[dxvk] Add utility function to clear large regions of memory
2024-10-27 02:43:58 +02:00
Philip Rebohle
d535e2964f
[dxvk] Remove obsolete comments
2024-10-25 19:22:58 +02:00
Philip Rebohle
3268bda4a2
[dxvk] Fix potential issues in invalidateImageWithUsage
...
Relevant for image recreation in D3D9, not so much for defrag
since we do everything late in the command list anyway.
2024-10-25 19:22:58 +02:00
Philip Rebohle
1a4ac219ed
[dxvk] Properly flush everything before recording defrag commands
2024-10-25 19:22:58 +02:00
Philip Rebohle
7df58de815
[dxvk] Do not emit useless image barriers in relocateResources
...
Instead, fold barriers with no layout transition into a simple memory
barrier to bring this in line with the usual barrier logic.
2024-10-25 19:22:58 +02:00
Philip Rebohle
763780fb4c
[dxvk] Remove obsolete fence code from command submissions
...
Unused since the timeline semaphore rework.
2024-10-25 11:31:01 +02:00
Philip Rebohle
662cfd49f5
[dxvk] Fix nonsensical pipeline stages when relocating resources
2024-10-24 15:19:43 +02:00
Philip Rebohle
640379e54b
[dxvk] Remove obsolete DxvkDeviceOptions structure
...
This hasn't been used since 2.0.
2024-10-24 12:31:18 +02:00
Philip Rebohle
ec62551412
[dxvk] Add option to disable memory defragmentation
2024-10-24 12:31:18 +02:00
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