Philip Rebohle
504de3994b
[dxvk] Inline DxvkBufferView::updateView method
...
Most of the time the condition is false, so we should help
the compiler where we can to optimize for the common case.
2018-11-09 11:40:44 +01:00
Philip Rebohle
387f41ede5
[dxvk] Make DxvkBuffer destructor explicit
...
Prevents compiler from inlining massive amounts of code where it's
not needed. This is more consistent with the other classes as well.
2018-09-29 20:19:07 +02:00
Philip Rebohle
19f74a89cd
[dxvk] Optimize buffer renaming
...
Small reduction in CPU overhead by using spinlocks instead of
a full mutex for the two buffer free lists.
2018-07-19 09:44:58 +02:00
Philip Rebohle
32cd85dc11
[dxvk] Discard slices from old physical buffers
...
Improves effectiveness of an optimization that allows
using dynamic buffer offsets for descriptor sets.
2018-06-22 00:27:52 +02:00
Philip Rebohle
f762811af0
[dxvk] Use multiple free lists for physical buffer slices
...
Reduces lock contention and slightly improves performance in games
that rely heavily on the buffer renaming mechanism if the lock
protecting the original free list was contested.
2018-03-19 14:53:59 +01:00
Philip Rebohle
0eaa3fea3b
[dxvk] Implement thread-safe buffer renaming
...
This is required for resource mapping on deferred contexts.
May also fix a potential synchronization issue where a buffer
could be mapped multiple times before the CS thread would mark
the physical buffer as used, which would result in invalid data.
2018-03-19 02:18:44 +01:00
Philip Rebohle
360bf3ee4c
[dxvk] Recreate buffer views if necessary
...
Fixes broken animations and artifacts in The Witcher 3.
2018-03-07 13:54:28 +01:00
Philip Rebohle
cea86472bf
[dxvk] Fixed incorrect buffer create info
2018-01-29 11:44:02 +01:00
Philip Rebohle
d74be35e8c
[dxvk] Refactored physical buffer
...
Class is now much more generic, which should make things
easier for the upcomping deferred context implementation
2018-01-29 00:01:00 +01:00
Philip Rebohle
e4d49aeb66
[dxvk] Fixed reported size of staging buffers
...
Fixes staging slice allocation in Tomb Raider (2013),
and potentially other games which allocate large staging
buffers.
2018-01-24 15:44:40 +01:00
Philip Rebohle
a0acbeec72
[dxvk] Optimized buffer renaming
...
Helps applications which frequently update buffers
through either Map()/Unmap() or UpdateSubresource.
2018-01-19 00:20:05 +01:00
Philip Rebohle
6e6c290e01
[d3d11] Use DxvkPhysicalBufferSlice for resource copies and buffer views
2018-01-18 18:33:13 +01:00
Philip Rebohle
f41a7c7c87
[dxvk] Use DxvkPhysicalBufferSlice for buffer memory barriers
2018-01-18 17:32:34 +01:00
Philip Rebohle
a87ae8aba4
[dxvk] Added DxvkPhysicalBuffer to back virtual buffers
...
This is the first step to optimizing buffer updates for applications
that frequently invalidate buffers. The goal is to reduce the number
of buffer allocations per frame and reduce the cost of invalidation.
2018-01-18 15:52:57 +01:00
Philip Rebohle
f68655feff
[dxvk] Separated buffer renaming from allocation
2017-12-20 02:58:36 +01:00
Philip Rebohle
d3b2174180
[dxvk] Implemented buffer renaming
2017-12-16 13:21:11 +01:00
Philip Rebohle
b5d068366d
[dxvk] Implemented shader resource binding
2017-12-03 20:23:26 +01:00
Philip Rebohle
f924931d2d
[general] Removed TRACE calls for now
2017-11-26 14:01:41 +01:00
Philip Rebohle
47bdf9408b
[dxvk] Added buffer view class
2017-11-21 19:50:57 +01:00
Philip Rebohle
2c3674190a
[dxvk] Implemented proper resource binding
2017-10-15 19:23:10 +02:00
Philip Rebohle
44d9bd9000
[dxvk] Added buffer creation
2017-10-15 14:36:41 +02:00
Philip Rebohle
00e63d71a9
Initial commit
2017-10-10 23:32:13 +02:00