Commit Graph

1384 Commits

Author SHA1 Message Date
Józef Kucia f510e93948 vkd3d-shader: Implement sampleinfo for rasterizer.
Also adds initial infrastructure for more flexible shader parameters.

Signed-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-04-26 16:37:18 +02:00
Józef Kucia 2bdc63d682 vkd3d-shader: Fix write mask for shader inputs.
Shader inputs with non-contiguous write masks (e.g. xyw) were not
handled properly in rare 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>
2019-04-26 16:37:13 +02:00
Józef Kucia d5d1ee4031 vkd3d-shader: Do not export vkd3d_shader_free_root_signature_v_1_0().
Signed-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-04-25 17:20:25 +02:00
Józef Kucia aa2d00929e vkd3d: Prefer versioned root signature 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-04-25 17:20:21 +02:00
Józef Kucia 374bcd276e vkd3d-shader: Remove versioned_ prefix from root signature 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>
2019-04-25 17:20:18 +02:00
Józef Kucia 070de4dfbb vkd3d-shader: Add FIXME() for unknown root signature descriptor 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-04-25 17:20:15 +02:00
Józef Kucia 14f9f03fd6 vkd3d: Rename d3d12_fence_destroy_vk_semaphores_locked().
Signed-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-04-24 10:48:27 +02:00
Józef Kucia 21ab63c4d6 vkd3d-shader: Remove vkd3d_shader_serialize_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>
2019-04-24 10:48:24 +02:00
Józef Kucia 534f30b30a vkd3d: Implement vkd3d_serialize_versioned_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>
2019-04-24 10:48:20 +02:00
Józef Kucia a9ad6f637d vkd3d-shader: Implement serialization for versioned 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-04-24 10:48:17 +02:00
Józef Kucia 0cca14a206 vkd3d: Implement d3d12_versioned_root_signature_deserializer_GetRootSignatureDescAtVersion().
Signed-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-04-24 10:48:12 +02:00
Józef Kucia 16f36b0c9b vkd3d-shader: Remove vkd3d_shader_parse_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>
2019-04-19 16:24:09 +02:00
Józef Kucia f300781c79 vkd3d: Prefer vkd3d_shader_parse_versioned_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>
2019-04-19 16:24:07 +02:00
Józef Kucia ac8ffc3cd0 vkd3d: Reimplement ID3D12RootSignatureDeserializer on top of vkd3d_shader_parse_versioned_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>
2019-04-19 16:24:06 +02:00
Józef Kucia fbeabe0849 vkd3d-shader: Implement conversion between root signature 1.0 and 1.1.
Signed-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-04-19 16:24:04 +02:00
Józef Kucia cb895ff646 vkd3d: Implement vkd3d_create_versioned_root_signature_deserializer().
Signed-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-04-19 16:23:57 +02:00
Józef Kucia f9b9ae8cc7 vkd3d-shader: Implement parsing of root signature 1.1.
Signed-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-04-19 16:23:53 +02:00
Józef Kucia 8df50592f6 vkd3d: Reject D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME.
Signed-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-04-18 18:49:06 +02:00
Józef Kucia f886aecdc0 vkd3d: Return S_OK from d3d12_command_queue_Wait().
Signed-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-04-18 18:49:01 +02:00
Józef Kucia 3c44195206 vkd3d: Reuse Vulkan 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-04-18 18:48:50 +02:00
Józef Kucia cf1faaf873 vkd3d: Signal Vulkan semaphore in d3d12_command_queue_Signal().
For d3d12_command_queue_Wait().

