Commit Graph

68 Commits

Author SHA1 Message Date
Józef Kucia fcc10f3012 winevulkan: Enable vkGetDeviceProcAddr() quirk for idTech engine.
For DOOM VFR.

Based on a patch by Andrew Eikum.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-10 22:35:37 +02:00
Józef Kucia 3cad90e334 winevulkan: Trace VkApplicationInfo in wine_vkCreateInstance().
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-10 22:35:35 +02:00
Józef Kucia 4907ffdf2a winevulkan: Check if device extensions are supported.
Return VK_ERROR_EXTENSION_NOT_PRESENT for unsupported extensions.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-10 22:35:31 +02:00
Józef Kucia e84999bd7a winevulkan: Check if instance extensions are supported.
Return VK_ERROR_EXTENSION_NOT_PRESENT for unsupported extensions.

Fixes crashes in some Vulkan CTS tests.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-10 22:35:27 +02:00
Józef Kucia b62d4ea6ed winevulkan: Free all command buffers when vkAllocateCommandBuffers() fails.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-30 19:55:24 +02:00
Józef Kucia 079d2ec40d winevulkan: Fix potential memory leaks when a command pool is destroyed.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-30 19:55:24 +02:00
Józef Kucia 6f8d02b0f3 winevulkan: Wrap VkCommandPools.
We need to wrap VkCommandPools to track allocated VkCommandBuffers.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-30 19:55:24 +02:00
Józef Kucia e3de7f7774 winevulkan: Trace properties for created devices.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-28 11:09:02 +02:00
Józef Kucia 6d80924ae4 winevulkan: Properly retrieve queues that were created with non-zero flags.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-20 15:56:05 +02:00
Jacek Caban bea52787d6 winevulkan: Expose driver vkGetInstanceProcAddr via winevulkan exports.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 09:47:48 +02:00
Józef Kucia 1e24f7da55 winevulkan: Correctly allocate memory for VkCommandBuffers (Coverity).
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 09:40:06 +02:00
Józef Kucia a77416c47a winevulkan: Avoid FIXMEs for unsupported Vulkan functions.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-17 17:39:56 +02:00
Józef Kucia 5be428f560 winevulkan: Remove vkEnumerateInstanceVersion() from Vulkan driver functions.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-16 21:28:45 +02:00
Roderick Colenbrander d1d9d5495d winevulkan: Implement vkGetDeviceQueue2.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-16 21:28:45 +02:00
Alex Henrie a8df2c61d8 winevulkan: Correct spelling of "of" in a comment.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-16 21:28:44 +02:00
Józef Kucia b75a117822 winevulkan: Implement vkEnumerateInstanceLayerProperties() in ICD.
Other Vulkan ICDs implement this function.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-13 17:20:43 +02:00
Józef Kucia 036376e6a5 winevulkan: Downgrade ERR() to WARN() in wine_vkEnumerateInstanceExtensionProperties().
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-13 17:20:43 +02:00
Józef Kucia a45b04273f winevulkan: Implement vkEnumerateInstanceVersion().
The current version of Vulkan Loader returns VK_API_VERSION_1_1.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-13 17:20:43 +02:00
Józef Kucia 29467f9da5 winevulkan: Add TRACE() for created devices.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-12 12:57:54 +02:00
Józef Kucia b27b3aeaf6 winevulkan: Implement VK_KHR_device_group_creation.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-12 12:57:54 +02:00
Józef Kucia 0f11534656 winevulkan: Convert VkDeviceGroupDeviceCreateInfo.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-12 12:57:54 +02:00
Józef Kucia fa786955f1 winevulkan: Trace unsupported instance extensions.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-18 16:30:03 +02:00
Józef Kucia f1b88ab1f6 winevulkan: Fix typos.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-09 19:55:54 +02:00
Józef Kucia 9451a42cf7 winevulkan: Get rid of unused "phys_dev" field from VkDevice_T.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-09 19:55:50 +02:00
Józef Kucia 6380d57c69 winevulkan: Support VK_NO_PROTOTYPES in our Vulkan header.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-03 22:00:29 +02:00
Józef Kucia 9bf8478cd1 winevulkan: Limit vkGetDeviceProcAddr() workaround to broken apps.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-29 17:27:29 +02:00
Józef Kucia 12bbfe9b11 winevulkan: Avoid goto in wine_vkCreateInstance().
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-29 17:27:07 +02:00
Józef Kucia 8fd39cc2ce winevulkan: Avoid goto in wine_vkCreateDevice().
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-29 17:27:04 +02:00
Józef Kucia a8c06b639e winevulkan: Avoid goto in wine_vk_instance_load_physical_devices().
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-29 17:27:00 +02:00
Józef Kucia 46bc42e7a7 winevulkan: Simplify wine_vk_init().
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-29 17:26:52 +02:00
Józef Kucia 063f6baaaf winevulkan: Use %#x to trace enums.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-29 17:26:29 +02:00
Józef Kucia 1585b50fea winevulkan: Simplify vkEnumerateDeviceExtensionProperties().
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-29 17:26:23 +02:00
Roderick Colenbrander dea298413e winevulkan: Export symbols for Core Vulkan functions.
Signed-off-by: Roderick Colenbrander <thunderbird2k@gmail.com>
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-28 17:23:32 +02:00
Józef Kucia 8e64c7bd2c winevulkan: Autogenerate thunks for functions overridden by Wine Vulkan driver.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Roderick Colenbrander <thunderbird2k@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-26 11:25:27 +02:00
Józef Kucia 00e50233d7 winevulkan: Get rid of unnecessary forward declarations.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Roderick Colenbrander <thunderbird2k@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-26 11:24:11 +02:00
Józef Kucia c6648a960b winevulkan: Simplify wine_vk_instance_convert_create_info() a bit.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-23 16:23:59 +01:00
Roderick Colenbrander ca2f3bae47 winevulkan: Add tracing to wine_vk_instance_convert_create_info.
Signed-off-by: Roderick Colenbrander <thunderbird2k@gmail.com>
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-23 16:23:55 +01:00
Roderick Colenbrander 0d8b9ad2f1 winevulkan: Add helper function for VkDeviceCreateInfo conversion.
Signed-off-by: Roderick Colenbrander <thunderbird2k@gmail.com>
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-23 16:23:51 +01:00
Józef Kucia bf9ed46930 winevulkan: Remove excess quotation marks.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-22 08:52:04 +01:00
Józef Kucia 2f51d691f4 winevulkan: Remove unnecessary cast from wine_vk_device_alloc_queues().
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-16 16:40:56 +01:00
Józef Kucia 6d475f150d winevulkan: Fix vkEnumerateInstanceExtensionProperties().
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-16 16:40:53 +01:00
Francois Gouget f98d0764d5 winevulkan: Fix some typos in comments.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-16 16:40:29 +01:00
Józef Kucia 32eef26a7d winevulkan: Simplify wine_vkEnumeratePhysicalDevices().
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-15 12:21:37 +01:00
Roderick Colenbrander 76275505e0 winevulkan: Allow vkGetDeviceProcAddr to load instance functions for broken games.
Doom and Wolfenstein II use vkGetDeviceProcAddr to load all their function pointers,
while they are supposed to use vkGetInstanceProcAddr for the instance ones.
For now we need to allow this broken behavior.

