wsi/x11: Wait for fences with IMMEDIATE on Xwayland

The commit below was already meant to do this, but accidentally missed
this part.

Fixes stutter when the frame-rate drops below the refresh rate.

Fixes: e8f50bd600 "wsi/x11: Treat IMMEDIATE present mode the same as
                     MAILBOX for Xwayland"

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10026>
(cherry picked from commit 8ec530d982)
This commit is contained in:
Michel Dänzer 2021-04-06 12:15:45 +02:00 committed by Dylan Baker
parent c4214ca9db
commit dde2e324ef
2 changed files with 6 additions and 2 deletions

View file

@ -148,7 +148,7 @@
"description": "wsi/x11: Wait for fences with IMMEDIATE on Xwayland",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"master_sha": null,
"because_sha": "e8f50bd60087805aa89144ecdd6e5a9b4368b532"
},

View file

@ -1202,6 +1202,8 @@ static void *
x11_manage_fifo_queues(void *state)
{
struct x11_swapchain *chain = state;
struct wsi_x11_connection *wsi_conn =
wsi_x11_get_connection((struct wsi_device*)chain->base.wsi, chain->conn);
VkResult result = VK_SUCCESS;
assert(chain->has_present_queue);
@ -1225,7 +1227,9 @@ x11_manage_fifo_queues(void *state)
return NULL;
}
if (chain->base.present_mode == VK_PRESENT_MODE_MAILBOX_KHR) {
if (chain->base.present_mode == VK_PRESENT_MODE_MAILBOX_KHR ||
(chain->base.present_mode == VK_PRESENT_MODE_IMMEDIATE_KHR &&
wsi_conn->is_xwayland)) {
result = chain->base.wsi->WaitForFences(chain->base.device, 1,
&chain->base.fences[image_index],
true, UINT64_MAX);