Module: wine Branch: master Commit: 4b269f029324e8b47644cc6234c644edaae3c7e9 URL: https://source.winehq.org/git/wine.git/?a=commit;h=4b269f029324e8b47644cc623...
Author: Józef Kucia jkucia@codeweavers.com Date: Wed Apr 10 11:59:52 2019 +0200
winevulkan: Enable VK_EXT_memory_priority.
Signed-off-by: Józef Kucia jkucia@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/winevulkan/make_vulkan | 1 - dlls/winevulkan/vulkan_thunks.c | 17 +++++++++++++++++ include/wine/vulkan.h | 18 ++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-)
diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index 46294f7..f6a63cb 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -105,7 +105,6 @@ BLACKLISTED_EXTENSIONS = [ "VK_EXT_external_memory_host", "VK_EXT_full_screen_exclusive", "VK_EXT_hdr_metadata", # Needs WSI work. - "VK_EXT_memory_priority", "VK_EXT_pipeline_creation_feedback", "VK_EXT_ycbcr_image_arrays", "VK_GOOGLE_display_timing", diff --git a/dlls/winevulkan/vulkan_thunks.c b/dlls/winevulkan/vulkan_thunks.c index 9919642..b2b0037 100644 --- a/dlls/winevulkan/vulkan_thunks.c +++ b/dlls/winevulkan/vulkan_thunks.c @@ -1894,6 +1894,22 @@ VkResult convert_VkDeviceCreateInfo_struct_chain(const void *pNext, VkDeviceCrea break; }
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT: + { + const VkPhysicalDeviceMemoryPriorityFeaturesEXT *in = (const VkPhysicalDeviceMemoryPriorityFeaturesEXT *)in_header; + VkPhysicalDeviceMemoryPriorityFeaturesEXT *out; + + if (!(out = heap_alloc(sizeof(*out)))) goto out_of_memory; + + out->sType = in->sType; + out->pNext = NULL; + out->memoryPriority = in->memoryPriority; + + out_header->pNext = (VkBaseOutStructure *)out; + out_header = out_header->pNext; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT: { const VkPhysicalDeviceBufferAddressFeaturesEXT *in = (const VkPhysicalDeviceBufferAddressFeaturesEXT *)in_header; @@ -4268,6 +4284,7 @@ static const char * const vk_device_extensions[] = "VK_EXT_host_query_reset", "VK_EXT_inline_uniform_block", "VK_EXT_memory_budget", + "VK_EXT_memory_priority", "VK_EXT_pci_bus_info", "VK_EXT_post_depth_coverage", "VK_EXT_queue_family_foreign", diff --git a/include/wine/vulkan.h b/include/wine/vulkan.h index 5a48441..7a98951 100644 --- a/include/wine/vulkan.h +++ b/include/wine/vulkan.h @@ -300,6 +300,8 @@ #define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string" #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1 #define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget" +#define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1 +#define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority" #define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2 #define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address" #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1 @@ -2101,6 +2103,8 @@ typedef enum VkStructureType VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = 1000221000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000, + VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = 1000244000, VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = 1000244001, VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002, @@ -2966,6 +2970,13 @@ typedef struct VkPhysicalDeviceLimits VkDeviceSize WINE_VK_ALIGN(8) nonCoherentAtomSize; } VkPhysicalDeviceLimits;
+typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT +{ + VkStructureType sType; + void *pNext; + VkBool32 memoryPriority; +} VkPhysicalDeviceMemoryPriorityFeaturesEXT; + typedef struct VkPhysicalDeviceMeshShaderPropertiesNV { VkStructureType sType; @@ -3659,6 +3670,13 @@ typedef struct VkMemoryDedicatedRequirements VkBool32 requiresDedicatedAllocation; } VkMemoryDedicatedRequirements;
+typedef struct VkMemoryPriorityAllocateInfoEXT +{ + VkStructureType sType; + const void *pNext; + float priority; +} VkMemoryPriorityAllocateInfoEXT; + typedef struct VkMemoryType { VkMemoryPropertyFlags propertyFlags;