Signed-off-by: Roderick Colenbrander <thunderbird2k@gmail.com>
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-15 12:21:35 +01:00
Roderick Colenbrander 8ef70305f9 winevulkan: Filter graphics driver reported instance extensions.
Signed-off-by: Roderick Colenbrander <thunderbird2k@gmail.com>
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-15 12:20:44 +01:00
Roderick Colenbrander fc0af22d9a winevulkan: Implement vkQueuePresentInfoKHR.
Signed-off-by: Roderick Colenbrander <thunderbird2k@gmail.com>
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-15 12:20:33 +01:00
Roderick Colenbrander 6536dec397 winevulkan: Implement vkQueueSubmit.
Signed-off-by: Roderick Colenbrander <thunderbird2k@gmail.com>
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-15 12:20:30 +01:00
Roderick Colenbrander 42b01b0133 winevulkan: Implement vkCmdExecuteCommands.
Signed-off-by: Roderick Colenbrander <thunderbird2k@gmail.com>
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-14 16:40:46 +01:00
Roderick Colenbrander 9b22b6aa96 winevulkan: Implement vkAllocate/FreeCommandBuffers.
Signed-off-by: Roderick Colenbrander <thunderbird2k@gmail.com>
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-14 16:40:44 +01:00
Roderick Colenbrander 9721ec92b9 winevulkan: Implement vkGetDeviceQueue.
Signed-off-by: Roderick Colenbrander <thunderbird2k@gmail.com>
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-14 16:40:41 +01:00