[gtk+/wip/otte/vulkan: 49/59] x11: Call gdk_display_sync() when creating Vulkan surfaces



commit 44d2d0d9a63724ff849992566b1048e03987dadd
Author: Benjamin Otte <otte redhat com>
Date:   Tue Nov 29 14:47:59 2016 +0100

    x11: Call gdk_display_sync() when creating Vulkan surfaces
    
    The Vulkan driver wants to operate on an X Window that it is sure does
    exist.

 gdk/x11/gdkvulkancontext-x11.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
---
diff --git a/gdk/x11/gdkvulkancontext-x11.c b/gdk/x11/gdkvulkancontext-x11.c
index 71f27e3..0d1038f 100644
--- a/gdk/x11/gdkvulkancontext-x11.c
+++ b/gdk/x11/gdkvulkancontext-x11.c
@@ -39,6 +39,13 @@ gdk_x11_vulkan_context_create_surface (GdkVulkanContext *context,
   GdkWindow *window = gdk_draw_context_get_window (GDK_DRAW_CONTEXT (context));
   GdkDisplay *display = gdk_draw_context_get_display (GDK_DRAW_CONTEXT (context));
 
+  /* This is necessary so that Vulkan sees the Window.
+   * Usually, vkCreateXlibSurfaceKHR() will not cause a problem to happen as
+   * it just creates resources, but futher calls with the resulting surface
+   * do cause issues.
+   */
+  gdk_display_sync (display);
+
   return GDK_VK_CHECK (vkCreateXlibSurfaceKHR, gdk_vulkan_context_get_instance (context),
                                                &(VkXlibSurfaceCreateInfoKHR) {
                                                    VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]