Commit Graph

920 Commits

Author SHA1 Message Date
Zhiyi Zhang
de88b33e4d vkd3d: Implement d3d12_command_queue_SetName().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-05 19:26:28 +01:00
Zhiyi Zhang
3e955da668 vkd3d: Implement d3d12_command_allocator_SetName().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-05 19:26:26 +01:00
Zhiyi Zhang
be6ffa6b79 vkd3d: Implement d3d12_command_list_SetName().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-05 19:26:24 +01:00
Zhiyi Zhang
bff7218091 vkd3d: Implement d3d12_device_SetName().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-05 19:26:22 +01:00
Józef Kucia
52015b30b3 vkd3d-common: Add support for naming debug environment variable.
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>
2019-01-31 18:05:53 +01:00
Józef Kucia
1ae1f831f6 vkd3d-shader: Move VKD3D_SHADER_DUMP_PATH implementation from libvkd3d.
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>
2019-01-31 18:05:51 +01:00
Zhiyi Zhang
f181334c54 vkd3d: Implement d3d12_fence_SetName().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-31 18:05:47 +01:00
Zhiyi Zhang
21b71be40e vkd3d: Implement d3d12_command_signature_SetName().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-31 18:05:45 +01:00
Zhiyi Zhang
252af95ba0 vkd3d: Implement d3d12_root_signature_SetName().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-31 18:05:43 +01:00
Zhiyi Zhang
225242c0b1 vkd3d: Implement d3d12_pipeline_state_SetName().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-31 18:05:41 +01:00
Zhiyi Zhang
3718e47133 vkd3d: Implement d3d12_descriptor_heap_SetName().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-31 18:05:39 +01:00
Zhiyi Zhang
1372bebc86 vkd3d: Implement d3d12_heap_SetName().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-30 18:35:42 +01:00
Zhiyi Zhang
875577bb89 vkd3d: Implement d3d12_resource_SetName().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-30 18:35:40 +01:00
Zhiyi Zhang
d0e2802a35 vkd3d: Implement d3d12_query_heap_SetName().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-30 18:35:38 +01:00
Józef Kucia
2aa7c6b753 vkd3d: Avoid passing 0 miplevels to 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>
2019-01-25 18:59:40 +01:00
Józef Kucia
9370929ac1 vkd3d: Implement D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS.
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>
2019-01-25 18:59:35 +01:00
Józef Kucia
766361f9c3 vkd3d: Return hardcoded GPU virtual address support.
The hardcoded value makes a real app happy and it is close to values
returned by various Windows drivers (AMD, Intel, Nvidia). In the long
term, we might try to derive the values from maxResourceSize and/or
sparseAddressSpaceSize.

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>
2019-01-25 18:59:32 +01:00
Józef Kucia
d74133fda5 vkd3d: Fix assert() condition for sample mask array size.
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>
2019-01-25 18:59:14 +01:00
Józef Kucia
639693de86 vkd3d: Do not ignore SampleMask in D3D12_GRAPHICS_PIPELINE_STATE_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>
2019-01-24 17:04:02 +01:00
Józef Kucia
ec49d3ebd2 vkd3d: Allow D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT only when explicitly requested.
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>
2019-01-22 16:36:02 +01:00
Józef Kucia
8f3db5ecef vkd3d: Simplify d3d12_device_GetResourceAllocationInfo().
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>
2019-01-22 16:36:01 +01:00
Józef Kucia
39eb9fe5d8 vkd3d: Allow D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT only for small textures.
Use a simple heuristic to decide if a resource is "small". The heuristic
is based on theoretical constraints for the most detailed mip level of
small resources. Those constraints are mentioned in D3D12 validation
layer errors and in the DirectX 12 Graphics samples.

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>
2019-01-22 16:35:59 +01:00
Józef Kucia
aff7ff4fcf vkd3d: Handle base offset in GetCopyableFootprints().
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>
2019-01-22 16:35:55 +01:00
Józef Kucia
e37cb78a22 vkd3d: Skip uninitialized descriptors in 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>
2019-01-22 16:35:53 +01:00
Józef Kucia
4c0692b2ef vkd3d-shader: Rename vkd3d_shader_interface to vkd3d_shader_interface_info.
For consistency with other vkd3d and vkd3d-shader structures.

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>
2019-01-17 19:44:05 +01:00
Józef Kucia
1a05563fc7 vkd3d: Require D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT for input layout.
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>
2019-01-17 19:44:03 +01:00
Józef Kucia
15713840b4 vkd3d: Require D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT for stream output.
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>
2019-01-17 19:44:01 +01:00
Józef Kucia
d9f8e6dd70 vkd3d: Implement stream output resource barriers naively.
With some tracking we could do better.

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>
2019-01-14 20:31:19 +01:00
Józef Kucia
1e4f8e39c9 vkd3d: Enable transform feedback for pipeline states with stream output.
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>
2019-01-14 20:31:17 +01:00
Józef Kucia
1aae46fb2f vkd3d: Pass transform feedback info to vkd3d-shader.
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>
2019-01-14 20:31:15 +01:00
Józef Kucia
61dd136cab vkd3d: Implement RasterizedStream.
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>
2019-01-14 20:31:08 +01:00
Józef Kucia
e73fe9cc41 vkd3d: Implement d3d12_command_list_SOSetTargets().
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>
2019-01-14 20:31:05 +01:00
Józef Kucia
799a8b41ce vkd3d: Set transform feedback buffer usage flags.
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>
2019-01-14 20:31:03 +01:00
Józef Kucia
5759cb52e0 vkd3d: Enable VK_EXT_transform_feedback.
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>
2019-01-14 20:31:01 +01:00
Józef Kucia
c509e6e83f vkd3d: Add FIXME() for sample 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>
2019-01-11 19:31:37 +01:00
Józef Kucia
2629d9703f vkd3d: Protect private data with mutex.
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>
2019-01-10 10:03:53 -06:00
Józef Kucia
5a1408c78d vkd3d: Handle NULL pointers in vkd3d_private_store_set_private_data().
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>
2019-01-10 10:03:47 -06:00
Józef Kucia
e13fb138cd vkd3d: Implement private data for query heaps.
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>
2019-01-04 17:05:43 +01:00
Józef Kucia
c9bd123bd0 vkd3d: Implement private data for descriptor heaps.
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>
2019-01-04 17:05:41 +01:00
Józef Kucia
781d856ce3 vkd3d: Implement private data for resources.
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>
2019-01-04 17:05:39 +01:00
Józef Kucia
e9520af19f vkd3d: Implement private data for heaps.
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>
2019-01-04 17:05:35 +01:00
Józef Kucia
b8fce1ac36 vkd3d: Implement private data for pipeline states.
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>
2019-01-04 17:05:33 +01:00
Józef Kucia
751d79a68f vkd3d: Implement private data for root signatures.
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>
2019-01-04 17:05:28 +01:00
Józef Kucia
223e89a6e5 vkd3d: Implement private data for command signatures.
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>
2019-01-04 17:05:23 +01:00
Józef Kucia
567000cab3 vkd3d: Implement private data for ID3D12Device.
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>
2019-01-03 17:19:04 +01:00
Józef Kucia
ec13f36681 vkd3d: Implement private data for command lists.
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>
2019-01-03 17:19:02 +01:00
Józef Kucia
f92abd7147 vkd3d: Implement private data for command allocators.
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>
2019-01-03 17:19:00 +01:00
Józef Kucia
0ddd6dbbb6 vkd3d: Implement private data for fences.
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>
2019-01-03 17:18:58 +01:00
Józef Kucia
d18360a8b7 vkd3d: Implement private data for 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>
2019-01-03 17:18:56 +01:00
Józef Kucia
5bb045c8f9 vkd3d: Validate RTV format for inactive render targets in pipeline state 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-12-17 19:17:14 +01:00
Józef Kucia
c93d9bc714 vkd3d: Implement dual source blending.
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-12-17 19:17:11 +01:00
Józef Kucia
6bcee19960 vkd3d: Return E_FAIL for invalid shader bytecode.
On Windows invalid shader bytecode leads to a crash, E_FAIL or
E_OUTOFMEMORY error.

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-12-12 17:28:16 +01:00
Józef Kucia
b868b5a258 vkd3d: Avoid out-of-bounds array access in d3d12_device_CopyDescriptors().
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-12-12 17:08:42 +01:00
Józef Kucia
9eaa641376 vkd3d: Validate that command signature contains exactly one dispatch/draw command.
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-12-04 18:50:20 +01:00
Józef Kucia
c15ab6a51c vkd3d: Add asserts for indirect draw arguments.
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-12-04 18:50:19 +01:00
Józef Kucia
3e8d0e7a6a vkd3d: Get rid of asserts from d3d12_device_CopyDescriptors().
Do not require that source range sizes match destination range sizes.
It works on Windows even though D3D12 validation layers throw errors
about size mismatches.

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-12-04 18:50:16 +01:00
Józef Kucia
6851bc6667 vkd3d: Implement D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED.
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-12-03 22:22:49 +01:00
Józef Kucia
a1ad45be69 vkd3d: Add FIXME() for unsupported strip cut values.
In Vulkan, the strip cut value is derived from the current index buffer
format. We could recompile the pipeline to handle more cases.

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-12-03 22:22:48 +01:00
Józef Kucia
afb648d19d vkd3d: Implement primitive restart.
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-12-03 22:22:45 +01:00
Józef Kucia
09f667ce4e vkd3d: Add FIXME() for invalid depth/stencil formats.
Needs more tests.

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-11-29 22:05:24 +01:00
Józef Kucia
e91bfb882d vkd3d: Disable depth/stencil tests for DXGI_FORMAT_UNKNOWN.
Needs more tests.

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-11-29 22:05:17 +01:00
Józef Kucia
1e2070837b vkd3d: Skip uninitialized DSV and RTV 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-11-27 21:23:46 +01:00
Józef Kucia
4486736e87 vkd3d: Improve invalid format messages.
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-11-27 21:23:45 +01:00
Józef Kucia
4a796a5644 vkd3d: Disallow creating shader visible RTV/DSV descriptor heaps.
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-11-27 21:23:41 +01:00
Józef Kucia
46c6bc6171 vkd3d: Add support for multisample texture 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-11-26 20:25:33 +01:00
Józef Kucia
00afe75457 vkd3d: Do not set VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT for multisample 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-11-26 20:25:30 +01:00
Józef Kucia
a5646b3aff vkd3d: Use at least D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT for textures.
It's the smallest alignment for textures supported by D3D12. Vulkan
implementations may return lower values.

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-11-16 18:41:45 +01:00
Józef Kucia
06c3d1779e vkd3d: Use VkDeviceSize for buffer view offset and range (Coverity).
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-11-15 18:33:39 +01:00
Józef Kucia
7decb65f54 vkd3d-shader: Implement shader visibility for UAV counters.
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-11-15 18:33:37 +01:00
Józef Kucia
a39d2aa3a8 vkd3d: Allow depth rendering without pixel shader.
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-11-15 18:33:34 +01:00
Józef Kucia
fa0f6f584a vkd3d: Enable rasterization discard if possible.
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-11-15 18:33:33 +01:00
Józef Kucia
11a1a9289e vkd3d: Initialize all members of d3d12_resource for external vkd3d resources.
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-11-13 20:49:41 +01:00
Józef Kucia
b4c36e389a vkd3d: Do not modify pointer on mapping failures.
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-11-13 20:49:40 +01:00
Józef Kucia
361e5f6274 vkd3d: Validate sub-resource index in d3d12_resource_Unmap().
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-11-13 20:49:37 +01:00
Józef Kucia
91c11eed03 vkd3d: Validate sub-resource index in d3d12_resource_Map().
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-11-13 20:49:36 +01:00
Józef Kucia
dc36ab41e3 vkd3d: Assign "heap" and "heap_offset" in more appropriate places.
Initializes all fields of struct d3d12_resource in
d3d12_resource_init().

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-11-13 20:49:34 +01:00
Józef Kucia
b8a665e229 vkd3d: Validate heap type for render target and unordered access buffers.
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-11-12 10:31:27 +01:00
Józef Kucia
d539adaff8 vkd3d: Translate pthread error numbers to HRESULTs.
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-11-12 10:31:25 +01:00
Józef Kucia
4ff26ef3c4 vkd3d: Implement Map() for placed resources.
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-11-12 10:31:21 +01:00
Józef Kucia
4d149b6f89 vkd3d: Handle VKD3D_ERROR_INVALID_SHADER in hresult_from_vkd3d_result().
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-11-08 19:07:32 +01:00
Józef Kucia
f97b745ae7 vkd3d-shader: Add structure type fields to public API structures.
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-30 18:21:59 +01:00
Józef Kucia
ae84b5210e vkd3d-shader: Introduce vkd3d_shader_binding_flags.
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-29 17:08:43 +01:00
Józef Kucia
a08dadde32 vkd3d: Avoid division by zero in GetResourceAllocationInfo() (Coverity).
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-29 17:08:30 +01:00
Józef Kucia
090177b95f vkd3d: Accept 0xffffffff as cube count for SRVs.
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-26 19:47:16 +02:00
Józef Kucia
ebde6bd229 vkd3d: Implement instance data step rate.
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-25 14:54:52 +02:00
Józef Kucia
b2dc48c611 vkd3d: Trace VK_EXT_vertex_attribute_divisor properties.
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-25 14:54:50 +02:00
Józef Kucia
db27883740 vkd3d: Trace VK_EXT_vertex_attribute_divisor features.
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-25 14:54:48 +02:00
Józef Kucia
2e8b3863f3 vkd3d: Do not trace features for all available physical devices.
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-25 14:54:45 +02:00
Józef Kucia
5e6b35af8e vkd3d: Enable VK_EXT_vertex_attribute_divisor.
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-25 14:53:26 +02:00
Józef Kucia
6d4e661336 vkd3d: Implement d3d12_command_list_ResolveSubresource().
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-25 13:58:36 +02:00
Józef Kucia
5e0094f617 vkd3d: Set the numer of samples for clears.
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-25 13:58:34 +02:00
Józef Kucia
5d28817164 vkd3d: Set the numer of samples for graphics pipelines.
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-25 13:58:32 +02:00
Józef Kucia
8f07e14711 vkd3d: Store compiled Vulkan pipelines in d3d12_graphics_pipeline_state.
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-24 17:00:51 +02:00
Józef Kucia
cfef906696 vkd3d: Make pipeline state responsible for creating Vulkan pipelines.
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-24 17:00:50 +02:00
Józef Kucia
11de335abd vkd3d-shader: Add support for combined samplers.
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-22 10:57:25 +02:00
Józef Kucia
dd26e59043 vkd3d: Avoid heap memory allocations while updating 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-19 21:42:58 +02:00
Józef Kucia
5a2dc97a5a vkd3d: Add asserts() for root descriptor indices.
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:40 +02:00
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
8e46f5ebf6 vkd3d: Remove "unhandled next" warnings.
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:36 +02:00
Józef Kucia
2f43965c2c vkd3d-shader: Add OpenGL SPIR-V target environment.
More changes are needed for full support.

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:36 +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
07d115b1d4 vkd3d: Fix race condition while dumping DXBC shaders.
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
c296cbe30b vkd3d: Implement D3D12_FEATURE_SHADER_MODEL.
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
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
f7bb28dc2b vkd3d: Do not enable shaderTessellationAndGeometryPointSize feature.
We don't want to write PointSize in tessellation and geometry shaders.

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-01 18:36:43 -07:00
Józef Kucia
0463588591 vkd3d: Allocate memory for resource if heap memory cannot be used.
Anvil has additional restrictions for index and vertex buffers.

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-01 18:36:34 -07:00
Józef Kucia
f1c967ab38 vkd3d: Fix potential memory leak in vkd3d_create_vk_device().
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:57:34 +02:00
Józef Kucia
6f73364634 vkd3d: Add requirements for maxPerStageDescriptorUniformBuffers.
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:07 +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
873a26a061 vkd3d: Simplify error handling in vkd3d_create_vk_device().
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:35 +02:00
Józef Kucia
b7ed0df1f4 vkd3d: Add WARN() for "out of device memory" errors.
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-26 19:27:29 +02:00
Józef Kucia
413c8562b9 vkd3d: Use heap memory for placed resources.
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-26 19:27:22 +02:00
Józef Kucia
bd0ce54f79 vkd3d: Allocate device memory for heaps.
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-26 19:26:33 +02:00
Józef Kucia
0014c4fbf9 vkd3d: Implement d3d12_device_GetResourceAllocationInfo() for textures.
In Vulkan, we have to create an image to get its memory requirements.
It would be very helpful if we could get the memory requirements without
creating a resource.

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-26 19:26:24 +02:00
Józef Kucia
ded908c515 vkd3d: Pass D3D12_RESOURCE_DESC and VkImage to vkd3d_create_image().
For consistency with vkd3d_create_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-09-26 19:26:21 +02:00
Józef Kucia
99e239ad50 vkd3d: Implement d3d12_device_GetResourceAllocationInfo() for buffers.
In Direct3D12, D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT is always used
for buffers. We could try to use a lower alignment when supported by
the Vulkan implementation, but there is no way to get buffer memory
requirements without creating a buffer 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-26 19:26:18 +02:00
Józef Kucia
e93fed2c93 vkd3d: Add support for fake placed resources.
Placed resources are not allocated from a given heap yet.

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-26 19:26:15 +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
0e8fc6e957 vkd3d: Fix leaks if d3d12_device_init_pipeline_cache() fails.
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:22 +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
e7eb9ca936 vkd3d: Simplify d3d12_device_init().
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:19 +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
605cb12eca vkd3d: Set pointer to NULL if heap creation fails.
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:12 +02:00
Józef Kucia
150d1f0eb8 vkd3d: Set pointer to NULL if committed resource creation fails.
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:08 +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
8ce0d2e72e vkd3d: Factor out d3d12_resource_init().
In preparation for placed resources.

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:52 +02:00
Józef Kucia
3dd8683ec5 vkd3d: Pass VkImage to vkd3d_allocate_image_memory().
For consistency with vkd3d_allocate_buffer_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-09-12 23:15:48 +02:00
Józef Kucia
1c7df3f50a vkd3d: Return bool from vkd3d_create_texture_view().
For consistency with vkd3d_create_buffer_view().

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-30 20:34:49 +02:00
Józef Kucia
d58c65aeeb vkd3d: Create vkd3d_views in vkd3d_create_buffer_view().
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-30 20:34:47 +02:00
Józef Kucia
3e33fb3212 vkd3d: Use vkd3d_create_vk_buffer_view() to create counter resource 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-08-30 20:34:45 +02:00
Józef Kucia
c75f9ee39d vkd3d: Export vkd3d_get_dxgi_format() function.
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-29 14:48:45 +02:00
Józef Kucia
20c153875c vkd3d: Add few more formats.
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-29 14:48:43 +02:00
Józef Kucia
3b68c87bd0 vkd3d: Create vkd3d_views in vkd3d_create_texture_view().
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-29 14:48:42 +02:00
Józef Kucia
6408094e7c vkd3d: Add support for 2D array texture 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-08-29 14:48:39 +02:00
Józef Kucia
ae8c344fa4 vkd3d: Add support for 3D texture 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-08-29 14:47:37 +02:00
Józef Kucia
4a49be6c63 vkd3d: Add support for default 3D texture 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-08-29 14:47:35 +02:00
Józef Kucia
c5e129cf67 vkd3d: Add support for default 1D texture 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-08-29 14:47:33 +02:00
Józef Kucia
72f6e85946 vkd3d: Introduce vkd3d_texture_view_desc structure.
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-29 14:47:31 +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
e43141b68e vkd3d: Add FIXME() for ignored SampleDesc.
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:34 +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
ca91aaf9b9 vkd3d: Add support for DXGI_FORMAT_R8G8_SNORM.
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:40 +02:00
Chip Davis
61697e092a build: Detect soname of libvulkan at configure time.
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:04:48 +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
d175afad78 vkd3d: Add support for optional instance extensions.
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-20 09:54:32 +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
0488b24c99 vkd3d: Add few more formats.
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:18 +02:00
Józef Kucia
98689bf33c libs/vkd3d: Add fall-through comment to vkd3d_select_memory_type().
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:09 +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
f0c27af357 libs/vkd3d: Fix return type of d3d12_root_signature_info_count_descriptors() (Coverity).
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:03 +02:00
Józef Kucia
f883c26524 libs/vkd3d: Add support for more formats.
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-14 12:30:23 +02:00
Józef Kucia
d9d37d1563 libs/vkd3d: Implement d3d12_device_CreateHeap().
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:47 +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
a5a17c22f1 libs/vkd3d: Introduce d3d12_resource_validate_desc().
Share D3D12_RESOURCE_DESC validation code between
CreateCommittedResource() and GetCopyableFootprints().

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:39 +02:00
Józef Kucia
8400832eea libs/vkd3d: Change return_interface() iface parameter type to void pointer.
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:35 +02:00
Józef Kucia
9ce53b74df libs/vkd3d: Return S_FALSE from D3D12CreateDevice() when device is NULL.
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-19 16:51:08 +02:00
Józef Kucia
72859f8898 libs/vkd3d: Support D3D12_SRV_DIMENSION_TEXTURE2D in d3d12_device_CreateShaderResourceView().
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-19 16:51:06 +02:00
Józef Kucia
b9a0907691 libs/vkd3d: Support D3D12_FEATURE_ROOT_SIGNATURE.
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-19 16:51:04 +02:00
Józef Kucia
b7d2278f57 libs/vkd3d: Validate PrimitiveTopologyType for PSO with tessellation shaders.
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-18 17:52:39 +02:00
Józef Kucia
7892a1e938 libs/vkd3d: Return E_INVALIDARG for invalid pipeline state 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-07-18 17:52:37 +02:00
Józef Kucia
d266a5f7d0 libs/vkd3d: Process shader stages according to pipeline order.
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-18 17:52:35 +02:00
Józef Kucia
404e988ecd libs/vkd3d: Trace build version.
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:49 +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
9b214c9ea7 libs/vkd3d: Implement cube shader resource 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-27 22:43:38 +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
746d3d4e7e libs/vkd3d: Use VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT only if array size is >= 6.
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-11 16:46:03 +02:00
Józef Kucia
265ce37014 libs/vkd3d: Use VK_COMPONENT_SWIZZLE_IDENTITY in vkd3d_set_view_swizzle_for_format().
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-05-29 19:33:08 +02:00
Józef Kucia
b5d1dbd182 libs/vkd3d: Rename default sampler to dummy sampler.
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-05-24 23:29:36 +02:00
Józef Kucia
a87b3f3fb2 libs/vkd3d-shader: Rename default sampler to dummy sampler.
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-05-24 23:29:32 +02:00
Józef Kucia
78c952ee5f libs/vkd3d: Fix rendering to DXGI_FORMAT_A8_UNORM.
In Direct3D alpha is taken from the .r component.

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-05-24 23:29:28 +02:00
Józef Kucia
40ee9fa0e9 libs/vkd3d-shader: Implement swizzling for shader outputs.
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-05-24 23:29:24 +02:00
Józef Kucia
3198cab3ed libs/vkd3d: Process render target formats before shaders.
We may need to swizzle components in pixel shader based on render target
formats because Vulkan doesn't support swizzles for framebuffer
attachment image 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-05-24 23:29:13 +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
8b8128b055 libs/vkd3d: Fix memory leak in d3d12_pipeline_state_init_compute_uav_counters().
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:10 +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
e6e62e8a8e libs/vkd3d: Add support for VK_EXT_debug_report.
For debug messages from Vulkan drivers.

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:10 +02:00
Józef Kucia
28e0ab6481 libs/vkd3d: Fix copying descriptors with NULL destination range sizes.
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:03 +02:00
Józef Kucia
f5b532921a libs/vkd3d: Add structure type fields to public API structures.
Adds flexibility for future API extensions.

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-03 21:59:35 +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
dd461ca6b8 libs/vkd3d: Handle VK_ERROR_EXTENSION_NOT_PRESENT in hresult_from_vk_result().
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:25 +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
953a924ca0 libs/vkd3d: Fix copying descriptors with NULL source range sizes.
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:21 +02:00
Józef Kucia
4dc706733e libs/vkd3d: Avoid passing invalid miplevel count to 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-03-28 19:48:20 +02:00
Józef Kucia
3f235f9787 libs/vkd3d: Fix error message in vkd3d_check_extensions().
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:17 +02:00
Józef Kucia
844c83a837 libs/vkd3d-shader: Avoid Windows data types in public API.
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-15 20:00:35 +01:00
Józef Kucia
fddf86e6ea libs/vkd3d-shader: Remove dependency on D3D12 headers.
We would like to allow building libvkd3d-shader as a standalone library
without our Direct3D translation layers.

