Commit Graph

40 Commits

Author SHA1 Message Date
Jacek Caban a34e8c2bc3 winevulkan: Use __wine_unix_call interface for Unix lib initialization.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-09 10:43:39 +01:00
Georg Lehmann fc8dcb53c2 winevulkan: Return NULL for unavailable device functions.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51360
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-20 20:52:41 +02:00
Georg Lehmann 11cfbe5c89 winevulkan: Return NULL for unavailable instance functions.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49542
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-20 20:52:23 +02:00
Jacek Caban 007a4bc9b0 winevulkan: Don't use wine_ prefix on PE side.
There is no ABI ambiguity, so we may just use public names.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-29 23:37:45 +02:00
Jacek Caban bd5408493a winevulkan: Don't use vulkan_private.h in loader.c.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-19 20:08:48 +02:00
Jacek Caban 171fe51b79 winevulkan: Don't use vulkan_private.h in loader_thunks.c.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-19 20:08:48 +02:00
Jacek Caban 187e4d7e2f winevulkan: Don't use heap.h.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-16 22:39:46 +02:00
Jacek Caban 9e34b8b0d6 winevulkan: Implement Vulkan entry points as wrappers around unix_funcs.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-16 22:39:46 +02:00
Jacek Caban c7eeeb0191 winevulkan: Introduce unix_funcs struct.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-16 22:39:46 +02:00
Georg Lehmann 62cb6ace2c winevulkan: Fix queue creation with mixed queue flags.
The Vulkan spec says:
The queueFamilyIndex member of each element of pQueueCreateInfos must be unique
within pQueueCreateInfos, except that two members can share the same
queueFamilyIndex if one is a protected-capable queue and one is not a
protected-capable queue.

Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-14 20:52:00 +02:00
Jacek Caban cc3c23c312 winevulkan: Move wine_vk_init to loader.c.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-14 20:51:46 +02:00
Jacek Caban 504213c9a7 winevulkan: Use pthread_rwlock_t in VkInstance_T.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-13 17:34:11 +02:00
Georg Lehmann 88da78ef42 winevulkan: Generate a separate physical device dispatch table.
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Signed-off-by: Joshua Ashton <joshua@froggi.es>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-29 22:44:35 +02:00
Georg Lehmann c1824d578a winevulkan: Fix surface functions if they aren't called by winevulkan.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50549
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-26 21:58:13 +01:00
Georg Lehmann d9c9b5ea61 winevulkan: Wrap VkSurfaceKHR in winevulkan.
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-22 21:39:23 +01:00
Georg Lehmann 28d75542b7 winevulkan: Implement VK_EXT_debug_report.
Messages from the driver/layers won't be reported twice.
Messages during instance creation by the host loader won't be reported,
since the information is partly wrong and the windows loader reports the
correct information.
Other messages by the loader will be reported twice if lunarg's vulkan-1.dll
is used. This shouldn't be a problem because the messages are just used
for logging/debugging.

Needed for Quake2RTX.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49813
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-29 11:04:12 +01:00
Georg Lehmann bff6bc6a79 winevulkan: Implement VK_EXT_debug_utils.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49813
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-14 11:02:11 +02:00
Georg Lehmann af3d292343 winevulkan: Store a mapping from native handles to wrappers.
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-14 11:01:51 +02:00
Georg Lehmann e2518f6887 winevulkan: Generate helpers for wrapped handles.
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-14 11:01:49 +02:00
Liam Middlebrook e447e86ae2 winevulkan: Fail on explicit layer usage.
Fixes failure in dEQP-VK.api.device_init.create_instance_layer_name_abuse which
expects all layers passed in as part of test to cause instance creation to
fail.

A quirk bit WINEVULKAN_QUIRK_IGNORE_EXPLICIT_LAYERS has been added to
optionally restore the previous functionality.

Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Daniel Koch <dkoch@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-09 21:00:30 +02:00
Georg Lehmann 1e074c39f6 winevulkan: Avoid returning 0 for swapchain maxImageCount.
Many Windows games do not expect that maxImageCount can be set to 0.
A value of 0 means that there is no limit on the number of images.
Nvidia reports 8 on Windows, AMD 16.

Based on a patch by Józef Kucia.

Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Signed-off-by: Joshua Ashton <joshua@froggi.es>
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-01 11:32:53 +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
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
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
Michael Stefaniuc 962b31c80b include: Add a generic available ARRAY_SIZE().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-04 10:39:15 +02:00
Józef Kucia cf5f750ed8 winevulkan: Pack structures better.
Makes structures slightly smaller on 64-bit.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-09 19:55:52 +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 fc1b15f9b0 winevulkan: Move some autogenerated code to vulkan_private.h.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-29 17:26:44 +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 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
Roderick Colenbrander a7159e7c6a winevulkan: Implement device extension enumeration.
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:37 +01:00
Roderick Colenbrander 6eacdf38e2 winevulkan: Implement vkCreateDevice.
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-09 13:15:16 -06:00
Roderick Colenbrander a553e88fba winevulkan: Implement vkEnumeratePhysicalDevices.
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-06 15:46:09 -06:00
Roderick Colenbrander 4ab041c370 winevulkan: Load instance 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-02 16:19:45 +01:00
Roderick Colenbrander 586a18995f winevulkan: Add instance funcs stubs.
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-01 19:25:57 +01:00
Roderick Colenbrander 75b68a8585 winevulkan/winex11: Implement vkCreateInstance.
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-01 19:25:57 +01:00