Józef Kucia
35ead5825d
vkd3d: Use vk_write_descriptor_set_from_root_descriptor() in more places.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-18 00:59:39 +02:00
Józef Kucia
869602cbea
vkd3d: Avoid using VkCopyDescriptorSet.
...
VkCopyDescriptorSet may result in the CPU reading GPU memory then
writing GPU memory.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-11 18:37:32 +02:00
Józef Kucia
cf23d71d5d
vkd3d: Avoid copying root descriptors.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-11 18:37:31 +02:00
Józef Kucia
604fd99637
vkd3d: Prepare descriptors once for all descriptor tables.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-11 18:37:29 +02:00
Józef Kucia
3b0d20c474
vkd3d: Simplify d3d12_command_list_set_root_descriptor().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-11 18:37:27 +02:00
Józef Kucia
7652a6e62c
vkd3d: Simplify d3d12_command_list_set_root_cbv().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-11 18:37:25 +02:00
Józef Kucia
fa6304ee04
vkd3d: Ignore D3D_PRIMITIVE_TOPOLOGY_UNDEFINED.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-08 22:25:04 +02:00
Józef Kucia
39886b2386
vkd3d: Downgrade FIXME() in d3d12_command_list_IASetIndexBuffer().
...
An app calls IASetIndexBuffer() with DXGI_FORMAT_UNKNOWN.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-08 22:25:04 +02:00
Józef Kucia
03b9f4ff5a
vkd3d: Implement d3d12_command_list_OMSetBlendFactor().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-28 20:33:03 +02:00
Józef Kucia
fe3ad21949
vkd3d: Fix 2D array depth stencil views.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-28 20:33:00 +02:00
Józef Kucia
2e65b78102
vkd3d: Fix shader stage bits for pipeline barriers.
...
The Vulkan spec says:
"Any pipeline stage included in srcStageMask or dstStageMask must be
supported by the capabilities of the queue family..."
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-28 01:12:39 +02:00
Józef Kucia
82fdd800e2
vkd3d: Pass VkQueueFamilyProperties to vkd3d_queue_create().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-28 01:12:37 +02:00
Józef Kucia
be4a775c07
vkd3d: Do not hardcode aspect mask in d3d12_command_list_ClearUnorderedAccessViewUint().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-14 19:17:50 +02:00
Józef Kucia
b9d7569b8c
vkd3d: Partially implement clears for texture UAVs.
...
In the long term, we may want to use shaders to clear UAVs.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-13 19:26:23 +02:00
Józef Kucia
11c00a157c
vkd3d: Implement simple pipeline cache.
...
Ideally, we would like to introduce a Vulkan extension to make vertex
buffer strides and primitive topology dynamic in Vulkan.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-12 23:16:21 +02:00
Józef Kucia
f3e48a9192
vkd3d: Reset command list state in d3d12_command_list_Reset().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-12 23:16:16 +02:00
Józef Kucia
9fe06825f8
vkd3d: Fix initial pipeline state.
...
d3d12_command_list_begin_command_buffer() was using the previous initial
pipeline state when called from d3d12_command_list_Reset().
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-12 23:16:14 +02:00
Józef Kucia
cb24709980
vkd3d: Factor out d3d12_command_list_create_graphics_pipeline().
...
In preparation for pipeline cache.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-12 23:16:04 +02:00
Józef Kucia
b0bfe90c9e
vkd3d: Reuse descriptor pools.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-12 23:16:02 +02:00
Józef Kucia
7482794b0f
vkd3d: Use bigger descriptor pools.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-12 23:15:55 +02:00
Józef Kucia
c4c3634bc4
vkd3d: Rename vkd3d_queue_gpu_fence() to vkd3d_enqueue_gpu_fence().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-27 23:17:37 +02:00
Józef Kucia
bdc848b27a
vkd3d: Validate D3D12_BLEND_DESC.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-23 20:32:56 +02:00
Józef Kucia
d26300edd9
vkd3d: Do not store VkPipelineInputAssemblyStateCreateInfo in d3d12_command_list.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-23 20:32:52 +02:00
Józef Kucia
acc658a912
vkd3d: Avoid passing vkd3d_vk_device_procs to helper functions.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-23 20:32:50 +02:00
Józef Kucia
4cfd3a425f
vkd3d: Try to call vkCmdCopyQueryPoolResults() for multiple queries.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-23 20:32:48 +02:00
Józef Kucia
71e633cb1b
vkd3d: Simplify d3d12_command_list_IASetVertexBuffers().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-23 20:32:46 +02:00
Józef Kucia
80dbf329ca
vkd3d: Try to not invalidate current pipeline in IASetVertexBuffers().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-23 20:32:43 +02:00
Józef Kucia
d074fab10b
vkd3d: Reference count CPU descriptors.
...
We have to keep all image views referenced by all used VkFramebuffers.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-21 19:03:56 +02:00
Józef Kucia
90617d967d
vkd3d: Allow IASetVertexBuffers() with NULL buffer locations.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-21 19:03:40 +02:00
Józef Kucia
d9858b63b9
build: Check how many arguments pthread_setname_np() takes.
...
Based on a patch by Chip Davis.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 11:03:44 +02:00
Józef Kucia
c9380f8f7f
vkd3d: Try to keep current render pass as long as possible.
...
A lot of Vulkan commands must be recorded outside a render pass.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 11:02:33 +02:00
Józef Kucia
ffebe4524d
vkd3d: Avoid invalidating current framebuffer needlessly.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 11:02:30 +02:00
Józef Kucia
35748f9228
vkd3d: Avoid invalidating graphics pipeline and framebuffer.
...
Do not invalidate the current graphics pipeline and the current
framebuffer when a compute pipeline is bound.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 11:02:28 +02:00
Józef Kucia
b500207b79
vkd3d: Initialize all fields before calling d3d12_command_allocator_allocate_command_buffer().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 11:02:25 +02:00
Józef Kucia
ef999e1e2b
vkd3d: Call vkCmdBindDescriptorSets() only with valid descriptor set.
...
If the current pipeline state doesn't need any descriptors it is
perfectly valid to not have a descriptor set.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 11:02:20 +02:00
Józef Kucia
29f954be0a
libs/vkd3d: Assert that queue is valid in vkd3d_queue_acquire().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 11:02:06 +02:00
Józef Kucia
cc47b37c1d
libs/vkd3d: Factor out debug_ignored_node_mask().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-20 18:19:46 +02:00
Józef Kucia
89a2dc46dd
libs/vkd3d: Set names for internal threads.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-27 22:43:48 +02:00
Józef Kucia
6df54305e6
libs/vkd3d: Add support for 2D array render target views.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-26 21:58:54 +02:00
Józef Kucia
f0a1e14113
libs/vkd3d: Mark device as removed when command list in recording state is executed.
...
Fixes a GPU hang in test_device_removed_reason() on RADV.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-16 21:59:57 +02:00
Józef Kucia
2a430ae991
libs/vkd3d: Return early if there are no descriptors to update.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-13 19:08:12 +02:00
Józef Kucia
277cdd4e95
libs/vkd3d: Fix memory leak in d3d12_command_queue_ExecuteCommandLists().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-13 19:08:09 +02:00
Józef Kucia
830f7c1e49
libs/vkd3d: Propagate error code in vkd3d_fence_worker_stop().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-13 19:08:01 +02:00
Józef Kucia
0e86a6b353
libs/vkd3d: Use HRESULT as preferred error code.
...
For consistency.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-11 18:56:25 +02:00
Józef Kucia
bfd20ef1c8
libs/vkd3d: Add support for custom PRESENT state transitions.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-30 14:10:55 +02:00
Józef Kucia
26cbfbe647
libs/vkd3d: Implement d3d12_command_list_CopyResource() for textures.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-28 19:48:23 +02:00
Józef Kucia
abcd0348a0
libs/vkd3d: Fix single descriptor handles in d3d12_command_list_OMSetRenderTargets().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-13 18:39:47 +01:00
Józef Kucia
dd6dedd9d1
libs/vkd3d: Add remaining helper functions for CPU descriptor handles.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-08 21:59:04 +01:00
Józef Kucia
55025f7bec
libs/vkd3d: Get rid of vkd3d_get_vk_queue().
...
Replaced by vkd3d_acquire_vk_queue().
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-16 20:11:12 +01:00
Józef Kucia
12ca2bbcf6
libs/vkd3d: Add thread-safe API for accessing Vulkan command queues.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-15 17:51:39 +01:00