From 36e6be2e0d1ae8e6b56fe04bdfafa33db50049ac Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Thu, 13 Oct 2016 05:18:34 +0100 Subject: [PATCH] anv/wsi/x11: push anv_device out of the init/finish routines Reviewed-by: Jason Ekstrand --- src/intel/vulkan/anv_wsi.c | 6 +++--- src/intel/vulkan/anv_wsi.h | 6 ++++-- src/intel/vulkan/anv_wsi_x11.c | 22 ++++++++++++---------- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/intel/vulkan/anv_wsi.c b/src/intel/vulkan/anv_wsi.c index 56ed3ec7029..767fa79f7af 100644 --- a/src/intel/vulkan/anv_wsi.c +++ b/src/intel/vulkan/anv_wsi.c @@ -31,7 +31,7 @@ anv_init_wsi(struct anv_physical_device *physical_device) memset(physical_device->wsi_device.wsi, 0, sizeof(physical_device->wsi_device.wsi)); #ifdef VK_USE_PLATFORM_XCB_KHR - result = anv_x11_init_wsi(physical_device); + result = anv_x11_init_wsi(&physical_device->wsi_device, &physical_device->instance->alloc); if (result != VK_SUCCESS) return result; #endif @@ -40,7 +40,7 @@ anv_init_wsi(struct anv_physical_device *physical_device) result = anv_wl_init_wsi(physical_device); if (result != VK_SUCCESS) { #ifdef VK_USE_PLATFORM_XCB_KHR - anv_x11_finish_wsi(physical_device); + anv_x11_finish_wsi(&physical_device->wsi_device, &physical_device->instance->alloc); #endif return result; } @@ -56,7 +56,7 @@ anv_finish_wsi(struct anv_physical_device *physical_device) anv_wl_finish_wsi(physical_device); #endif #ifdef VK_USE_PLATFORM_XCB_KHR - anv_x11_finish_wsi(physical_device); + anv_x11_finish_wsi(&physical_device->wsi_device, &physical_device->instance->alloc); #endif } diff --git a/src/intel/vulkan/anv_wsi.h b/src/intel/vulkan/anv_wsi.h index 2bb8ee3be7f..e1c8d021ad6 100644 --- a/src/intel/vulkan/anv_wsi.h +++ b/src/intel/vulkan/anv_wsi.h @@ -70,8 +70,10 @@ struct anv_swapchain { ANV_DEFINE_NONDISP_HANDLE_CASTS(_VkIcdSurfaceBase, VkSurfaceKHR) ANV_DEFINE_NONDISP_HANDLE_CASTS(anv_swapchain, VkSwapchainKHR) -VkResult anv_x11_init_wsi(struct anv_physical_device *physical_device); -void anv_x11_finish_wsi(struct anv_physical_device *physical_device); +VkResult anv_x11_init_wsi(struct anv_wsi_device *wsi_device, + const VkAllocationCallbacks *alloc); +void anv_x11_finish_wsi(struct anv_wsi_device *wsi_device, + const VkAllocationCallbacks *alloc); VkResult anv_wl_init_wsi(struct anv_physical_device *physical_device); void anv_wl_finish_wsi(struct anv_physical_device *physical_device); diff --git a/src/intel/vulkan/anv_wsi_x11.c b/src/intel/vulkan/anv_wsi_x11.c index 595c9222d89..ccaabea160e 100644 --- a/src/intel/vulkan/anv_wsi_x11.c +++ b/src/intel/vulkan/anv_wsi_x11.c @@ -897,12 +897,13 @@ fail_register: } VkResult -anv_x11_init_wsi(struct anv_physical_device *device) +anv_x11_init_wsi(struct anv_wsi_device *wsi_device, + const VkAllocationCallbacks *alloc) { struct wsi_x11 *wsi; VkResult result; - wsi = vk_alloc(&device->instance->alloc, sizeof(*wsi), 8, + wsi = vk_alloc(alloc, sizeof(*wsi), 8, VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE); if (!wsi) { result = vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); @@ -934,33 +935,34 @@ anv_x11_init_wsi(struct anv_physical_device *device) wsi->base.get_present_modes = x11_surface_get_present_modes; wsi->base.create_swapchain = x11_surface_create_swapchain; - device->wsi_device.wsi[VK_ICD_WSI_PLATFORM_XCB] = &wsi->base; - device->wsi_device.wsi[VK_ICD_WSI_PLATFORM_XLIB] = &wsi->base; + wsi_device->wsi[VK_ICD_WSI_PLATFORM_XCB] = &wsi->base; + wsi_device->wsi[VK_ICD_WSI_PLATFORM_XLIB] = &wsi->base; return VK_SUCCESS; fail_mutex: pthread_mutex_destroy(&wsi->mutex); fail_alloc: - vk_free(&device->instance->alloc, wsi); + vk_free(alloc, wsi); fail: - device->wsi_device.wsi[VK_ICD_WSI_PLATFORM_XCB] = NULL; - device->wsi_device.wsi[VK_ICD_WSI_PLATFORM_XLIB] = NULL; + wsi_device->wsi[VK_ICD_WSI_PLATFORM_XCB] = NULL; + wsi_device->wsi[VK_ICD_WSI_PLATFORM_XLIB] = NULL; return result; } void -anv_x11_finish_wsi(struct anv_physical_device *device) +anv_x11_finish_wsi(struct anv_wsi_device *wsi_device, + const VkAllocationCallbacks *alloc) { struct wsi_x11 *wsi = - (struct wsi_x11 *)device->wsi_device.wsi[VK_ICD_WSI_PLATFORM_XCB]; + (struct wsi_x11 *)wsi_device->wsi[VK_ICD_WSI_PLATFORM_XCB]; if (wsi) { _mesa_hash_table_destroy(wsi->connections, NULL); pthread_mutex_destroy(&wsi->mutex); - vk_free(&device->instance->alloc, wsi); + vk_free(alloc, wsi); } } -- 2.30.2