[Mesa-dev] [PATCH 06/22] anv/wsi/x11: push anv_device out of the init/finish routines

Jason Ekstrand jason at jlekstrand.net
Tue Oct 18 19:32:33 UTC 2016


Feel free to shove an alloc in wsi_device.  Might make some of this a bit
simpler.  I guess we usually shove one in wsi_implementation so it's not a
big deal.

On Sun, Oct 16, 2016 at 9:24 PM, Dave Airlie <airlied at gmail.com> wrote:

> From: Dave Airlie <airlied at redhat.com>
>
> ---
>  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 56ed3ec..767fa79 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 2bb8ee3..e1c8d02 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 595c922..ccaabea 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.5.5
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20161018/3656182a/attachment.html>


More information about the mesa-dev mailing list