Signed-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-04-18 18:48:47 +02:00
Józef Kucia 81b33e7129 vkd3d: Differentiate GPU and CPU fence signal operations.
Signed-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-04-18 18:48:43 +02:00
Józef Kucia 3b83ccc67e vkd3d: Add stubs for versioned 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-04-10 18:56:55 +02:00
Józef Kucia ec458df6ff vkd3d: Fix device features structure chain.
Signed-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-04-10 18:56:50 +02:00
Józef Kucia f7fa7a3fb8 vkd3d-shader: Assert that write masks are valid.
Signed-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-04-08 19:39:41 +02:00
Józef Kucia a46a2fb21b vkd3d-shader: Avoid mixing enum types (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>
2019-04-08 19:39:36 +02:00
Józef Kucia 18f8019fd9 vkd3d-common: Explicitly limit value to UINT_MAX in vkd3d_env_var_as_uint().
Signed-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-04-08 19:39:34 +02:00
Józef Kucia abdaa20376 vkd3d: Fix memory leak in vkd3d_init_device_caps() (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>
2019-04-08 19:39:32 +02:00
Józef Kucia a95c9f8ad8 vkd3d: Add support for VK_EXT_depth_clip_enable.
Signed-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-04-04 17:25:31 +02:00
Józef Kucia 32aa45a86d vkd3d: Simplify d3d12_command_list_update_descriptor_table().
Signed-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-04-04 17:25:25 +02:00
Józef Kucia 41274e6285 vkd3d: Drop support for 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>
2019-04-04 17:25:23 +02:00
Józef Kucia 5842898cc7 vkd3d-shader: Drop support for dummy samplers.
This shouldn't be needed by any Vulkan driver anymore.

Signed-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-04-04 17:25:21 +02:00
Zhiyi Zhang 32a15c089a vkd3d: Improve UMA memory detection.
Some vulkan implementation report 2 memory types with the same
VkMemoryPropertyFlags for a device. So check property flags
to determine if UMA and CacheCoherentUMA are actually supported
by the device.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-04 17:25:15 +02:00
Józef Kucia a1ec97ca2a vkd3d: Enable VK_EXT_descriptor_indexing.
This extension brings dynamic indexing for all descriptor types and the
update after bind feature.

VK_KHR_maintenance3 is required by VK_EXT_descriptor_indexing.

Signed-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-04-02 19:34:01 +02:00
Józef Kucia 91e88a820e vkd3d: Avoid copying empty ranges 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>
2019-04-02 19:33:51 +02:00
Józef Kucia 4408816e24 vkd3d: Add helpers for getting root signature parameters.
Signed-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-04-01 21:42:50 +02:00
Józef Kucia 74fbfee611 vkd3d: Clear descriptor dirty masks when setting 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>
2019-04-01 21:42:47 +02:00
Józef Kucia acc9430abe vkd3d-shader: Fix SV_Position.w in pixel 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>
2019-04-01 21:42:35 +02:00
Józef Kucia c95a51ecd0 vkd3d: Add partial support for 2D NULL 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>
2019-03-29 00:21:10 +01:00
Józef Kucia ab3fab2953 vkd3d: Initialize NULL CBV 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>
2019-03-29 00:21:08 +01:00
Józef Kucia ee673a9db5 vkd3d: Use dedicated allocation for committed resources.
Dedicated allocations may improve the performance.

Signed-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-03-29 00:21:06 +01:00
Józef Kucia 3d3f640590 vkd3d: Add more Vulkan feature checks.
Sort the list alphabetically.

Signed-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-03-29 00:21:02 +01:00
Józef Kucia 6ee8529390 vkd3d: Add support for optional 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>
2019-03-29 00:21:00 +01:00
Józef Kucia 053a2b0f52 vkd3d: Trace device properties for selected 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>
2019-03-29 00:20:58 +01:00
Józef Kucia eb741c9ecd vkd3d: Implement component mapping 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>
2019-03-22 20:33:09 +01:00
Józef Kucia 4cdbcbd85f vkd3d: Do not require dlfcn.
For Windows builds.

Signed-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-03-19 18:41:42 +01:00
Józef Kucia bcd60c21ca vkd3d-shader: Do not enable SpvCapabilityUniformBufferArrayDynamicIndexing.
This capability is for dynamic indexing *arrays* of uniform 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>
2019-03-19 18:41:28 +01:00
Józef Kucia 27b4779930 vkd3d-shader: Check shader visibility 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>
2019-03-19 18:41:25 +01:00
Józef Kucia 3a3bc772b1 vkd3d: Ignore redundant SetPipelineState() calls.
Signed-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-03-19 18:41:23 +01:00
Józef Kucia f3c9229cc3 vkd3d: Ignore redundant IASetPrimitiveTopology() calls.
Signed-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-03-19 18:41:20 +01:00
Józef Kucia e9574e1f39 vkd3d: Validate box in d3d12_command_list_CopyTextureRegion().
Signed-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-03-18 16:53:56 +01:00
Józef Kucia a4d02360ed vkd3d: Fix copying texture regions from textures to 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>
2019-03-18 16:53:52 +01:00
Józef Kucia cd6ddd2418 vkd3d: Do not ignore "src_box" in d3d12_command_list_CopyTextureRegion().
Signed-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-03-18 16:53:48 +01:00
Józef Kucia f523c642a4 vkd3d: Remove FIXME() from vkd3d_get_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>
2019-03-14 23:53:40 +01:00
Józef Kucia 05666d3385 vkd3d: Add VKD3D_VULKAN_DEVICE 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-03-14 23:53:34 +01:00
Józef Kucia c6477964a3 vkd3d-shader: Translate eval_centroid shader instructions.
Signed-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-03-14 23:53:29 +01:00
Józef Kucia 38f5081496 vkd3d-shader: Translate eval_sample_index shader instructions.
Signed-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-03-14 23:53:27 +01:00
Józef Kucia b0c8561cff vkd3d: Fix feature queries for depth/stencil 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>
2019-03-11 19:17:27 +01:00
Józef Kucia f1bfb1305e vkd3d: Update command list to ID3D12GraphicsCommandList1.
Signed-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-03-07 19:01:14 +01:00
Józef Kucia d0f8443ac5 vkd3d: Do not crash on NULL views in IASetIndexBuffers().
Signed-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-03-07 19:01:12 +01:00
Józef Kucia a844d8f0a8 vkd3d: Validate image views before creating framebuffers.
Signed-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-03-07 19:01:10 +01:00
Józef Kucia fd48757d25 vkd3d: Allow more memory types for custom 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-03-07 19:01:08 +01:00
Józef Kucia 3629787aad 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>
2019-03-07 19:01:06 +01:00
Józef Kucia 19f9745adf vkd3d-shader: Use epilogue functions for fork and join phases.
In order to handle packed outputs properly.

Signed-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-03-06 16:00:39 +01:00
Józef Kucia 74c8ca0f64 vkd3d-shader: Add basic support for vocp registers.
Signed-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-03-06 16:00:37 +01:00
Józef Kucia 7fc98ade64 vkd3d-shader: Use SPIR-V built-ins for hull shader inputs.
I missed this case before because apps don't seem to use SV_Position
for hull shader inputs. vkd3d_siv_from_sysval() needs to be restored
for hull 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>
2019-03-06 16:00:34 +01:00
Józef Kucia 67a160683d vkd3d-shader: Take into account dst write mask for scalar stores.
Signed-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-03-06 16:00:32 +01:00
Józef Kucia f640602ce8 vkd3d: Add feature level 11_1.
Signed-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-03-06 16:00:27 +01:00
Józef Kucia 38e3c5d2d3 vkd3d: Rework Vulkan queues initialisation.
Signed-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-03-06 16:00:25 +01:00
Józef Kucia 085456005c vkd3d: Set Vulkan object names for NULL CBV 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-03-04 19:46:20 +01:00
Józef Kucia 7858eb6a83 vkd3d: Prefer cached memory for readback heaps.
Reading uncached memory is slow.

Signed-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-03-04 19:46:12 +01:00
Józef Kucia 401739a387 vkd3d: Emulate NULL CBV 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>
2019-03-04 19:46:05 +01:00
Józef Kucia 02ca005ada vkd3d: Use vkCmdResolveImage() to resolve typeless resources 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>
2019-02-28 16:37:52 +01:00
Józef Kucia 0ffaf4a2b7 vkd3d-shader: Introduce is_control_point_phase() helper.
Signed-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-02-26 22:08:19 +01:00
Józef Kucia ff132543c1 vkd3d-shader: Index control point phase outputs by InvocationId.
Signed-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-02-26 22:08:16 +01:00
Józef Kucia 0328118947 vkd3d-shader: Handle partial shader output updates in epilogue functions.
Fork and join phases quite often write only a few components of an
output 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-02-26 22:08:14 +01:00
Józef Kucia bc441fd6c6 vkd3d-shader: Add more advanced helper for vector shuffle.
Signed-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-02-26 22:08:10 +01:00
Józef Kucia 6c70edf511 vkd3d-shader: Remove output register symbols while leaving control point phase.
Signed-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-02-26 22:08:08 +01:00
Józef Kucia 02cbc53b96 vkd3d-shader: Get rid of vkd3d_dxbc_compiler_emit_swizzle_ext().
Signed-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-02-25 19:08:05 +01:00
Józef Kucia cb24be8e83 vkd3d-shader: Do not assume float type for arrayed 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>
2019-02-25 19:08:03 +01:00
Józef Kucia 04e2091afa vkd3d-shader: Do not assume vec4 destination in vkd3d_dxbc_compiler_emit_store().
Signed-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-02-25 19:08:01 +01:00
Józef Kucia 95b6d5222d vkd3d-shader: Call vkd3d_dxbc_compiler_leave_shader_phase() also for last phase.
Signed-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-02-25 19:07:59 +01:00
Józef Kucia 38f75846b4 vkd3d-shader: Emit epilogue functions while leaving shader phases.
Signed-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-02-25 19:07:57 +01:00
Józef Kucia 61aeaae0c2 vkd3d-shader: Factor out vkd3d_dxbc_compiler_emit_store().
Signed-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-02-25 19:07:55 +01:00
Józef Kucia 64f7ff3898 vkd3d-shader: Merge ifs in vkd3d_dxbc_compiler_emit_swizzle_ext().
Signed-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-02-25 19:07:52 +01:00
Philip Rebohle c560fdfa26 vkd3d-shader: Decorate integer fragment shader builtins as flat.
From the Vulkan spec, 8.13 "Interpolation Decorations":

    Fragment shader inputs that are signed or unsigned integers,
    integer vectors, or any double-precision floating-point type
    must be decorated with Flat.

This also matches glslang behaviour.

Specifically, this fixes tone-mapping in Unreal Engine 4 on RADV
and AMDGPU-PRO, where gl_Layer is used as a fragment shader input.

Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
Signed-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-02-25 19:07:50 +01:00
Józef Kucia d1e0ac115c vkd3d-shader: Avoid generating unique array types for immediate constant 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>
2019-02-22 12:30:44 +01:00
Józef Kucia a0069d9fb7 vkd3d-shader: Use correct base index for relative addressing of aggregates.
Signed-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-02-22 12:30:39 +01:00
Józef Kucia d300e6f84c vkd3d-shader: Remove v{Fork, Join}InstanceID from symbol table when leaving shader phase.
Signed-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-02-22 12:30:37 +01:00
Józef Kucia 9c46011b43 vkd3d-shader: Simplify vkd3d_dxbc_compiler_get_register_id().
Special casing is not needed.

Signed-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-02-22 12:30:35 +01:00
Józef Kucia 3cbdad5f29 vkd3d-shader: Translate vPrim register.
Signed-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-02-22 12:30:33 +01:00
Józef Kucia 7466758f08 vkd3d-shader: Fix swizzle for scalars.
In rare cases, OpCompositeExtract was generated for scalars.

Signed-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-02-22 12:30:30 +01:00
Józef Kucia 197c1d9612 vkd3d-shader: Handle VKD3DSPR_INCONTROLPOINT in vkd3d_dxbc_compiler_get_register_id().
Signed-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-02-20 19:15:14 +01:00
Józef Kucia b6de566e3a vkd3d-shader: Add basic support for dcl_index_range.
We can address SPIR-V arrays 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>
2019-02-20 19:15:10 +01:00
Józef Kucia d274318fe2 vkd3d-shader: Avoid using SPIR-V built-ins for shader interface between tessellation stages.
We can do this because both tessellation shaders are required in
Direct3D.

Signed-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-02-20 19:15:04 +01:00
Józef Kucia 2ce7b2305a vkd3d: Implement SO statistics 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>
2019-02-20 19:15:03 +01:00
Józef Kucia 7b84adec32 vkd3d-shader: Set xxxx swizzle for scalar registers.
Mainly for vOutputControlPointID.

Signed-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-02-20 19:15:00 +01:00
Józef Kucia 3fbbc68160 vkd3d-shader: Replace VKD3DSIH_TABLE_SIZE with VKD3DSIH_INVALID.
Signed-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-02-20 19:14:58 +01:00
Józef Kucia 70822141b7 vkd3d: Avoid passing invalid viewport to Vulkan.
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>
2019-02-14 16:01:16 +01:00
Józef Kucia c333fddaf9 vkd3d-shader: Add support for OpenGL tessellation shaders.
In DXBC tessellator parameters are specified in hull shaders. In OpenGL,
even in SPIR-V, tessellator parameters must be specified in the
tessellation evaluation 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-02-14 16:01:14 +01:00
Józef Kucia 22330b5414 vkd3d: Avoid using VK_WHOLE_SIZE for uniform buffer descriptors.
It is invalid to use VK_WHOLE_SIZE when a buffer is larger than
maxUniformBufferRange.

Signed-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-02-14 16:01:12 +01:00
Józef Kucia f98866f7d8 vkd3d: Return the same value for MaxGPUVirtualAddressBitsPerResource.
Signed-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-02-14 16:01:09 +01:00
Józef Kucia 552f7b8eeb vkd3d: Ignore barriers with unexpected sub-resource index.
For planar 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>
2019-02-14 16:01:07 +01:00
Józef Kucia a2f38f88e2 vkd3d: Do not advertise tiled resource support.
Tiled resources are not implemented 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>
2019-02-14 16:01:03 +01:00
Józef Kucia 52e44b5533 vkd3d: Trace decoded driver versions.
Signed-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-02-14 16:01:01 +01:00
Józef Kucia b1b3405bcf vkd3d-shader: Implement user patch constants for hull 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>
2019-02-13 17:21:50 +01:00
Józef Kucia 7fde0ac78f vkd3d-shader: Implement relative addressing for arrayed registers.
Signed-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-02-13 17:21:48 +01:00
Józef Kucia d30afc37c4 vkd3d-shader: Implement input registers for control point phase.
Signed-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-02-13 17:21:46 +01:00
Józef Kucia efe68b00bb vkd3d-shader: Add basic support for vpc registers in domain 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>
2019-02-13 17:21:44 +01:00
Józef Kucia 1a5f058f4a vkd3d-shader: Translate vOutputControlPointID register.
Signed-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-02-13 17:21:42 +01:00
Józef Kucia 269bb649d7 vkd3d: Improve heuristic for selecting 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>
2019-02-13 17:21:39 +01:00
Józef Kucia 92185ce594 vkd3d: Fix formatting in is_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>
2019-02-11 18:33:38 +01:00
Józef Kucia 1164de705e vkd3d: Do not enable depth bias unconditionally.
Signed-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-02-11 18:33:36 +01:00
Józef Kucia 09dea5f4d9 vkd3d-shader: Implement default control point phase.
Signed-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-02-11 18:33:31 +01:00
Józef Kucia c9fb9c7a7d vkd3d-shader: Simplify vkd3d_dxbc_compiler_emit_mov().
Signed-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-02-11 18:33:29 +01:00
Józef Kucia bdae9e30b4 vkd3d-shader: Ignore dcl_hs_max_tessfactor.
Signed-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-02-11 18:33:26 +01:00
Józef Kucia 0498fafbb0 vkd3d-shader: Try to use SpvOpCopyMemory for mov instructions.
Signed-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-02-11 18:33:24 +01:00
Józef Kucia a81a7f837e vkd3d-shader: Add initial support for built-in patch constants.
Signed-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-02-08 17:20:39 +01:00
Józef Kucia 4ad4cbb7df vkd3d-shader: Factor out vkd3d_symbol_set_register_info().
Signed-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-02-08 17:20:37 +01:00
Józef Kucia df654aa327 vkd3d-shader: Factor out vkd3d_dxbc_compiler_emit_builtin().
Signed-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-02-08 17:20:35 +01:00
Józef Kucia c314b5b01c vkd3d-shader: Get sysval semantic from shader signature for inputs.
In domain shaders, inputs are declared with dcl_input without semantic.

Signed-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-02-08 17:20:33 +01:00
Józef Kucia ba7807b456 vkd3d-shader: Rename scan instruction function to vkd3d_shader_scan_instruction().
Signed-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-02-08 17:20:17 +01:00
Józef Kucia fd3d661bf0 vkd3d-shader: Unset r# registers state while leaving current shader phase.
Signed-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-02-07 17:01:59 +01:00
Józef Kucia 59d97b07fe vkd3d-shader: Implement hull shader barriers.
Signed-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-02-07 17:01:57 +01:00
Józef Kucia 0397808f81 vkd3d-shader: Add support for instanced join phases.
Signed-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-02-07 17:01:56 +01:00
Józef Kucia 18784e6500 vkd3d-shader: Translate vForkInstanceId registers.
Signed-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-02-07 17:01:53 +01:00
Józef Kucia ea4dd22309 vkd3d-shader: Add support for instanced fork phases.
Signed-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-02-07 17:01:51 +01:00
Józef Kucia e88b73797b vkd3d-shader: Delay generating functions for shader phases.
Mainly in order to wait for dcl_hs_{fork,join}_phase_instance_count.

Signed-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-02-07 17:01:49 +01:00
Józef Kucia 97f0e778af vkd3d-shader: Allocate temporary registers per shader phase.
Signed-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-02-06 15:38:54 +01:00
Józef Kucia b8b09e58fa vkd3d-shader: Do not generate shader epilogue for fork and join shader phases.
Signed-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-02-06 15:38:52 +01:00
Józef Kucia 904ab0ead5 vkd3d-shader: Generate functions for hull shader phases.
Signed-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-02-06 15:38:50 +01:00
Józef Kucia 82d56f4872 vkd3d-shader: Introduce vkd3d_spirv_get_op_type_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>
2019-02-06 15:38:44 +01:00
Józef Kucia ffbe7e7191 vkd3d: Avoid printing FIXME() about error blobs unnecessarily.
Signed-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-02-06 15:38:39 +01:00
Józef Kucia 0641229e0e vkd3d: Set object names for Vulkan command 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>
2019-02-06 15:38:37 +01:00
Józef Kucia 257ac5c3a1 vkd3d: Set object names for Vulkan compute 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>
2019-02-05 19:26:48 +01:00
Józef Kucia 0055aa67f1 vkd3d-common: Fix vkd3d_strdup_{w16, w32}_utf8() 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>
2019-02-05 19:26:46 +01:00
Józef Kucia 6a3c75d0d1 vkd3d: Compile pipelines with tessellation state create info.
Signed-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-02-05 19:26:44 +01:00
Józef Kucia c36688f1a3 vkd3d: Add support for patch list primitive topology.
Signed-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-02-05 19:26:42 +01:00
Józef Kucia 363beefa9b vkd3d-shader: Introduce vkd3d_spirv_build_op_access_chain1().
Signed-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-02-05 19:26:40 +01:00
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 97c3aa0cdc vkd3d-shader: Use VKD3D_SHADER_DEBUG instead of VKD3D_DEBUG.
Signed-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:55 +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 bcd91910e4 vkd3d-shader: Use proper vkd3d_spirv_builtin for PS fragment coordinates.
Signed-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:23 +01:00
Józef Kucia 495d4b9474 vkd3d-shader: Add more general support for SPIR-V aggregates.
Signed-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:21 +01:00
Józef Kucia 2838ee5833 vkd3d-shader: Translate dcl_tessellator_output_primitive instructions.
Signed-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:17 +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 559c0191c8 vkd3d-shader: Implement vCoverage shader register.
Signed-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:03:59 +01:00
Józef Kucia 4f55d990b9 vkd3d-shader: Mark hs_decls as declaration instruction.
Signed-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:03:57 +01:00
Józef Kucia 54d9714fcd vkd3d-shader: Implement oMask shader register.
Signed-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-23 17:43:01 +01:00
Józef Kucia fd0844e420 vkd3d-shader: Avoid using private variables for depth output registers.
Signed-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-23 17:42:58 +01:00
Józef Kucia 35e062b0a4 vkd3d-shader: Fix resinfo for cube 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>
2019-01-23 17:42:54 +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 bb7d1046da vkd3d-shader: Use result type for bitfield instructions source parameters.
Fixes SPIR-V validation errors:

  Expected Base Type to be equal to Result Type: BitFieldSExtract

Signed-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-15 15:26:04 +01:00
Józef Kucia 84759c40fe vkd3d-shader: Use vkd3d_dxbc_compiler_emit_load_src() 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>
2019-01-15 15:26:02 +01:00
Józef Kucia ff7df2cdf9 vkd3d-shader: Use result type for atomic instructions source parameters.
Fixes SPIR-V validation errors:

  AtomicIAdd: expected Value to be of type Result 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>
2019-01-15 15:25:57 +01:00
Józef Kucia da3e283717 vkd3d-shader: Fix SV_VertexID.
Signed-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-15 15:25:51 +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 3d80b3f4bd vkd3d-shader: Add basic support for 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:13 +01:00
Józef Kucia 731e11902a vkd3d-shader: Introduce vkd3d_dxbc_compiler_emit_initial_declarations().
To emit more declarations immediately after creating a new SPIR-V builder.

Signed-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:10 +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 dadf2eda08 vkd3d-shader: Declare OriginUpperLeft execution mode for fragment shaders.
Required by the Vulkan spec:

  "fragment entry points must declare OriginUpperLeft."

Signed-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:31 +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 49e55dd639 vkd3d-shader: Implement DXBC checksum 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>
2018-12-20 19:41:44 +01:00
Józef Kucia 3795add878 vkd3d-shader: Import MD5 implementation from Wine.
With style changes.

Signed-off-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-20 19:41:41 +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 5b0ed414a1 vkd3d-shader: Add support for 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:10 +01:00
Józef Kucia 4e66897a1e vkd3d-shader: Avoid BYTE.
Signed-off-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 a7aaa09eb3 vkd3d-shader: Avoid BOOL.
Signed-off-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 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 2c5a8cda7a vkd3d-shader: Translate sample_info instructions.
Signed-off-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:34 +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 23361bbcb2 vkd3d-shader: Add support for 2D MS arrays.
Signed-off-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:31 +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 8ac9b120fe vkd3d-shader: Avoid SIZE_T.
Signed-off-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:43 +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 bf227d4a28 include: Avoid bitfields in public 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-11-08 19:07:39 +01:00
Józef Kucia 41ca2469b2 include: Add STATIC_ASSERT() macro.
Signed-off-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:37 +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 c2e0bf1244 build: Build libvkd3d-shader as public library.
Signed-off-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-02 11:19:00 +01:00
Józef Kucia 00a0958526 vkd3d-shader: Fix swizzling for scalars.
Signed-off-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-02 11:18:58 +01:00
Józef Kucia 7338ba0337 vkd3d-shader: Try harder to avoid using private variables for inputs.
Signed-off-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-31 19:15:19 +01:00
Józef Kucia 2ace6f204d vkd3d-shader: Use vkd3d_dxbc_compiler_emit_swizzle_ext() in vkd3d_dxbc_compiler_emit_input().
Signed-off-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-31 19:15:17 +01:00
Józef Kucia 11a65da62a vkd3d-shader: Check more accurately if swizzle is required.
Eliminates redundant OpVectorShuffle instructions.

Signed-off-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-31 19:15:15 +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 2f15b30e30 vkd3d-shader: Require shader signature elements for shader inputs.
Signed-off-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:57 +01:00
Józef Kucia 6b9c589795 vkd3d-shader: Implement vkd3d_write_mask_component_count() on top of vkd3d_popcount().
Signed-off-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:55 +01:00
Józef Kucia 78a09d37d2 vkd3d-shader: Add support for stores to scalar variables.
Signed-off-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:54 +01:00
Józef Kucia ebf09feb82 vkd3d-shader: Simplify vkd3d_dxbc_compiler_emit_load_scalar().
Signed-off-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:52 +01:00
Józef Kucia d2e5ced1ac vkd3d-shader: Use typed shader outputs directly.
Signed-off-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:50 +01:00
Józef Kucia 7b58e7cb23 vkd3d-shader: Rename "output setup" function to "shader epilogue".
Signed-off-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:48 +01:00
Józef Kucia 34f61154f7 vkd3d-shader: Avoid uint32_t in public interface.
Signed-off-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:47 +01:00
Józef Kucia 0f0af935a6 vkd3d-shader: Introduce VKD3D_SHADER_VISIBILITY_COMPUTE.
Signed-off-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:45 +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 feeb2b49df vkd3d-shader: Use typed shader inputs directly.
... instead of copying them to a private floating-point 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>
2018-10-29 17:08:40 +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 bec3430d88 vkd3d-shader: Propagate errors from vkd3d_dxbc_compiler_emit_control_flow_instruction().
Signed-off-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:14 +02:00
Józef Kucia b909a5fe04 vkd3d-shader: Add asserts() to vkd3d_dxbc_compiler_emit_control_flow_instruction().
Signed-off-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:13 +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 049d21ad7a vkd3d-shader: Fix typo in vkd3d_dxbc_compiler_have_combined_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-10-24 17:00:45 +02:00
Józef Kucia 94497f31a0 vkd3d-shader: Implement SV_ViewportArrayIndex.
Signed-off-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:29 +02:00
Józef Kucia 2f5b718205 vkd3d-shader: Try to always use combined samplers for t# registers.
For bufinfo and resinfo.

Signed-off-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:27 +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 063f0f057a vkd3d-shader: Scan sampler comparison mode.
Signed-off-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:22 +02:00
Józef Kucia 781c5ed7c9 vkd3d-shader: Merge prepare_image() 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-10-22 10:57:21 +02:00
Józef Kucia f242922587 vkd3d-shader: Generalize helper for emitting descriptor binding decorations.
Signed-off-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:19 +02:00
Józef Kucia 3efa365b5e vkd3d-shader: Remove sampler_id from struct vkd3d_shader_image.
Signed-off-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:15 +02:00
Józef Kucia 299f126f7a vkd3d-shader: Simplify DepthReplacing execution mode handling.
Signed-off-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:43:04 +02:00
Józef Kucia c81e28c03a vkd3d-shader: Implement conservative depth 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>
2018-10-19 21:43:02 +02:00
Józef Kucia dac94fb58e vkd3d-shader: Translate bufinfo instructions.
Signed-off-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:43:00 +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 6639f618af vkd3d-shader: Implement early depth/stencil 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-10-18 19:49:22 +02:00
Józef Kucia 3957242ea7 vkd3d-shader: Translate ld2dms instructions.
Signed-off-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 19:49:20 +02:00
Józef Kucia 123f3ed387 vkd3d-shader: Fix resinfo 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-10-18 19:49:20 +02:00
Józef Kucia 55abf3d6d4 vkd3d-shader: Fix f32tof16 instruction.
Signed-off-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 19:49:20 +02:00
Józef Kucia dc9fdf5d31 vkd3d-shader: Fix f16tof32 instruction.
Signed-off-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 19:49:06 +02:00
Józef Kucia acf8ae9673 vkd3d-shader: Fix bitfield instructions.
Avoid overwriting registers before all results are computed.

Signed-off-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 19:49:03 +02:00
Józef Kucia 170bb60baa vkd3d-shader: Add support for OpenGL atomic 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-10-18 00:59:44 +02:00
Józef Kucia 08183841eb vkd3d-shader: Translate sample_b instructions.
Signed-off-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:43 +02:00
Józef Kucia 907d137a4b vkd3d-shader: Translate sample_d instructions.
Signed-off-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:41 +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 86b4c8c9de vkd3d-shader: Constify vkd3d_dxbc_compiler pointers.
Signed-off-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:38 +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