mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-21 18:40:42 +01:00
Revert "wsi/x11: Avoid using xcb_wait_for_special_event in FIFO modes"
This reverts commit 44a20baeb8.
Signed-off-by: Renato Pereyra <renatopereyra@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16954>
This commit is contained in:
parent
ee587f202e
commit
2ef6b0aab1
1 changed files with 8 additions and 26 deletions
|
|
@ -1510,9 +1510,6 @@ x11_manage_fifo_queues(void *state)
|
|||
goto fail;
|
||||
|
||||
if (chain->has_acquire_queue) {
|
||||
xcb_generic_event_t *event = NULL;
|
||||
xcb_connection_t *conn = chain->conn;
|
||||
|
||||
/* Assume this isn't a swapchain where we force 5 images, because those
|
||||
* don't end up with an acquire queue at the moment.
|
||||
*/
|
||||
|
|
@ -1544,34 +1541,19 @@ x11_manage_fifo_queues(void *state)
|
|||
* VUID-vkAcquireNextImageKHR-swapchain-01802 */
|
||||
x11_driver_owned_images(chain) < forward_progress_guaranteed_acquired_images) {
|
||||
|
||||
event = xcb_poll_for_special_event(conn, chain->special_event);
|
||||
if (event) {
|
||||
result = x11_handle_dri3_present_event(chain, (void *)event);
|
||||
/* Ensure that VK_SUBOPTIMAL_KHR is reported to the application */
|
||||
result = x11_swapchain_result(chain, result);
|
||||
free(event);
|
||||
if (result < 0)
|
||||
goto fail;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if (chain->status < 0 || xcb_connection_has_error(conn)) {
|
||||
xcb_generic_event_t *event =
|
||||
xcb_wait_for_special_event(chain->conn, chain->special_event);
|
||||
if (!event) {
|
||||
result = VK_ERROR_SURFACE_LOST_KHR;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/* poke the window to see if it got destroyed from under us, and
|
||||
* to flush any pending special events out of the server
|
||||
*/
|
||||
xcb_get_geometry_reply_t *geometry =
|
||||
xcb_get_geometry_reply(conn,
|
||||
xcb_get_geometry(conn, chain->window),
|
||||
NULL);
|
||||
if (geometry == NULL) {
|
||||
result = VK_ERROR_SURFACE_LOST_KHR;
|
||||
result = x11_handle_dri3_present_event(chain, (void *)event);
|
||||
/* Ensure that VK_SUBOPTIMAL_KHR is reported to the application */
|
||||
result = x11_swapchain_result(chain, result);
|
||||
free(event);
|
||||
if (result < 0)
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue