[PATCH 4/7] winevulkan: Enable a few extensions promoted to core in Vulkan 1.1.

Józef Kucia jkucia at codeweavers.com
Wed Mar 20 07:11:36 CDT 2019


Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
 dlls/winevulkan/make_vulkan     | 37 +++++++++++++++++++--------------
 dlls/winevulkan/vulkan_thunks.c |  4 ++++
 include/wine/vulkan.h           |  8 +++++++
 3 files changed, 33 insertions(+), 16 deletions(-)

diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan
index 8b0ed0c13ecb..d54cb0657171 100755
--- a/dlls/winevulkan/make_vulkan
+++ b/dlls/winevulkan/make_vulkan
@@ -85,45 +85,50 @@ EXT_BLOCK_SIZE = 1000
 
 BLACKLISTED_EXTENSIONS = [
     # Instance extensions
+    "VK_EXT_debug_report",
+    # Handling of VK_EXT_debug_report requires some consideration. The win32
+    # loader already provides it for us and it is somewhat usable. If we add
+    # plumbing down to the native layer, we will get each message twice as we
+    # use 2 loaders (win32+native), but we may get output from the driver.
+    # In any case callback conversion is required.
     "VK_EXT_debug_utils",
     "VK_EXT_validation_features",
     "VK_EXT_validation_flags",
-    "VK_KHR_display",
+    "VK_KHR_display", # Needs WSI work.
     "VK_KHR_get_surface_capabilities2",
     "VK_KHR_surface_protected_capabilities",
-    "VK_NV_external_memory_capabilities",
 
     # Device extensions
     "VK_AMD_display_native_hdr",
-    "VK_AMD_memory_overallocation_behavior",
-    # Handling of VK_EXT_debug_report requires some consideration. The win32
-    # loader already provides it for us and it is somewhat usable. If we add
-    # plumbing down to the native layer, we will get each message twice as we
-    # use 2 loaders (win32+native), but we may get output from the driver.
-    # In any case callback conversion is required.
     "VK_EXT_calibrated_timestamps",
-    "VK_EXT_debug_report",
+    "VK_AMD_memory_overallocation_behavior",
     "VK_EXT_display_control", # Requires VK_EXT_display_surface_counter
-    "VK_EXT_external_memory_dma_buf", # Linux specific
+    "VK_EXT_external_memory_host",
     "VK_EXT_full_screen_exclusive",
     "VK_EXT_hdr_metadata", # Needs WSI work.
-    "VK_EXT_image_drm_format_modifier",
     "VK_EXT_memory_priority",
     "VK_EXT_pipeline_creation_feedback",
     "VK_EXT_ycbcr_image_arrays",
     "VK_GOOGLE_display_timing",
-    "VK_KHR_display", # Needs WSI work.
-    "VK_KHR_external_fence",
-    "VK_KHR_external_fence_fd",
     "VK_KHR_external_fence_win32",
-    "VK_KHR_external_memory",
-    "VK_KHR_external_semaphore",
+    "VK_KHR_external_memory_win32",
+    "VK_KHR_external_semaphore_win32",
     "VK_KHR_shader_float16_int8",
     # Relates to external_semaphore and needs type conversions in bitflags.
     "VK_KHR_shared_presentable_image", # Needs WSI work.
     "VK_KHR_win32_keyed_mutex",
     "VK_NV_cooperative_matrix",
     "VK_NV_dedicated_allocation_image_aliasing",
+
+    # Extensions for other platforms
+    "VK_EXT_external_memory_dma_buf",
+    "VK_EXT_image_drm_format_modifier",
+    "VK_KHR_external_fence_fd",
+    "VK_KHR_external_memory_fd",
+    "VK_KHR_external_semaphore_fd",
+
+    # Deprecated extensions
+    "VK_NV_external_memory_capabilities",
     "VK_NV_external_memory_win32",
 ]
 
diff --git a/dlls/winevulkan/vulkan_thunks.c b/dlls/winevulkan/vulkan_thunks.c
index ae4bcb206059..e1df2aa72eae 100644
--- a/dlls/winevulkan/vulkan_thunks.c
+++ b/dlls/winevulkan/vulkan_thunks.c
@@ -3637,6 +3637,7 @@ static const char * const vk_device_extensions[] =
     "VK_EXT_memory_budget",
     "VK_EXT_pci_bus_info",
     "VK_EXT_post_depth_coverage",
+    "VK_EXT_queue_family_foreign",
     "VK_EXT_sample_locations",
     "VK_EXT_sampler_filter_minmax",
     "VK_EXT_scalar_block_layout",
@@ -3662,6 +3663,9 @@ static const char * const vk_device_extensions[] =
     "VK_KHR_device_group",
     "VK_KHR_draw_indirect_count",
     "VK_KHR_driver_properties",
+    "VK_KHR_external_fence",
+    "VK_KHR_external_memory",
+    "VK_KHR_external_semaphore",
     "VK_KHR_get_memory_requirements2",
     "VK_KHR_image_format_list",
     "VK_KHR_incremental_present",
diff --git a/include/wine/vulkan.h b/include/wine/vulkan.h
index 0754b03c8395..2a86277fe204 100644
--- a/include/wine/vulkan.h
+++ b/include/wine/vulkan.h
@@ -148,8 +148,12 @@
 #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
+#define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
+#define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
+#define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
+#define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
 #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
 #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
 #define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 1
@@ -182,10 +186,14 @@
 #define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
+#define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
+#define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
 #define VK_KHR_MAINTENANCE2_SPEC_VERSION 1
 #define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2"
 #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
 #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
+#define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
+#define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
 #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
 #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
 #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1
-- 
2.19.2




More information about the wine-devel mailing list