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
Józef Kucia
db2e1d402e
libs/vkd3d: Synchronize access to Vulkan queues.
...
Access to VkQueue must be externally synchronized.
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:32 +01:00
Józef Kucia
604056daf4
libs/vkd3d: Allow library user to create internal threads.
...
We want to create Win32 threads when running under Wine.
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-12 19:26:58 +01:00
Józef Kucia
5d85da0d84
libs/vkd3d: Release current command allocator in d3d12_command_list_Close().
...
d3d12_command_allocator_free_command_buffer() is not a very accurate name.
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-09 20:37:12 +01:00
Józef Kucia
f2b37c732a
libs/vkd3d: Use if-else in d3d12_command_list_get_fb_extent().
2017-10-24 12:10:48 +02:00
Józef Kucia
c70a023aeb
libs/vkd3d: Remove FIXME comment from vk_barrier_parameters_from_d3d12_resource_state().
2017-10-24 12:10:48 +02:00
Józef Kucia
b211df683e
libs/vkd3d: Implement copying between depth/stencil and color textures.
...
This could be implemented more efficiently, but ideally we would get
a Vulkan extension for copying between depth/stencil and color textures.
2017-10-20 18:27:17 +02:00
Józef Kucia
853068c84d
libs/vkd3d: Get rid of host writes memory dependency for intial state transitions.
2017-10-06 17:06:31 +02:00
Józef Kucia
97bfba1167
libs/vkd3d: Avoid read access bits in source access masks.
...
A memory dependency is used to make memory writes available
and visible.
2017-10-06 17:06:31 +02:00
Józef Kucia
67aed755ab
libs/vkd3d: Implement d3d12_command_list_ClearUnorderedAccessViewUint() for R32_UINT buffer views.
...
Ideally, we would store additional informations only in CPU descriptors.
2017-10-04 13:55:33 +02:00
Józef Kucia
fecc94cebc
libs/vkd3d: Add helpers for dereferencing descriptor handles.
2017-10-04 13:55:33 +02:00
Józef Kucia
14d975da8d
libs/vkd3d: Unroll descriptor copies for SRVs and UAVs.
...
Consecutive binding updates need to have the same descriptor type
according to validation layers.
2017-09-22 16:42:07 +02:00
Józef Kucia
6ef1961ed0
libs/vkd3d: Avoid recording invalid vkCmdCopyImage() commands.
2017-09-21 15:12:13 +02:00
Józef Kucia
54cd424daf
libs/vkd3d: Implement d3d12_command_list_SetGraphicsRootShaderResourceView().
2017-09-19 17:29:20 +02:00
Józef Kucia
eb8eba02bd
libs/vkd3d: Implement d3d12_command_list_SetComputeRootShaderResourceView().
2017-09-19 17:29:20 +02:00
Józef Kucia
90cf804d9b
libs/vkd3d: Use Vulkan pipeline cache for graphics pipelines.
2017-09-19 10:58:04 +02:00
Józef Kucia
acfd64c20e
libs/vkd3d: Avoid copying descriptors for dirty root descriptor tables.
2017-09-18 15:40:42 +02:00
Józef Kucia
2ea8ffb554
libs/vkd3d: Avoid vkCmdCopyQueryPoolResults() for not issued queries.
...
The Vulkan spec states:
* "If the query does not become available in a finite amount of time
(e.g. due to not issuing a query since the last reset), a
VK_ERROR_DEVICE_LOST error may occur."
* "If queries will never finish (e.g. due to being reset but not
issued), then vkGetQueryPoolResults may not return in finite time."
2017-09-14 14:57:09 +02:00
Józef Kucia
334c532401
libs/vkd3d: Implement d3d12_command_list_CopyResource() for buffers.
2017-09-14 14:57:09 +02:00
Józef Kucia
8e802ed0af
libs/vkd3d: Update descriptor table ranges only with matching descriptor types.
2017-09-11 22:35:16 +02:00
Józef Kucia
a78fe60ef8
Revert "libs/vkd3d: Skip unbound UAV counters."
...
This reverts commit d9bc635d1ab1303be45523ce7f9282dbcac953e5.
We should not need to handle this invalid behavior. It was triggered
by the bug in d3d12_command_list_update_descriptor_table().
2017-09-11 22:35:16 +02:00
Józef Kucia
1cde37d341
libs/vkd3d: Fix updating descriptor sets for descriptor tables with gaps.
...
Fixes 9afaed918da32e848c19e81beceda41ef67f459a.
2017-09-11 22:35:16 +02:00
Józef Kucia
32966338df
libs/vkd3d: Get rid of UAV counter count from d3d12_pipeline_state.
2017-09-08 15:30:48 +02:00
Józef Kucia
e8868affc0
libs/vkd3d: Clear UAV counters dirty mask after updating descriptors.
2017-09-08 15:30:48 +02:00