1
0
mirror of https://github.com/EduApps-CDG/OpenDX synced 2024-12-30 09:45:37 +01:00

42 Commits

Author SHA1 Message Date
Philip Rebohle
da76d74a2d
[dxvk] Minor internal buffer API cleanup 2018-09-30 11:05:20 +02: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
04ed4273ba
[dxvk] Avoid buffer slice copy when binding index/vertex buffers
Also redesigns getDescriptor to always return the offset.
2018-09-23 20:09:01 +02:00
Philip Rebohle
2eda95f61a
[dxvk] Optimize retrieval of dynamic buffer offsets 2018-09-20 15:19:33 +02:00
Philip Rebohle
539cc77b6e
[dxvk] Eliminate buffer slice copy when updating buffer descriptors 2018-09-20 12:10:43 +02:00
Philip Rebohle
12efd88726
[dxvk] Avoid more unnecessary copies of ref-counted pointers
Improves performance measurably in Shadow Warrior 2 when CPU bound.
2018-09-17 23:42:34 +02:00
Philip Rebohle
3a1fbdaaf1
[dxvk] Avoid buffer slice copy when tracking buffer views 2018-09-17 23:30:36 +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
56a1433d3f
[d3d11] ClearUnorderedAccessViewUInt: Create temp view if necessary
If this method is used to clear a view with a floating point format,
we need to create a compatible view with an integer format in order
to clear the resource with the correct value. Fixes some calls to
this function in Rise of the Tomb Raider and other games.
2018-04-12 23:31:15 +02:00
Philip Rebohle
9d84e1bfaa
[dxvk] Implement clearBufferView and clearImageView 2018-04-11 23:13:34 +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
85d28f7328
[d3d11] Implemented ClearUnorderedAccessViewUint for raw and structured buffers 2018-03-07 16:29:13 +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
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
f25b3c8b32
[d3d11] Use EmitCs for resource updates 2018-01-20 21:42:11 +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
9334873188
[dxvk] Cleaned up DxvkBufferSlice and added documentation 2018-01-18 18:50:44 +01:00
Philip Rebohle
6e6c290e01
[d3d11] Use DxvkPhysicalBufferSlice for resource copies and buffer views 2018-01-18 18:33:13 +01:00
Philip Rebohle
3212fc7444
[dxvk] Use DxvkPhysicalBufferSlice for indirect draws and buffer binding 2018-01-18 18:01:47 +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
9acc4a1a82
[d3d11] Map default constant buffers to host memory
Improves performance in applications that use UpdateSubresources
to frequently update constant buffers, such as Unigine Heaven,
Unigine Valley and Homefront.
2018-01-18 11:55:27 +01:00
Philip Rebohle
5cfbb74455 [dxvk] Added new convenient buffer slice constructor 2018-01-07 21:46:26 +01:00
Philip Rebohle
0d3a1b25a1 [d3d11] Initial support for image updates + mapping 2017-12-25 20:40:48 +01:00
Philip Rebohle
2ed2d892d6 [dxvk] Optimized resource binding
Fixes a few bottlenecks that were encountered in the Cascading Shadow
Maps demo from the Microsoft SDK. Performance is now slightly better
than wined3d with CSMT, MESA_NO_ERROR and mesa_glthread enabled.
2017-12-20 12:13:08 +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
d9f38a7f42 [d3d11] Minor restructuring 2017-12-15 19:11:10 +01:00
Philip Rebohle
4502816bb6 [dxvk] Renamed DxvkBufferSlice methods for convenience 2017-12-14 19:09:53 +01:00
Philip Rebohle
9827ace3b0 [d3d11] Fixed buffer bindings with non-zero offsets 2017-12-14 19:07:08 +01:00
Philip Rebohle
40241e0b22 [dxvk] DxvkBufferBinding -> DxvkBufferSlice 2017-12-14 15:24:43 +01:00
Philip Rebohle
52f1c4fa00 [dxvk] Implemented staging buffers for large data transfers 2017-12-10 15:57:51 +01:00
Philip Rebohle
a43bb134e0 [dxvk] Initial support for format info 2017-12-09 02:44:59 +01:00
Philip Rebohle
b5d068366d [dxvk] Implemented shader resource binding 2017-12-03 20:23:26 +01:00
Philip Rebohle
47bdf9408b [dxvk] Added buffer view class 2017-11-21 19:50:57 +01:00
Philip Rebohle
a47ebd6ed5 [dxvk] Proper blend state and viewport state setup 2017-11-20 15:35:29 +01:00
Philip Rebohle
ae0c186f26 [dxvk] Implemented constant state objects 2017-11-20 13:21:27 +01:00
Philip Rebohle
e433c01ad4 [dxvk] Some more work on shader resources and resource bindings 2017-10-15 17:56:06 +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