In the long term, it should be possible to build and use libvkd3d-shader
without Win32 data types, Vulkan headers and libs.

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-15 20:00:31 +01:00
Józef Kucia
3bf017b331 libs/vkd3d: Disallow image view swizzles on framebuffer attachments and storage images.
The Vulkan spec says that image views must be created with the identity
swizzle for attachments and storage images.

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:40:00 +01:00
Józef Kucia
850f09e703 libs/vkd3d: Implement DXGI_FORMAT_A8_UNORM.
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:51 +01: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
65aab7b47b libs/vkd3d: Use PFN prefix for function pointer typedefs.
A more common convention, e.g. Vulkan uses it.

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-06 21:35:33 +01:00
Józef Kucia
372bd56ade libs/vkd3d: Add support for device parent.
In order to hold a reference to IDXGIAdapter.

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-02 18:49:52 +01:00
Józef Kucia
9075722128 libs/vkd3d: Implement internal reference counting for resources.
For swapchain back buffers.

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-24 22:32:22 +01:00
Józef Kucia
a25a2086a5 libs/vkd3d: Do not enable swapchain extensions by default.
libvkd3d doesn't use them.

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-24 22:32:20 +01:00
Józef Kucia
fc31637040 libs/vkd3d: Allow library user to enable additional device extensions.
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-24 22:32:14 +01:00
Józef Kucia
4cd36fc553 libs/vkd3d: Implement d3d12_device_GetAdapterLuid().
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-23 21:42:08 +01:00
Józef Kucia
c9c6caae98 libs/vkd3d: Allow library user to enable additional instance extensions.
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-23 21:42:06 +01:00
Józef Kucia
ebca1d3396 libs/vkd3d: Validate signal_event_pfn.
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-19 18:49:58 +01:00
Józef Kucia
6a32ad8913 libs/vkd3d: Rename vkd3d_get_vk_instance() to vkd3d_instance_get_vk_instance().
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-19 18:49:56 +01:00
Józef Kucia
c64181345b libs/vkd3d: Simplify vkd3d_restrict_format_support_for_feature_level().
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-19 18:49:53 +01:00
Józef Kucia
783a2c2cdf libs/vkd3d: Use vkGetInstanceProcAddr() to load global Vulkan functions.
It's enough to load vkGetInstanceProcAddr() in a platform-specific way.

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-18 16:22:01 +01:00
Józef Kucia
10b04414e8 libs/vkd3d: Load libvulkan dynamically.
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-18 16:21:51 +01:00
Józef Kucia
fcc6846559 libs/vkd3d: Allow library user to load libvulkan.
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-18 16:21:44 +01:00
Józef Kucia
8883502121 libs/vkd3d: Introduce function to get Vulkan instance from vkd3d instance.
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-18 16:21:32 +01:00
Józef Kucia
b0aa4ed434 libs/vkd3d: Add simple format support restrictions.
In the long term, we may need more complex format support filtering.

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-18 16:21:29 +01:00
Józef Kucia
ae014a29c4 libs/vkd3d: Allow library user to select Vulkan physical device.
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:23 +01:00
Józef Kucia
a64dd8be5f build: Add version name for symbols.
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:19 +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
d18e986b27 libs/vkd3d: Make GPU VA allocator thread-safe.
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:35 +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
41715a2f33 build: Use linker version scripts to control visibility.
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:25 +01:00
Józef Kucia
4605d1275c libs/vkd3d: Validate WCHAR size.
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:27:06 +01:00
Józef Kucia
0f46ae3e55 libs/vkd3d: Add API for creating vkd3d instances.
Makes possible to share a Vulkan instance between multiple devices.

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:27:01 +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
ee8eb9b4e4 libs/vkd3d: Validate miplevel count while creating resources.
vkd3d_log2i() is imported from wined3d.

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-11 22:31:33 +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
e061e9f3cb libs/vkd3d: Add more formats.
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:10 +01:00
Józef Kucia
5123feb750 libs/vkd3d: Remove unused prototype for vkEnumerateInstanceLayerProperties().
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:08 +01:00
Józef Kucia
8e3302d532 libs/vkd3d: Fix crash when creating NULL CBVs.
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:04 +01:00
Józef Kucia
879c9e43d1 libs/vkd3d: Do not export D3D12* functions.
Move them to libvkd3d-utils.
2017-12-12 13:12:47 +01:00
Józef Kucia
7e5dd39f5f libs/vkd3d: Prefer VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL.
Use VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL if depth/stencil
writes are disabled.
2017-10-30 14:04:53 +01:00
Józef Kucia
2b21fbf6b8 libs/vkd3d: Add VKD3D_SHADER_DUMP_PATH environment variable for dumping shaders.
A similar functionality was helpful numerous number of times when
developing libvkd3d-shader.
2017-10-24 15:22:01 +02: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
a4bd0c1c90 libs/vkd3d: Allocate GPU virtual addresses in d3d12_committed_resource_init(). 2017-10-20 18:27:17 +02:00
Józef Kucia
a63b81858c libs/vkd3d: Limit buffer usage flags based on heap type. 2017-10-20 18:27:17 +02:00
Józef Kucia
7fa3f2ed1a libs/vkd3d: Add FIXME comment for GPU VA allocator. 2017-10-18 11:54:56 +02:00
Józef Kucia
18b285328e libs/vkd3d-shader: Add version argument to vkd3d_shader_serialize_root_signature(). 2017-10-10 16:57:36 +02:00
Józef Kucia
f4cfebcd7e libs/vkd3d: Remove hack for creating root signatures from description. 2017-10-10 16:02:09 +02:00
Józef Kucia
5b5cffcf84 libs/vkd3d: Implement creating root signature from bytecode. 2017-10-10 16:02:09 +02:00
Józef Kucia
4629cbdf8a libs/vkd3d: Implement D3D12SerializeRootSignature(). 2017-10-10 16:02:09 +02:00
Henri Verbeet
53654baab9 libs/vkd3d: Support D3D12_FEATURE_FORMAT_SUPPORT in d3d12_device_CheckFeatureSupport(). 2017-10-10 13:09:32 +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
b002cc4cae libs/vkd3d: Use BC1 formats with alpha. 2017-09-26 11:48:03 +02:00
Józef Kucia
5a020d6673 libs/vkd3d-shader: Implement shader visibility for descriptors. 2017-09-22 16:42:07 +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
8cb004bdc4 libs/vkd3d: Create single default sampler per device. 2017-09-21 15:12:13 +02:00
Józef Kucia
cfa827b2f8 libs/vkd3d: Call compute_input_layout_offsets() unconditionally. 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
d2e7fcdf77 libs/vkd3d: Add environment variable for disabling Vulkan extensions.
It's useful for testing, e.g. VKD3D_DISABLE_EXTENSIONS=VK_KHR_push_descriptor
2017-09-18 15:40:42 +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
67641a8999 libs/vkd3d: Initialize device feature options in vkd3d_init_device_caps(). 2017-09-14 15:38:19 +02:00
Józef Kucia
554d07df06 libs/vkd3d: Warn about unmet feature level 11_0 requirements.
This isn't necessarily exhaustive.
2017-09-14 15:38:19 +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
a77376121d libs/vkd3d: Require VK_KHR_shader_draw_parameters device extension. 2017-09-12 17:42:42 +02:00
Józef Kucia
2425e2939a libs/vkd3d: Match input layout elements with vertex shader inputs. 2017-09-11 22:35:16 +02:00
Józef Kucia
cd99601b3c libs/vkd3d: Implement offset computation for D3D12_APPEND_ALIGNED_ELEMENT. 2017-09-11 22:35:16 +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 d9bc635d1a.

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 9afaed918d.
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
Józef Kucia
d9bc635d1a libs/vkd3d: Skip unbound UAV counters. 2017-09-08 15:04:30 +02:00
Józef Kucia
9afaed918d libs/vkd3d: Bind descriptor set for UAV counters. 2017-09-08 15:04:30 +02:00
Józef Kucia
19dc6c412e libs/vkd3d: Constify root signature pointers. 2017-09-08 15:04:30 +02:00
Józef Kucia
0d28036d2a libs/vkd3d: Add UAV counter support for compute pipelines.
UAV counter descriptors are stored in a separate VkDescriptorSet.
A VkPipelineLayout created for compute pipeline is compatible for all
other descriptor sets with the VkPipelineLayout created for the root
signature. This ensures that only UAV counter bindings in the last
descriptor set may be disturbed when switching between pipelines with
compatible root signatures.

