[gtk+/wip/otte/vulkan: 49/59] x11: Call gdk_display_sync() when creating Vulkan surfaces
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/otte/vulkan: 49/59] x11: Call gdk_display_sync() when creating Vulkan surfaces
- Date: Mon, 5 Dec 2016 12:31:36 +0000 (UTC)
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]