diff options
author | Michel Dänzer <mdaenzer@redhat.com> | 2021-04-06 12:15:45 +0200 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2021-04-07 13:20:20 +0000 |
commit | 8ec530d9828e01ac12918c7abb9b4e4aaf9a38cf (patch) | |
tree | 408aa9407bf690b4dd4d4b990967ac3f8d39c4e5 | |
parent | 519eb735a3085d30042201bbb9a637d0b8796a7a (diff) |
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: e8f50bd60087 "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>
-rw-r--r-- | src/vulkan/wsi/wsi_common_x11.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/vulkan/wsi/wsi_common_x11.c b/src/vulkan/wsi/wsi_common_x11.c index f899341f0cd..54769b81ccc 100644 --- a/src/vulkan/wsi/wsi_common_x11.c +++ b/src/vulkan/wsi/wsi_common_x11.c @@ -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); |