=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: winevulkan: Enable VK_EXT_memory_priority.

Alexandre Julliard julliard at winehq.org
Wed Apr 10 15:19:59 CDT 2019


Module: wine
Branch: master
Commit: 4b269f029324e8b47644cc6234c644edaae3c7e9
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=4b269f029324e8b47644cc6234c644edaae3c7e9

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Wed Apr 10 11:59:52 2019 +0200

winevulkan: Enable VK_EXT_memory_priority.

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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;




More information about the wine-cvs mailing list