1325 Commits

Author SHA1 Message Date
Henri Verbeet
6abcc27c97 vkd3d: Add D3D_FEATURE_LEVEL_12_2 as a valid feature level. 2024-01-03 22:38:10 +01:00
Conor McCarthy
cc43ef3bca vkd3d: Pass int64 capability info to vkd3d-shader. 2024-01-02 23:03:00 +01:00
Conor McCarthy
b8694fd879 vkd3d: Co-locate all descriptor-related members.
To optimise cache coherence, because decriptor updates use the most
performance-critical code paths.
2023-12-14 21:00:34 +01:00
Conor McCarthy
a2741babd9 vkd3d: Rename the device mutex to pipeline_cache_mutex.
It is used only for pipeline and render pass caching, and renaming it
helps prevent inappropriate or erroneous use.
2023-12-14 21:00:30 +01:00
Conor McCarthy
37e76618ca vkd3d: Write Vulkan descriptors in a worker thread.
Raises framerate by 5-10% in games which write thousands of descriptors
per frame, e.g. Horizon Zero Dawn.

The worker thread is a generic device worker which can also be used for
other purposes if the need arises.
2023-12-14 21:00:28 +01:00
Conor McCarthy
70962ae7d8 vkd3d: Update the descriptor next index before getting a reference for writing.
Fixes a race condition where the descriptor is modified between getting
its object and resetting the `next` index. The new object would never be
written. While it is invalid for the app to write descriptors used by a
command list which has been submitted to a queue, unused descriptors may
be written. This change also supports writing descriptors in a worker
thread.
2023-12-14 21:00:26 +01:00
Giovanni Mascellani
a6317e5f3b vkd3d: Pad push constant ranges to 16 bytes.
Because that's the granularity of Constant Buffer accesses in SM4.
This commit requires using more push constants, but without it the
generated SPIR-V can be invalid.
2023-12-13 22:32:23 +01:00
Henri Verbeet
0c33f82f72 Release 1.10. 2023-12-06 15:31:21 +01:00
Jacek Caban
72bb5e8b02 vkd3d: Use VkPipelineStageFlags type for VkSubmitInfo.pWaitDstStageMask flags. 2023-11-28 00:09:28 +01:00
Alistair Leslie-Hughes
5c134d44d6 include: D3D12_RT_FORMAT_ARRAY remove typedef to make header compatible with windows.
windows d3d12.idl doesn't have this as a typedef.
2023-11-28 00:09:20 +01:00
Stefan Dösinger
2935ac5c7e vkd3d: Forward MakeResident to EnqueueMakeResident. 2023-11-28 00:09:09 +01:00
Stefan Dösinger
bd35c91227 vkd3d: Improve the EnqueueMakeResident stub. 2023-11-28 00:09:06 +01:00
Conor McCarthy
76eb0adf03 vkd3d: Support depth bounds test. 2023-11-15 21:48:45 +01:00
Conor McCarthy
d8ba0d2a11 vkd3d: Implement ID3D12Device2::CreatePipelineState(). 2023-11-15 21:48:44 +01:00
Conor McCarthy
6196199a89 vkd3d: Use struct d3d12_pipeline_state_desc for compute pipelines. 2023-11-15 21:48:44 +01:00
Conor McCarthy
39afbb8e32 vkd3d: Introduce struct d3d12_pipeline_state_desc for graphics pipelines.
A generic container for both compute and graphics pipeline descriptions
to facilitate reading the description from a stream.
2023-11-15 21:48:42 +01:00
Nikolay Sivov
e7422fdefb vkd3d: Fix some spelling mistakes. 2023-11-13 23:19:15 +01:00
Henri Verbeet
2252f012ea vkd3d: Add support for the ID3D12Resource1 interface. 2023-11-09 21:14:20 +01:00
Henri Verbeet
c5cc467394 vkd3d: Report D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE for UAV formats. 2023-11-08 22:49:43 +01:00
Henri Verbeet
000843b7c8 vkd3d: Report D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD for UAV formats when we have "uav_read_without_format". 2023-11-08 22:49:43 +01:00
Henri Verbeet
a03e78bf62 vkd3d: Compile the UAV clear shaders at runtime. 2023-11-06 23:09:49 +01:00
Nikolay Sivov
9c6c7cb78f vkd3d: Add partial implementation for CreateCommittedResource1(). 2023-10-10 22:11:46 +02:00
Nikolay Sivov
6ba75fd92f vkd3d: Add partial implementation for CreateHeap1().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-09 21:58:07 +02:00
Andrey Gusev
8087cc01f7 vkd3d: Add ID3D12GraphicsCommandList5 interface stub. 2023-10-05 16:15:02 +02:00
Andrey Gusev
679203f717 vkd3d: Add ID3D12GraphicsCommandList4 interface stub. 2023-10-03 21:27:34 +02:00