From: Józef Kucia Subject: Re: [PATCH 08/10] winevulkan/winex11: Implement vkCreateInstance. Message-Id: Date: Wed, 21 Feb 2018 10:59:40 +0100 In-Reply-To: <20180220062947.4192-9-thunderbird2k@gmail.com> References: <20180220062947.4192-1-thunderbird2k@gmail.com> <20180220062947.4192-9-thunderbird2k@gmail.com> On Tue, Feb 20, 2018 at 7:29 AM, Roderick Colenbrander wrote: > + /* Set special header for ICD loader. */ > + ((struct wine_vk_base*)object)->loader_magic = VULKAN_ICD_MAGIC_VALUE; Missing space before pointer "*". > + > + return object; > +} > + > static void *wine_vk_get_global_proc_addr(const char *name) > { > int i; > @@ -88,11 +103,55 @@ static BOOL wine_vk_init(HINSTANCE hinst) > return TRUE; > } > > +/* Helper function used for freeing an instance structure. This function supports full > + * and partial object cleanups and can thus be used for vkCreateInstance failures. > + */ > +static void wine_vk_instance_free(struct VkInstance_T *instance) > +{ > + if (!instance) > + return; > + > + if (instance->instance) > + vk_funcs->p_vkDestroyInstance(instance->instance, NULL /* pAllocator */); > + > + heap_free(instance); > +} > + > static VkResult WINAPI wine_vkCreateInstance(const VkInstanceCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, > VkInstance *pInstance) > { > - TRACE("%p %p %p\n", pCreateInfo, pAllocator, pInstance); > - return vk_funcs->p_vkCreateInstance(pCreateInfo, pAllocator, pInstance); > + VkInstance instance = NULL; > + VkResult res; > + > + TRACE("pCreateInfo %p, pAllocater %p, pInstance %p\n", pCreateInfo, pAllocator, pInstance); Typo: "pAllocater". > static VkResult X11DRV_vkCreateInstance(const VkInstanceCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, > VkInstance *pInstance) > { > - FIXME("stub: %p %p %p\n", pCreateInfo, pAllocator, pInstance); > - return VK_ERROR_INCOMPATIBLE_DRIVER; > + TRACE("pCreateInfo %p, pAllocater %p, pInstance %p\n", pCreateInfo, pAllocator, pInstance); Typo: "pAllocater".