Commit Graph

183 Commits

Author SHA1 Message Date
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
Brendan Shanks de68f33dae winevulkan: Change make_vulkan interpreter to '/usr/bin/env python3'.
Fixes running on macOS and BSDs where Python 3 isn't installed in
/usr/bin.

Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-09 20:30:31 +02:00
Brendan Shanks c5675ec615 winevulkan: Fix vkEnumerateInstanceExtensionProperties() behavior when no Vulkan driver is present.
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-18 21:36:39 +02:00
Liam Middlebrook 72517ff187 winevulkan: Update to VK spec version 1.2.149.
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com>
Signed-off-by: Jeff Bolz <jbolz@nvidia.com>
Signed-off-by: Joshua Ashton <joshua@froggi.es>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-07 15:36:03 +02:00
Liam Middlebrook 18d7bc9859 winevulkan: Harden calibrated_timestamps failure paths.
Addresses some comments that Zhiyi had made on the initial review thread.

Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Andy Ritger <aritger@nvidia.com>
Signed-off-by: Joshua Ashton <joshua@froggi.es>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-03 21:24:16 +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
Joshua Ashton 8bd62231c3 winevulkan: Implement VK_EXT_calibrated_timestamps.
Map performance counter to the appropriate monotonic clock
used by ntdll/unix/sync.c

