From: Rémi Bernon rbernon@codeweavers.com
--- dlls/winevulkan/vulkan.c | 16 ++++++++-------- dlls/winevulkan/vulkan_private.h | 2 -- include/wine/vulkan_driver.h | 3 +++ 3 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c index c0d341d6d53..e4381fe2708 100644 --- a/dlls/winevulkan/vulkan.c +++ b/dlls/winevulkan/vulkan.c @@ -325,7 +325,7 @@ static VkBool32 debug_report_callback_conversion(VkDebugReportFlagsEXT flags, Vk
static void wine_phys_dev_cleanup(struct wine_phys_dev *phys_dev) { - free(phys_dev->extensions); + free(phys_dev->obj.extensions); }
static VkResult wine_vk_physical_device_init(struct wine_phys_dev *object, VkPhysicalDevice host_physical_device, @@ -392,7 +392,7 @@ static VkResult wine_vk_physical_device_init(struct wine_phys_dev *object, VkPhy
TRACE("Host supported extensions %u, Wine supported extensions %u\n", num_host_properties, num_properties);
- if (!(object->extensions = calloc(num_properties, sizeof(*object->extensions)))) + if (!(object->obj.extensions = calloc(num_properties, sizeof(*object->obj.extensions)))) { ERR("Failed to allocate memory for device extensions!\n"); goto err; @@ -402,11 +402,11 @@ static VkResult wine_vk_physical_device_init(struct wine_phys_dev *object, VkPhy { if (wine_vk_device_extension_supported(host_properties[i].extensionName)) { - object->extensions[j] = host_properties[i]; + object->obj.extensions[j] = host_properties[i]; j++; } } - object->extension_count = num_properties; + object->obj.extension_count = num_properties;
if (zero_bits && have_memory_placed && have_map_memory2) { @@ -1082,15 +1082,15 @@ VkResult wine_vkEnumerateDeviceExtensionProperties(VkPhysicalDevice client_physi
if (!properties) { - *count = phys_dev->extension_count; + *count = phys_dev->obj.extension_count; return VK_SUCCESS; }
- *count = min(*count, phys_dev->extension_count); - memcpy(properties, phys_dev->extensions, *count * sizeof(*properties)); + *count = min(*count, phys_dev->obj.extension_count); + memcpy(properties, phys_dev->obj.extensions, *count * sizeof(*properties));
TRACE("Returning %u extensions.\n", *count); - return *count < phys_dev->extension_count ? VK_INCOMPLETE : VK_SUCCESS; + return *count < phys_dev->obj.extension_count ? VK_INCOMPLETE : VK_SUCCESS; }
VkResult wine_vkEnumerateInstanceExtensionProperties(const char *name, uint32_t *count, diff --git a/dlls/winevulkan/vulkan_private.h b/dlls/winevulkan/vulkan_private.h index 83ca0d72a46..18728fdc9ec 100644 --- a/dlls/winevulkan/vulkan_private.h +++ b/dlls/winevulkan/vulkan_private.h @@ -73,8 +73,6 @@ struct wine_debug_report_callback struct wine_phys_dev { struct vulkan_physical_device obj; - VkExtensionProperties *extensions; - uint32_t extension_count; };
struct wine_debug_report_callback; diff --git a/include/wine/vulkan_driver.h b/include/wine/vulkan_driver.h index c4f8bad5a90..fbe31f28a68 100644 --- a/include/wine/vulkan_driver.h +++ b/include/wine/vulkan_driver.h @@ -93,6 +93,9 @@ struct vulkan_physical_device struct vulkan_instance *instance; bool has_swapchain_maintenance1;
+ VkExtensionProperties *extensions; + uint32_t extension_count; + /* for WOW64 memory mapping with VK_EXT_external_memory_host */ VkPhysicalDeviceMemoryProperties memory_properties; uint32_t external_memory_align;