Mesa (master): wsi/x11: Wait for fences with IMMEDIATE on Xwayland
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Apr 7 13:28:40 UTC 2021
Module: Mesa
Branch: master
Commit: 8ec530d9828e01ac12918c7abb9b4e4aaf9a38cf
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8ec530d9828e01ac12918c7abb9b4e4aaf9a38cf
Author: Michel Dänzer <mdaenzer at redhat.com>
Date: Tue Apr 6 12:15:45 2021 +0200
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 at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10026>
---
src/vulkan/wsi/wsi_common_x11.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
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);
More information about the mesa-commit
mailing list