From 337caee91078e3d83ff01b929a44a74600cde6a7 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Mon, 28 Sep 2015 20:17:00 -0700 Subject: [PATCH] anv/wsi_x11: Properly report BadDrawable errors to the client --- src/vulkan/anv_wsi_x11.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/vulkan/anv_wsi_x11.c b/src/vulkan/anv_wsi_x11.c index f481a017001..e5d0a2572aa 100644 --- a/src/vulkan/anv_wsi_x11.c +++ b/src/vulkan/anv_wsi_x11.c @@ -73,8 +73,18 @@ x11_get_surface_info(struct anv_wsi_implementation *impl, xcb_window_t win = (xcb_window_t)(uintptr_t)vk_window->pPlatformWindow; xcb_get_geometry_cookie_t cookie = xcb_get_geometry(conn, win); + xcb_generic_error_t *err; xcb_get_geometry_reply_t *geom = xcb_get_geometry_reply(conn, cookie, - NULL); + &err); + if (!geom) { + if (err->error_code == XCB_DRAWABLE) { + return vk_error(VK_ERROR_INVALID_HANDLE); + } else { + return vk_error(VK_ERROR_UNKNOWN); + } + free(err); + } + VkExtent2D extent = { geom->width, geom->height }; free(geom); -- 2.30.2