vulkan/wsi/x11: report device-group present rectangles with prime.
dEQP-VK.wsi.xlib.surface.query_devgroup_present_modes with prime fail when 0 rectangles are reported. While I believe that test tests this unintentionally (trying to test the VK_INCOMPLETE return), I believe it makes sense to always return a rectangle. In particular we require the data from the given rectangle for presentation even if we use prime and given that prime is completely transparent for the app it still counts as local from the perspective as the application. Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6071>
This commit is contained in:

committed by
Marge Bot

parent
af0bc71015
commit
e1147caecb
@@ -653,25 +653,6 @@ x11_surface_get_present_modes(VkIcdSurfaceBase *surface,
|
||||
VK_INCOMPLETE : VK_SUCCESS;
|
||||
}
|
||||
|
||||
static bool
|
||||
x11_surface_is_local_to_gpu(struct wsi_device *wsi_dev,
|
||||
xcb_connection_t *conn)
|
||||
{
|
||||
struct wsi_x11_connection *wsi_conn =
|
||||
wsi_x11_get_connection(wsi_dev, conn);
|
||||
|
||||
if (!wsi_conn)
|
||||
return false;
|
||||
|
||||
if (!wsi_x11_check_for_dri3(wsi_conn))
|
||||
return false;
|
||||
|
||||
if (!wsi_x11_check_dri3_compatible(wsi_dev, conn))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static VkResult
|
||||
x11_surface_get_present_rectangles(VkIcdSurfaceBase *icd_surface,
|
||||
struct wsi_device *wsi_device,
|
||||
@@ -682,7 +663,6 @@ x11_surface_get_present_rectangles(VkIcdSurfaceBase *icd_surface,
|
||||
xcb_window_t window = x11_surface_get_window(icd_surface);
|
||||
VK_OUTARRAY_MAKE(out, pRects, pRectCount);
|
||||
|
||||
if (x11_surface_is_local_to_gpu(wsi_device, conn)) {
|
||||
vk_outarray_append(&out, rect) {
|
||||
xcb_generic_error_t *err = NULL;
|
||||
xcb_get_geometry_cookie_t geom_cookie = xcb_get_geometry(conn, window);
|
||||
@@ -706,7 +686,6 @@ x11_surface_get_present_rectangles(VkIcdSurfaceBase *icd_surface,
|
||||
}
|
||||
free(geom);
|
||||
}
|
||||
}
|
||||
|
||||
return vk_outarray_status(&out);
|
||||
}
|
||||
|
Reference in New Issue
Block a user