The performance counter timestamp clock won't be available
under Mac and platforms without clock_gettime.

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-07-24 18:42:19 +02:00
Brendan Shanks 6299969a60 winevulkan: Update Vulkan XML URL to use raw.githubusercontent.com.
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-24 18:39:14 +02:00
Liam Middlebrook a455ff61b4 winevulkan: Update to VK spec version 1.2.148.
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Arthur Huillet <ahuillet@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-20 22:20:19 +02:00
Brendan Shanks 314cd9cdd5 winevulkan: Export VK_KHR_get_surface_capabilities2 functions from vulkan-1.
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-14 09:39:42 +02:00
Georg Lehmann 380b7f2825 winevulkan: Unwrap object for VK_EXT_private_data when needed.
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-07-08 22:13:12 +02:00
Brendan Shanks aec1968788 winevulkan: Don't initialize the Vulkan driver in DllMain().
Fixes an issue where winevulkan would not be registered if no Vulkan
driver was present during prefix creation (such as in a build VM).

Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-30 09:15:37 +02:00
Liam Middlebrook c80b236366 winevulkan: Update to VK spec version 1.2.145.
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Andy Ritger <aritger@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-22 16:43:12 +02:00
Zhiyi Zhang 8007d19c27 winevulkan: Fill Vulkan device LUID property.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-17 20:14:10 +02:00
Zhiyi Zhang 408a5a86ec winevulkan: Thunk vkGetPhysicalDeviceProperties2 and vkGetPhysicalDeviceProperties2KHR.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-17 20:14:07 +02:00
André Hentschel 9b54cb9b8b winevulkan: Change blacklist to a more neutral word.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-17 20:13:49 +02:00
Liam Middlebrook b4310a19e9 winevulkan: Update to VK spec version 1.2.142.
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Andy Ritger <aritger@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-02 12:37:49 +02:00
Philip Rebohle d2f552d150 winevulkan: Update to VK spec version spec 1.2.140.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-05 10:51:40 +02:00
Philip Rebohle 4465ecfe0e winevulkan: Avoid adding duplicate enum aliases.
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR is being
defined multiple times by the current vk.xml.

Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-05 10:51:04 +02:00
Philip Rebohle 727441cc24 winevulkan: Support struct forward-declarations as base types.
Some types are basically forward-declared structs now, such
as ANativeWindow.

Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-05 10:50:36 +02:00
Liam Middlebrook c4e35b9bce winevulkan: Update to VK spec version spec 1.2.139.
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-04-27 19:30:38 +02:00
Liam Middlebrook 594814c00a winevulkan: Update to VK spec version spec 1.2.138.
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-04-20 20:54:21 +02:00
Liam Middlebrook 39191aa906 winevulkan: Handle VkEnumValue aliases to provisional exts.
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-04-20 20:54:21 +02:00
Liam Middlebrook 63ea53decb winevulkan: Respect sortorder extension attribute.
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-04-20 20:54:21 +02:00
Liam Middlebrook 8379a7f87c winevulkan: Don't mark alias functions as required.
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-04-20 20:54:21 +02:00
Brendan Shanks 086c686e81 winevulkan: Enable VK_KHR_get_surface_capabilities2.
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-07 14:26:19 +02:00
Brendan Shanks dfc159d874 winevulkan: Create JSON manifest and registry entry used by official Vulkan loader.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47109
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 15:53:53 +02:00
Liam Middlebrook bdeae71bc1 winevulkan: Generate typedefs for aliased structs.
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: James Jones <jajones@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 19:26:50 +01:00
Liam Middlebrook 7b1622d1ab winevulkan: Update to VK spec version spec 1.2.134.
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Piers Daniell <pdaniell@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-23 12:13:18 +01:00
Liam Middlebrook c32d1ad0cb winevulkan: Generate alias enum values.
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Piers Daniell <pdaniell@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-23 12:11:46 +01:00
Liam Middlebrook a5b633f3f6 winevulkan: Add alias field to VkEnumValue.
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Piers Daniell <pdaniell@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-23 12:11:19 +01:00
Liam Middlebrook da71d390d4 winevulkan: Generate typedefs for aliased enums.
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Piers Daniell <pdaniell@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-23 12:11:16 +01:00
Liam Middlebrook 35a0154eba winevulkan: Fix two spelling errors in make_vulkan.
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Robert Morell <rmorell@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-18 11:10:04 +01:00
Liam Middlebrook 936d28e2c5 winevulkan: Handle bitmask pointers for spec generation.
Fixes a bug where pointer types for the following functions would be marked as long:
    vkGetDeviceGroupPeerMemoryFeatures
    vkGetDeviceGroupSurfacePresentModesKHR
    vkGetPhysicalDeviceSurfacePresentModesKHR

Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: James Jones <jajones@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-06 09:25:47 +01:00
Liam Middlebrook 1fa427f2d0 winevulkan: Update to VK spec version 1.1.130.
Also update a single define reference in wined3d since VK_EXT_device_address
was promoted to KHR and renamed VK_ERROR_INVALID_DEVICE_ADDRESS_EXT to
VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR.

Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Piers Daniell <pdaniell@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-22 10:20:46 +01:00
Liam Middlebrook 9058f5e08b winevulkan: Support functions with basic_c return types.
Needed for VK_KHR_buffer_device_address which uses uint64_t as a return type.

Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Piers Daniell <pdaniell@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-22 09:21:28 +01:00
Francois Gouget 0d6f7d44a2 winevulkan: Fix the spelling of an ERR() message.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-13 09:58:53 +01:00
Francois Gouget 8b86f18511 winevulkan: Fix the spelling of a make_vulkan comment.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-13 09:58:46 +01:00
Liam Middlebrook 0425b6ad64 winevulkan: Update to VK spec version 1.1.126.
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-11 20:01:40 +01:00
Liam Middlebrook 54acff1227 winevulkan: Update to VK spec version 1.1.117.
Adds int16 types needed for spec update.

Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-11 20:01:40 +01:00
Liam Middlebrook 9126cd623e winevulkan: Update to VK spec version 1.1.114.
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-11 20:01:40 +01:00
Liam Middlebrook 7e736b5903 winevulkan: Update to VK spec version 1.1.113.
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-11 20:01:40 +01:00
Liam Middlebrook b575232712 winevulkan: Don't add alias structs to struct-extensions list.
This resolves compilation errors relating to duplicate case values for
alias structures when building against spec version 1.1.106. An example
of one of these errors has been included below:
	vulkan_thunks.c: In function ‘convert_VkDeviceCreateInfo_struct_chain’:
	vulkan_thunks.c:1997:9: error: duplicate case value
	         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
	         ^~~~
	vulkan_thunks.c:1377:9: note: previously used here
	         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
         ^~~~

Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-11 20:01:40 +01:00
Derek Lesho 410f5623e7 winevulkan: Mark members of required structs as required recursively.
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-11 20:01:39 +01:00
Józef Kucia 3b1bf387eb winevulkan: Pull in bitmask dependencies for function parameters.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-08 12:08:31 +02:00
Józef Kucia ad82739dda winevulkan: Enable VK_NV_dedicated_allocation_image_aliasing.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-10 18:53:54 +02:00
Józef Kucia a69ed95020 winevulkan: Enable VK_NV_cooperative_matrix.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-10 18:53:52 +02:00
Józef Kucia af3d82ddbe winevulkan: Enable VK_EXT_ycbcr_image_arrays.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-10 18:53:50 +02:00
Józef Kucia bbfc4f6f0d winevulkan: Enable VK_KHR_shader_float16_int8.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-10 18:53:46 +02:00
Józef Kucia 59b5394eef winevulkan: Enable VK_EXT_external_memory_host.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-10 18:53:42 +02:00