The implementation of vkd3d_popcount() is based on
https://graphics.stanford.edu/~seander/bithacks.html
2017-09-08 15:04:30 +02:00
Józef Kucia
37f4c9d2a3 libs/vkd3d: Print only TRACE() messages for not initialized descriptors.
A descriptor do not have to be initialized if it is not used by shaders.
2017-09-07 17:48:43 +02:00
Józef Kucia
7416c83ae2 libs/vkd3d-shader: Rename vkd3d_descriptor_type to vkd3d_shader_descriptor_type. 2017-09-07 17:15:54 +02:00
Józef Kucia
efdf2ec691 libs/vkd3d-shader: Rename vkd3d_shader_push_constant to vkd3d_shader_push_constant_buffer.
This should be clearer. Multiple constant buffers can be assigned to
a single push constant range.
2017-09-07 17:15:54 +02:00
Józef Kucia
bd0c886281 libs/vkd3d: Store push constant ranges in root signatures.
In prep for UAV counters support.
2017-09-07 17:15:54 +02:00
Józef Kucia
ce8a0290b4 libs/vkd3d: Factor out vkd3d_create_pipeline_layout() function. 2017-09-07 17:15:54 +02:00
Józef Kucia
22b019137b libs/vkd3d: Factor out vkd3d_create_descriptor_set_layout() function. 2017-09-07 17:15:53 +02:00
Józef Kucia
f587670445 libs/vkd3d: Drop support for SPIR-V shaders. 2017-09-07 17:15:53 +02:00
Józef Kucia
495bd6fddc libs/vkd3d: Create Vulkan buffer views for UAV counter resources. 2017-09-07 17:15:53 +02:00
Józef Kucia
23150f6050 libs/vkd3d: Update Vulkan descriptor sets just before draw call. 2017-09-05 11:53:55 +02:00
Józef Kucia
36d7578093 libs/vkd3d: Move descriptor set functions closer to top of file.
In prep for the next commit.
2017-09-05 11:53:55 +02:00
Józef Kucia
9eee65c3ab libs/vkd3d: Validate root signature size. 2017-09-05 11:53:55 +02:00
Józef Kucia
603a44fb46 libs/vkd3d: Implement d3d12_device_CopyDescriptors().
There is no easy way to duplicate or copy Vulkan views and samplers.
Therefore, we use reference counting for Vulkan views and samplers when
copying them between descriptor heaps.
2017-09-04 18:33:09 +02:00
Józef Kucia
a780b7a11c libs/vkd3d: Implement reference counting for Vulkan views and samplers. 2017-09-04 18:33:09 +02:00
Józef Kucia
df0e4bf9cd libs/vkd3d: Fix default SRVs for 2D array textures. 2017-09-01 11:27:58 +02:00
Józef Kucia
62bd4e6e63 libs/vkd3d: Add support for OffsetInDescriptorsFromTableStart. 2017-08-31 11:21:34 +02:00
Józef Kucia
39a2c0e5f1 libs/vkd3d: Fix width and height for DSV descriptors. 2017-08-31 09:42:50 +02:00
Józef Kucia
7917b84ce9 libs/vkd3d: Fix width and height for RTV descriptors. 2017-08-31 09:42:50 +02:00
Józef Kucia
d8847aa462 libs/vkd3d: Fix texture region copying for miplevels other than 0. 2017-08-31 09:42:50 +02:00
Józef Kucia
0dca9909d9 libs/vkd3d: Copy single layer for array textures in d3d12_command_list_CopyTextureRegion(). 2017-08-31 09:42:50 +02:00
Józef Kucia
660ee7b090 libs/vkd3d: Do not use PlaneSlice as layer index. 2017-08-31 09:42:50 +02:00
Józef Kucia
f3862db04d libs/vkd3d: Use VK_PIPELINE_BIND_POINT_RANGE_SIZE. 2017-08-31 09:29:02 +02:00
Józef Kucia
d42f46cab6 libs/vkd3d: Use d3d12_resource_is_buffer() in d3d12_command_list_ResolveQueryData(). 2017-08-31 09:29:02 +02:00
Józef Kucia
904858f4a9 libs/vkd3d: Introduce d3d12_resource_is_texture() helper function.
Makes some code easier to read.
2017-08-30 18:31:52 +02:00
Henri Verbeet
f1aa742569 libs/vkd3d: Support D3D12_FEATURE_D3D12_OPTIONS in d3d12_device_CheckFeatureSupport(). 2017-08-30 18:11:38 +02:00
Henri Verbeet
6f14c77a7a libs/vkd3d: Explicitly initialise the queue timestamp bits variables in vkd3d_create_vk_device().
Avoids -Wmaybe-uninitialized warnings with gcc 4.9.2. More recent
versions of gcc are able to figure it out by themselves.
2017-08-30 18:11:34 +02:00
Józef Kucia
489abe870c libs/vkd3d: Implement d3d12_resource_GetHeapProperties(). 2017-08-30 17:57:23 +02:00
Sven Hesse
4aa534914b libs/vkd3d: Implement CopyTextureRegion() for texture to texture. 2017-08-30 16:53:29 +02:00
Józef Kucia
f8ef6630df libs/vkd3d: Implement d3d12_device_CopyDescriptorsSimple(). 2017-08-30 16:41:41 +02:00
Henri Verbeet
3019a3e8f1 libs/vkd3d: Support both native and Win32 wchar_t. 2017-08-29 16:36:05 +02:00
Sven Hesse
1f51eebe12 libs/vkd3d: Fail in GetTimestampFrequency() for queues without timestamp support. 2017-08-29 15:17:39 +02:00
Sven Hesse
5b6bd40464 libs/vkd3d: Cache the number of valid bits in queue timestamp queries. 2017-08-29 15:16:41 +02:00
Sven Hesse
4bfa651561 libs/vkd3d: Reset the queries before use. 2017-08-29 14:05:49 +02:00
Sven Hesse
531875d924 libs/vkd3d: Add a FIXME for binary occlusion queries. 2017-08-29 13:38:39 +02:00
Sven Hesse
027cc05209 libs/vkd3d: Set VK_QUERY_CONTROL_PRECISE_BIT for occlusion queries. 2017-08-29 13:38:39 +02:00
Józef Kucia
6800dc8e40 libs/vkd3d: Use switch instead of multiple ifs in vk_write_descriptor_set_from_d3d12_desc(). 2017-08-29 12:43:04 +02:00
Józef Kucia
7864ac4d67 libs/vkd3d: Merge if statements in vk_write_descriptor_set_from_d3d12_desc(). 2017-08-29 12:43:04 +02:00
Józef Kucia
61044c462b libs/vkd3d: Add FIXME() for ignored max command count. 2017-08-29 10:32:24 +02:00
Henri Verbeet
a624787479 libs/vkd3d: Simplify d3d12_command_list_ResolveQueryData(). 2017-08-28 20:38:17 +02:00
Henri Verbeet
040082d965 libs/vkd3d: Simplify d3d12_command_list_EndQuery(). 2017-08-28 20:38:05 +02:00
Henri Verbeet
9af2876958 libs/vkd3d: Simplify d3d12_command_list_BeginQuery(). 2017-08-28 20:37:51 +02:00
Henri Verbeet
7e5af314f1 libs/vkd3d: Validation should happen in the d3d12/Vulkan validation layers.
Unless we have tests that say otherwise.
2017-08-28 20:37:17 +02:00
Henri Verbeet
e228d776be libs/vkd3d: Fix the d3d12_query_heap_create() argument order. 2017-08-28 20:37:03 +02:00
Henri Verbeet
da54bd0278 libs/vkd3d: Implement indirect dispatches. 2017-08-28 19:29:35 +02:00
Henri Verbeet
b000952e4f libs/vkd3d: Implement indirect draws. 2017-08-28 19:26:31 +02:00
Henri Verbeet
b4d6aa0dbd libs/vkd3d: Explicitly handle VK_ERROR_DEVICE_LOST in hresult_from_vk_result(). 2017-08-28 19:21:17 +02:00
Józef Kucia
d107538df8 libs/vkd3d: Implement UAVs for 2D array textures. 2017-08-28 19:10:23 +02:00
Sven Hesse
3001ad5a4f libs/vkd3d: Implement ResolveQueryData() for QUERY_TYPE_PIPELINE_STATISTICS. 2017-08-28 15:15:26 +02:00
Sven Hesse
08c5b5ec2e libs/vkd3d: Implement EndQuery() for QUERY_TYPE_PIPELINE_STATISTICS. 2017-08-28 15:13:41 +02:00
Sven Hesse
5d5587b917 libs/vkd3d: Implement BeginQuery() for QUERY_TYPE_PIPELINE_STATISTICS. 2017-08-28 15:13:01 +02:00
Józef Kucia
8f8eb71ff8 libs/vkd3d: Avoid calling vkGetPhysicalDeviceProperties() in d3d12_command_queue_GetTimestampFrequency(). 2017-08-28 13:03:37 +02:00
Józef Kucia
b8c31b771d libs/vkd3d: Add missing return statement in d3d12_command_list_ResolveQueryData(). 2017-08-28 13:03:37 +02:00
Józef Kucia
faf86ebc58 libs/vkd3d: Add missing trace messages. 2017-08-28 13:03:37 +02:00
Sven Hesse
f8b7b26372 libs/vkd3d: Implement ResolveQueryData() for QUERY_TYPE_TIMESTAMP. 2017-08-25 15:16:06 +02:00
Sven Hesse
988e1a96de libs/vkd3d: Implement EndQuery() for QUERY_TYPE_TIMESTAMP. 2017-08-25 15:16:05 +02:00
Sven Hesse
67587f81e4 libs/vkd3d: Remember the Query Heap creation properties. 2017-08-25 15:16:03 +02:00
Sven Hesse
65f63d14fa libs/vkd3d: Implement d3d12_command_queue_GetTimestampFrequency(). 2017-08-25 15:16:02 +02:00
Sven Hesse
3a966cf38e libs/vkd3d: Mark D3D12_QUERY_HEAP_TYPE_SO_STATISTICS with a FIXME() 2017-08-23 17:31:12 +02:00
Sven Hesse
79cbc900bc libs/vkd3d: Create Vulkan Query Pools for D3D12 Query Heaps. 2017-08-23 16:18:15 +02:00
Józef Kucia
d443e0eb00 libs/vkd3d: Add support for buffer SRVs. 2017-08-22 12:39:56 +02:00