From 44c2de5ba4df4aeb9848722b7f527dc3861c62fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3zef=20Kucia?= Date: Wed, 20 Mar 2019 13:11:36 +0100 Subject: [PATCH] winevulkan: Enable a few extensions promoted to core in Vulkan 1.1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Józef Kucia Signed-off-by: Alexandre Julliard --- dlls/winevulkan/make_vulkan | 43 ++++++++++++++++++--------------- dlls/winevulkan/vulkan_thunks.c | 4 +++ include/wine/vulkan.h | 8 ++++++ 3 files changed, 36 insertions(+), 19 deletions(-) diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index 8b0ed0c13ec..d54cb065717 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_utils", - "VK_EXT_validation_features", - "VK_EXT_validation_flags", - "VK_KHR_display", - "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", + "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", # Needs WSI work. + "VK_KHR_get_surface_capabilities2", + "VK_KHR_surface_protected_capabilities", + + # Device extensions + "VK_AMD_display_native_hdr", "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 ae4bcb20605..e1df2aa72ea 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 0754b03c839..2a86277fe20 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