vkr: minor cleanup to vkCreateInstance dispatch

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
diff --git a/src/vkr_renderer.c b/src/vkr_renderer.c
index 6a7bd2c..a064dfe 100644
--- a/src/vkr_renderer.c
+++ b/src/vkr_renderer.c
@@ -687,18 +687,10 @@
       return;
    }
 
-   struct vkr_instance *instance = calloc(1, sizeof(*instance));
-   if (!instance) {
-      args->ret = VK_ERROR_OUT_OF_HOST_MEMORY;
-      return;
-   }
-
    uint32_t instance_version;
    args->ret = vkEnumerateInstanceVersion(&instance_version);
-   if (args->ret != VK_SUCCESS) {
-      free(instance);
+   if (args->ret != VK_SUCCESS)
       return;
-   }
 
    /* require Vulkan 1.1 */
    if (instance_version < VK_API_VERSION_1_1) {
@@ -706,16 +698,25 @@
       return;
    }
 
+   VkInstanceCreateInfo *create_info = (VkInstanceCreateInfo *)args->pCreateInfo;
+
+   /* patch apiVersion */
    VkApplicationInfo app_info = {
       .sType = VK_STRUCTURE_TYPE_APPLICATION_INFO,
       .apiVersion = VK_API_VERSION_1_1,
    };
-   if (args->pCreateInfo->pApplicationInfo) {
-      app_info = *args->pCreateInfo->pApplicationInfo;
+   if (create_info->pApplicationInfo) {
+      app_info = *create_info->pApplicationInfo;
       if (app_info.apiVersion < VK_API_VERSION_1_1)
          app_info.apiVersion = VK_API_VERSION_1_1;
    }
-   ((VkInstanceCreateInfo *)args->pCreateInfo)->pApplicationInfo = &app_info;
+   create_info->pApplicationInfo = &app_info;
+
+   struct vkr_instance *instance = calloc(1, sizeof(*instance));
+   if (!instance) {
+      args->ret = VK_ERROR_OUT_OF_HOST_MEMORY;
+      return;
+   }
 
    instance->base.type = VK_OBJECT_TYPE_INSTANCE;
    instance->base.id =
@@ -723,7 +724,7 @@
    instance->api_version = app_info.apiVersion;
 
    vn_replace_vkCreateInstance_args_handle(args);
-   args->ret = vkCreateInstance(args->pCreateInfo, NULL, &instance->base.handle.instance);
+   args->ret = vkCreateInstance(create_info, NULL, &instance->base.handle.instance);
    if (args->ret != VK_SUCCESS) {
       free(instance);
       return;