anv/wsi/x11: abstract WSI interface from internals.
authorDave Airlie <airlied@redhat.com>
Thu, 13 Oct 2016 04:25:33 +0000 (05:25 +0100)
committerDave Airlie <airlied@redhat.com>
Wed, 19 Oct 2016 00:15:42 +0000 (10:15 +1000)
This allows the API and the internals to be split, and the
internals shared.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/intel/vulkan/anv_wsi_x11.c

index ccaabea160eb1b419c70b4786863977e3f8151e6..6eb06c31eaaea4df74f888a26ed4cb5b8fb0ef6b 100644 (file)
@@ -233,16 +233,15 @@ visual_has_alpha(xcb_visualtype_t *visual, unsigned depth)
    return (all_mask & ~rgb_mask) != 0;
 }
 
-VkBool32 anv_GetPhysicalDeviceXcbPresentationSupportKHR(
-    VkPhysicalDevice                            physicalDevice,
+static VkBool32 anv_get_physical_device_xcb_presentation_support(
+    struct anv_wsi_device *wsi_device,
+    VkAllocationCallbacks *alloc,
     uint32_t                                    queueFamilyIndex,
     xcb_connection_t*                           connection,
     xcb_visualid_t                              visual_id)
 {
-   ANV_FROM_HANDLE(anv_physical_device, device, physicalDevice);
-
    struct wsi_x11_connection *wsi_conn =
-      wsi_x11_get_connection(&device->wsi_device, &device->instance->alloc, connection);
+      wsi_x11_get_connection(wsi_device, alloc, connection);
 
    if (!wsi_conn->has_dri3) {
       fprintf(stderr, "vulkan: No DRI3 support\n");
@@ -259,16 +258,32 @@ VkBool32 anv_GetPhysicalDeviceXcbPresentationSupportKHR(
    return true;
 }
 
+VkBool32 anv_GetPhysicalDeviceXcbPresentationSupportKHR(
+    VkPhysicalDevice                            physicalDevice,
+    uint32_t                                    queueFamilyIndex,
+    xcb_connection_t*                           connection,
+    xcb_visualid_t                              visual_id)
+{
+   ANV_FROM_HANDLE(anv_physical_device, device, physicalDevice);
+
+   return anv_get_physical_device_xcb_presentation_support(
+      &device->wsi_device,
+      &device->instance->alloc,
+      queueFamilyIndex, connection, visual_id);
+}
+
 VkBool32 anv_GetPhysicalDeviceXlibPresentationSupportKHR(
     VkPhysicalDevice                            physicalDevice,
     uint32_t                                    queueFamilyIndex,
     Display*                                    dpy,
     VisualID                                    visualID)
 {
-   return anv_GetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice,
-                                                         queueFamilyIndex,
-                                                         XGetXCBConnection(dpy),
-                                                         visualID);
+   ANV_FROM_HANDLE(anv_physical_device, device, physicalDevice);
+
+   return anv_get_physical_device_xcb_presentation_support(
+      &device->wsi_device,
+      &device->instance->alloc,
+      queueFamilyIndex, XGetXCBConnection(dpy), visualID);
 }
 
 static xcb_connection_t*