Philip Rebohle
d4db877cdc
[dxvk] Fixed staging buffer alignment
...
Four-byte alignment is required in order to avoid illegal
vkCmdCopyBufferToImage calls. We align staging buffer slices to
a full cache line in order to improve performance.
2018-01-01 23:32:08 +01:00
Philip Rebohle
21582b955a
[dxvk] Require VK_KHR_maintenance2
...
This extension helps with some compatibility issues that are
somewhat inevitable during the D3D11->Vulkan translation.
2018-01-01 23:27:51 +01:00
Philip Rebohle
fd2bb610eb
[d3d11] Implemented indirect draws and dispatch
2017-12-31 01:31:08 +01:00
Philip Rebohle
b7ce9660c3
[d3d11] Implemented CopySubresourceRegion for images
2017-12-30 19:10:45 +01:00
Philip Rebohle
793ea6d914
[dxvk] Descriptor set updates now use descriptor type info
...
This fixes an issue where the wrong resource would be used for a
descriptor set update if multiple resources have been bound to a
single resource slot.
2017-12-29 15:06:33 +01:00
Philip Rebohle
8691d29185
[dxvk] Initial support for post-compute barriers
2017-12-29 01:09:54 +01:00
Philip Rebohle
7f5fa18d0b
[dxbc] Enabled SPV_KHR_shader_draw_parameters for vertex shaders
2017-12-27 14:31:38 +01:00
Philip Rebohle
0d3a1b25a1
[d3d11] Initial support for image updates + mapping
2017-12-25 20:40:48 +01:00
Philip Rebohle
a368d04fa0
[dxvk] Removed leftover line of code
2017-12-25 16:09:00 +01:00
Philip Rebohle
89138e5b40
[dxvk] Fixed lockup issue in thread destructors
2017-12-25 16:05:11 +01:00
Philip Rebohle
24bceb86c2
[dxvk] Fixed 3D image upload
2017-12-24 15:29:10 +01:00
Philip Rebohle
82b2c40405
[dxvk] Simplified resource binding
...
The backend no longer differentiates between compute pipeline
resources and graphics pipeline resources.
2017-12-23 15:11:23 +01:00
Philip Rebohle
518b469742
[dxvk] Added command stream classes
...
While these are not being used as of yet, these classes can be
used to implement command stream multithreading in the future.
They are also useful to implement command lists for deferred
contexts, which are a core feature of D3D11.
2017-12-20 22:17:14 +01:00
Philip Rebohle
84190369ab
[d3d11] Optimized resource binding methods
2017-12-20 17:37:46 +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
70e5314cc6
[dxvk] Optimized resource tracking
...
Putting all resources that are used by a command list
into a vector instead of a hash set is more efficient.
2017-12-20 02:45:57 +01:00
Philip Rebohle
d2b676b551
[dxvk] Fixed descriptor pool leak
2017-12-20 00:16:59 +01:00
Philip Rebohle
d1720c0c52
[dxbc] Implemented derivatives
2017-12-19 20:26:05 +01:00
Philip Rebohle
342e99a11c
[dxvk] Optimized descriptor updates
2017-12-19 19:36:44 +01:00
Philip Rebohle
5415b685de
[dxbc] Implemented type conversion instructions
2017-12-19 18:12:18 +01:00
Philip Rebohle
da2cc5a6a0
[dxvk] Fixed resource binding with invalidated buffers
...
When invalidating a constant buffer, the descriptor was not
updated, which usually led to the wrong resource being used
and could also cause crashes.
This fix also includes resource tracking for shader resources
on the graphics pipeline. The code needs to be made compatible
with the compute pipeline as well.
2017-12-19 01:08:48 +01:00
Philip Rebohle
c44b50ae4d
[dxvk] Fixed bug where resource bindings would not be updated after rebinding the pipeline
2017-12-18 16:16:21 +01:00
Philip Rebohle
4d01517dd8
[d3d11] Geometry shader prep work
2017-12-18 12:53:53 +01:00
Philip Rebohle
38b989ec91
[dxvk] vkCmdUpdateBuffer can only be used if both offset and size are aligned to four bytes
2017-12-18 12:44:18 +01:00
Philip Rebohle
ebabc0e578
[dxvk] Implemented proper swap chain synchronization
2017-12-16 21:30:48 +01:00
Philip Rebohle
1fe5b74762
Optimized command submission
...
Command submission now does not synchronize with the device every single
time. Instead, the command list and the fence that was created for it are
added to a queue. A separate thread will then wait for the execution to
complete and return the command list to the device.
2017-12-16 18:10:55 +01:00
Philip Rebohle
d5a49698b4
[dxvk] Implemented new memory allocator with sub-allocation
2017-12-16 16:48:42 +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
c0a963ae5b
[dxvk] Renamed DxvkBufferSlice methods for convenience
2017-12-14 19:11:13 +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
3d4304096b
[dxvk] Data buffer can now be created uninitialized
2017-12-12 15:39:20 +01:00
Philip Rebohle
2a266eaad4
[general] Added 32-bit support
2017-12-12 12:50:52 +01:00
Philip Rebohle
23abc82aa0
[dxvk] Added performance counter class
2017-12-12 10:29:17 +01:00
Philip Rebohle
3de427439b
[dxvk] Added proper documentation for staging buffers
2017-12-12 00:41:56 +01:00
Philip Rebohle
5f0e94138e
[dxvk] Implemented support for multisampled images and render targets
2017-12-12 00:27:49 +01:00
Philip Rebohle
de47fa29e1
[dxvk] Refactored Vulkan device and instance destruction, now more RAII friendly
2017-12-11 19:48:00 +01:00
Philip Rebohle
68ca71d8a4
[dxvk] Implemented recycling of command buffers and staging buffers
2017-12-11 19:17:08 +01:00
Philip Rebohle
50b7293b8f
[d3d11] Implemented blend state and depth-stencil state binding
2017-12-11 14:11:18 +01:00
Philip Rebohle
4144e3229a
[d3d11] Implemented blend state creation
2017-12-11 13:03:07 +01:00
Philip Rebohle
5739e2f60f
[dxvk] Added component mapping to image view info
2017-12-10 20:06:07 +01:00
Philip Rebohle
b4f85a2c2f
[d3d11] Fixed mip-mapped texture creation
2017-12-10 19:10:17 +01:00
Philip Rebohle
c0f5b46f81
[dxvk] Added proper support for block-compressed image formats
2017-12-10 18:14:28 +01:00
Philip Rebohle
52f1c4fa00
[dxvk] Implemented staging buffers for large data transfers
2017-12-10 15:57:51 +01:00
Philip Rebohle
89ec199c34
[d3d11] Re-implemented shader read
2017-12-10 12:21:33 +01:00
Philip Rebohle
4a0ff5343a
[dxgi] Added more format mappings
2017-12-09 14:41:37 +01:00
Philip Rebohle
b3c391d071
[d3d11] Implemented depth-stencil binding and clear methods
2017-12-09 03:53:42 +01:00