summaryrefslogtreecommitdiffstats
path: root/src/intel/vulkan
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2016-10-13 05:18:34 +0100
committerDave Airlie <[email protected]>2016-10-19 10:15:42 +1000
commit36e6be2e0d1ae8e6b56fe04bdfafa33db50049ac (patch)
tree50b21c7237e64c1b328b9383d699476d6b8608fb /src/intel/vulkan
parent7c10258567ca98e28b291b679fde8cd60b719579 (diff)
anv/wsi/x11: push anv_device out of the init/finish routines
Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/intel/vulkan')
-rw-r--r--src/intel/vulkan/anv_wsi.c6
-rw-r--r--src/intel/vulkan/anv_wsi.h6
-rw-r--r--src/intel/vulkan/anv_wsi_x11.c22
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);
}
}