mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-28 14:31:10 +00:00
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.
This commit is contained in:
parent
e22cb94e50
commit
e11a6a0e68
@ -39,6 +39,13 @@ gdk_x11_vulkan_context_create_surface (GdkVulkanContext *context,
|
|||||||
GdkWindow *window = gdk_draw_context_get_window (GDK_DRAW_CONTEXT (context));
|
GdkWindow *window = gdk_draw_context_get_window (GDK_DRAW_CONTEXT (context));
|
||||||
GdkDisplay *display = gdk_draw_context_get_display (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),
|
return GDK_VK_CHECK (vkCreateXlibSurfaceKHR, gdk_vulkan_context_get_instance (context),
|
||||||
&(VkXlibSurfaceCreateInfoKHR) {
|
&(VkXlibSurfaceCreateInfoKHR) {
|
||||||
VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR,
|
VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR,
|
||||||
|
Loading…
Reference in New Issue
Block a user