[PATCH 1/7] winevulkan: Get rid of unnecessary forward declarations.
Józef Kucia
jkucia at codeweavers.com
Sat Mar 24 08:27:59 CDT 2018
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
dlls/winevulkan/vulkan.c | 188 +++++++++++++++++++++++------------------------
1 file changed, 92 insertions(+), 96 deletions(-)
diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c
index 7e800ccd503b..aebd20567adc 100644
--- a/dlls/winevulkan/vulkan.c
+++ b/dlls/winevulkan/vulkan.c
@@ -46,12 +46,101 @@ struct wine_vk_structure_header
};
static void *wine_vk_get_global_proc_addr(const char *name);
-static struct VkPhysicalDevice_T *wine_vk_physical_device_alloc(struct VkInstance_T *instance,
- VkPhysicalDevice phys_dev_host);
-static void wine_vk_physical_device_free(struct VkPhysicalDevice_T *phys_dev);
static const struct vulkan_funcs *vk_funcs = NULL;
+static void wine_vk_physical_device_free(struct VkPhysicalDevice_T *phys_dev)
+{
+ if (!phys_dev)
+ return;
+
+ heap_free(phys_dev->properties);
+ heap_free(phys_dev);
+}
+
+static struct VkPhysicalDevice_T *wine_vk_physical_device_alloc(struct VkInstance_T *instance,
+ VkPhysicalDevice phys_dev)
+{
+ struct VkPhysicalDevice_T *object;
+ uint32_t num_host_properties, num_properties = 0;
+ VkExtensionProperties *host_properties = NULL;
+ VkResult res;
+ unsigned int i, j;
+
+ if (!(object = heap_alloc_zero(sizeof(*object))))
+ return NULL;
+
+ object->base.loader_magic = VULKAN_ICD_MAGIC_VALUE;
+ object->instance = instance;
+ object->phys_dev = phys_dev;
+
+ res = instance->funcs.p_vkEnumerateDeviceExtensionProperties(phys_dev,
+ NULL, &num_host_properties, NULL);
+ if (res != VK_SUCCESS)
+ {
+ ERR("Failed to enumerate device extensions, res=%d\n", res);
+ goto err;
+ }
+
+ host_properties = heap_calloc(num_host_properties, sizeof(*host_properties));
+ if (!host_properties)
+ {
+ ERR("Failed to allocate memory for device properties!\n");
+ goto err;
+ }
+
+ res = instance->funcs.p_vkEnumerateDeviceExtensionProperties(phys_dev,
+ NULL, &num_host_properties, host_properties);
+ if (res != VK_SUCCESS)
+ {
+ ERR("Failed to enumerate device extensions, res=%d\n", res);
+ goto err;
+ }
+
+ /* Count list of extensions for which we have an implementation.
+ * TODO: perform translation for platform specific extensions.
+ */
+ for (i = 0; i < num_host_properties; i++)
+ {
+ if (wine_vk_device_extension_supported(host_properties[i].extensionName))
+ {
+ TRACE("Enabling extension '%s' for physical device %p\n", host_properties[i].extensionName, object);
+ num_properties++;
+ }
+ else
+ {
+ TRACE("Skipping extension '%s', no implementation found in winevulkan.\n", host_properties[i].extensionName);
+ }
+ }
+
+ TRACE("Host supported extensions %u, Wine supported extensions %u\n", num_host_properties, num_properties);
+
+ object->properties = heap_calloc(num_properties, sizeof(*object->properties));
+ if (!object->properties)
+ {
+ ERR("Failed to allocate memory for device properties!\n");
+ goto err;
+ }
+
+ for (i = 0, j = 0; i < num_host_properties; i++)
+ {
+ if (wine_vk_device_extension_supported(host_properties[i].extensionName))
+ {
+ memcpy(&object->properties[j], &host_properties[i], sizeof(*object->properties));
+ j++;
+ }
+ }
+ object->num_properties = num_properties;
+
+ heap_free(host_properties);
+ return object;
+
+err:
+ wine_vk_physical_device_free(object);
+ heap_free(host_properties);
+ return NULL;
+}
+
/* Helper function for release command buffers. */
static void wine_vk_command_buffers_free(struct VkDevice_T *device, VkCommandPool pool,
uint32_t count, const VkCommandBuffer *buffers)
@@ -332,99 +421,6 @@ static void wine_vk_instance_free(struct VkInstance_T *instance)
heap_free(instance);
}
-static struct VkPhysicalDevice_T *wine_vk_physical_device_alloc(struct VkInstance_T *instance,
- VkPhysicalDevice phys_dev)
-{
- struct VkPhysicalDevice_T *object;
- uint32_t num_host_properties, num_properties = 0;
- VkExtensionProperties *host_properties = NULL;
- VkResult res;
- unsigned int i, j;
-
- object = heap_alloc_zero(sizeof(*object));
- if (!object)
- return NULL;
-
- object->base.loader_magic = VULKAN_ICD_MAGIC_VALUE;
- object->instance = instance;
- object->phys_dev = phys_dev;
-
- res = instance->funcs.p_vkEnumerateDeviceExtensionProperties(phys_dev,
- NULL, &num_host_properties, NULL);
- if (res != VK_SUCCESS)
- {
- ERR("Failed to enumerate device extensions, res=%d\n", res);
- goto err;
- }
-
- host_properties = heap_calloc(num_host_properties, sizeof(*host_properties));
- if (!host_properties)
- {
- ERR("Failed to allocate memory for device properties!\n");
- goto err;
- }
-
- res = instance->funcs.p_vkEnumerateDeviceExtensionProperties(phys_dev,
- NULL, &num_host_properties, host_properties);
- if (res != VK_SUCCESS)
- {
- ERR("Failed to enumerate device extensions, res=%d\n", res);
- goto err;
- }
-
- /* Count list of extensions for which we have an implementation.
- * TODO: perform translation for platform specific extensions.
- */
- for (i = 0; i < num_host_properties; i++)
- {
- if (wine_vk_device_extension_supported(host_properties[i].extensionName))
- {
- TRACE("Enabling extension '%s' for physical device %p\n", host_properties[i].extensionName, object);
- num_properties++;
- }
- else
- {
- TRACE("Skipping extension '%s', no implementation found in winevulkan.\n", host_properties[i].extensionName);
- }
- }
-
- TRACE("Host supported extensions %u, Wine supported extensions %u\n", num_host_properties, num_properties);
-
- object->properties = heap_calloc(num_properties, sizeof(*object->properties));
- if (!object->properties)
- {
- ERR("Failed to allocate memory for device properties!\n");
- goto err;
- }
-
- for (i = 0, j = 0; i < num_host_properties; i++)
- {
- if (wine_vk_device_extension_supported(host_properties[i].extensionName))
- {
- memcpy(&object->properties[j], &host_properties[i], sizeof(*object->properties));
- j++;
- }
- }
- object->num_properties = num_properties;
-
- heap_free(host_properties);
- return object;
-
-err:
- wine_vk_physical_device_free(object);
- heap_free(host_properties);
- return NULL;
-}
-
-static void wine_vk_physical_device_free(struct VkPhysicalDevice_T *phys_dev)
-{
- if (!phys_dev)
- return;
-
- heap_free(phys_dev->properties);
- heap_free(phys_dev);
-}
-
VkResult WINAPI wine_vkAcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain,
uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t *image_index)
{
--
2.16.1
More information about the wine-devel
mailing list