Philip Rebohle
f7e021f791
[dxvk] Add command buffer parameter to cmdFillBuffer
2022-02-17 20:58:31 +01:00
Philip Rebohle
102bceb30c
[dxvk] Remove unused clear methods
2022-02-17 20:58:31 +01:00
Philip Rebohle
464c6810b3
[dxvk] Repurpose initImage method
...
This is now supposed to clear images of any type, and only to be
used for resource initialization after creation.
2022-02-17 20:58:31 +01:00
Philip Rebohle
63bf928ab5
[hud] Display GPU synchronization in HUD
2022-02-14 03:28:45 +01:00
Philip Rebohle
0c99b17081
[dxvk] Introduce DxvkDevice::waitForResource
...
Blocks on the queue thread's condition variable instead of busy-waiting,
and tracks synchronization with new stat counters. Cleanup is rearranged
to minimize delays before signals and resources are notified.
2022-02-14 03:15:47 +01:00
Philip Rebohle
25ebf94873
[dxvk] Display barrier count in draw call HUD item
2022-02-14 01:10:15 +01:00
Philip Rebohle
316e252a27
[dxvk] Add stat counter for pipeline barriers
2022-02-14 01:08:55 +01:00
Philip Rebohle
b5078a7ec0
[dxvk] Reduce context staging buffer size to 4 MiB
...
Same idea as before, just create a temporary buffer for larger resources.
This can avoid frequent Vulkan memory allocations and deallocations since
many small buffers are more likely to fit into a single memory chunk than
a small number of large buffers, thus reducing the overall memory footprint.
2022-02-14 01:01:34 +01:00
Philip Rebohle
08ecd49c66
[dxvk] Don't suballocate large staging buffer allocations
...
Otherwise we'll risk wasting almost half the staging buffer memory.
Creating a temporary buffer is cheap enough, so just do that.
2022-02-14 01:00:48 +01:00
Philip Rebohle
b9201db554
[dxvk] Remove unused trimStagingBuffers method
2022-02-13 02:08:20 +01:00
Philip Rebohle
95b7e6c030
[dxvk] Rework HUD font texture initialization
...
We really shouldn't need a separate context for this.
2022-02-13 02:08:20 +01:00
Philip Rebohle
425fce9200
[dxvk] Introduce transient memory flag for staging buffers
...
Potentially reduces fragmentation by putting short-lived staging buffers
and sysmem resources created by the application into different memory pools.
2022-02-13 02:08:20 +01:00
Philip Rebohle
9d4be00fa7
[dxvk] Allow large sysmem allocations on 64-bit platforms again
...
Since we frequently discard staging buffers now, having larger chunks
is actually beneficial again.
2022-02-13 02:08:20 +01:00
Philip Rebohle
d262bebd90
[dxvk] Remove DxvkStagingDataAlloc
...
Unused and overly clunky.
2022-02-13 02:08:20 +01:00
Philip Rebohle
8518572d13
[dxvk] Use DxvkStagingBuffer in DxvkContext
2022-02-13 02:08:20 +01:00
Philip Rebohle
1b88bc624a
[dxvk] Remove unused updateImage function
2022-02-13 02:08:20 +01:00
Philip Rebohle
3b833988fe
[dxvk] Use staging buffer for gamma ramp uploads
2022-02-13 02:08:19 +01:00
Philip Rebohle
0bc19472e8
[dxvk] Introduce DxvkStagingBuffer
2022-02-13 02:08:19 +01:00
Philip Rebohle
82518de4b4
[dxvk] Discard buffer slice in copyBuffer if possible
2022-02-13 02:08:19 +01:00
Philip Rebohle
5e763853e5
[dxvk] Introduce tryInvalidateDeviceLocalBuffer
2022-02-13 02:08:19 +01:00
Philip Rebohle
6a3de28f94
[dxvk] Repurpose updateBuffer
...
Only allow it for very small updates where scheduling a copy command would
likely be slower. Some drivers have special paths for tiny updates.
2022-02-13 02:08:19 +01:00
Philip Rebohle
ac9ed96457
[hud] Add HUD item to show CS thread stats
2022-02-13 02:07:48 +01:00
Philip Rebohle
b02496a8f4
[dxvk] Add CS thread stat counters
2022-02-13 02:07:48 +01:00
Philip Rebohle
d96c5a1076
[dxvk] Store DXVK device inside DxvkCsThread object
2022-02-13 02:07:48 +01:00
Philip Rebohle
52666a33c6
[dxvk] Expose a way to increment stat counters
...
In case the counters come from external sources.
2022-02-13 02:07:45 +01:00
Philip Rebohle
6b91b87dba
[dxvk] Reorganize DxvkBuffer data structure
...
Should hopefully reduce CPU cache conflicts.
2022-02-11 18:17:34 +01:00
Philip Rebohle
37f3d9208b
[dxvk] Introduce sequence numbers for CS submissions
2022-02-11 18:17:34 +01:00
Philip Rebohle
2673d74270
[dxvk] Add version fixup for proprietary Intel drivers
2022-02-02 14:56:59 +01:00
Philip Rebohle
badc53b1bb
[dxvk] Rework driver version fixup to use driver ID instead of vendor ID
2022-02-02 14:56:55 +01:00
Georg Lehmann
58909e4582
[dxvk] Fix MSVC build.
2022-02-01 18:50:00 +00:00
Philip Rebohle
1216466be7
[meta] Release 1.9.4
2022-01-24 15:08:49 +01:00
Philip Rebohle
b4e4eca99f
[dxvk] Remove options to disable OpenVR/XR support
...
No longer needed since we no longer load vrclient.so into the game's
process just to query extensions.
2022-01-24 14:50:04 +01:00
Philip Rebohle
a268de51e3
[dxvk] Don't shrink HVV heap if it's the main video memory heap
...
May fix issues on RBAR-enabled Nvidia systems.
2022-01-16 02:47:51 +01:00
Philip Rebohle
08c7bab431
[dxvk] Reduce maximum size of multi-slice buffers
2022-01-13 18:40:27 +01:00
Philip Rebohle
71e7faef69
[dxvk] Reduce size up to which device-local buffers can be invalidated
2022-01-13 18:39:31 +01:00
Philip Rebohle
db2e32ede6
[dxvk] Be smarter about which chunks to free
...
Freeing all empty chunks immediately may cause issues if an app constantly
allocates and frees a small number of resources that don't fit into any
existing chunk, so try to keep one around. Aggressively free everything
under memory pressure if necessary.
2022-01-13 18:39:31 +01:00
Philip Rebohle
15ab07ab94
[dxvk] Replace allocation priority with allocation flags
2022-01-13 18:39:31 +01:00
Philip Rebohle
d34bbdb58e
[dxvk] Free empty memory chunks
2022-01-13 18:22:44 +01:00
Philip Rebohle
e6442d64be
[dxvk] Display allocated memory in HUD again
2022-01-13 18:22:44 +01:00
Philip Rebohle
a70a35406e
[meta] Release 1.9.3
2022-01-11 13:28:28 +01:00
Philip Rebohle
3bfad1e70e
[dxvk] Explicitly intiialize framebuffer info
2021-12-20 23:47:50 +01:00
Georg Lehmann
c2a66c043a
[dxvk] Remove empty dxvk_main
2021-11-25 21:50:59 +00:00
Philip Rebohle
2abe2132a6
[dxvk] Implement framebuffer cache
...
Reduces the number of object allocations per frame.
2021-11-09 18:09:50 +01:00
Philip Rebohle
a987b729a7
[dxvk] Introduce DxvkFramebufferKey
...
Can be used to cache framebuffer objects.
2021-11-09 17:49:22 +01:00
Philip Rebohle
2527ea45b9
[dxvk] Refactor framebuffer creation
2021-11-09 16:37:33 +01:00
Philip Rebohle
f1aad6cb7b
[dxvk] Remove frame buffer from context state
2021-11-09 16:37:33 +01:00
Philip Rebohle
5b725205ef
[dxvk] Introduce DxvkFramebufferInfo
...
Stores all info that is currently held by the DxvkFramebuffer class,
but is not heap-allocated and will not create an actual framebuffer
object.
2021-11-09 16:37:31 +01:00
Philip Rebohle
1fd037cf29
[dxvk] Fix load aspect mask in render pass creation
2021-11-05 16:09:05 +01:00
Philip Rebohle
778aee0372
[dxvk] Rework Nvidia HVV option
2021-11-02 00:52:25 +01:00
Philip Rebohle
3e64e1b3f5
[dxvk] Explicitly stop state cache worker threads on device destruction
...
Otherwise, the workers may access objects that are being destroyed an
app thread.
2021-10-08 00:54:59 +02:00