summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/platforms/wayland/qwaylandvulkaninstance.cpp10
-rw-r--r--src/plugins/platforms/wayland/qwaylandvulkaninstance_p.h1
2 files changed, 11 insertions, 0 deletions
diff --git a/src/plugins/platforms/wayland/qwaylandvulkaninstance.cpp b/src/plugins/platforms/wayland/qwaylandvulkaninstance.cpp
index 5edbd4757d6..51802257490 100644
--- a/src/plugins/platforms/wayland/qwaylandvulkaninstance.cpp
+++ b/src/plugins/platforms/wayland/qwaylandvulkaninstance.cpp
@@ -124,6 +124,16 @@ void QWaylandVulkanInstance::presentAboutToBeQueued(QWindow *window)
qWarning() << "Attempted to call presentAboutToBeQueued() without a valid platform window";
return;
}
+
+ bool ok;
+ int frameCallbackTimeout = qEnvironmentVariableIntValue("QT_WAYLAND_FRAME_CALLBACK_TIMEOUT", &ok);
+
+ if (ok)
+ mFrameCallbackTimeout = frameCallbackTimeout;
+
+ if (w->format().swapInterval() > 0)
+ w->waitForFrameSync(mFrameCallbackTimeout);
+
w->handleUpdate();
}
diff --git a/src/plugins/platforms/wayland/qwaylandvulkaninstance_p.h b/src/plugins/platforms/wayland/qwaylandvulkaninstance_p.h
index 08246c4dcc7..f46ba3f7569 100644
--- a/src/plugins/platforms/wayland/qwaylandvulkaninstance_p.h
+++ b/src/plugins/platforms/wayland/qwaylandvulkaninstance_p.h
@@ -82,6 +82,7 @@ private:
QVulkanInstance *m_instance = nullptr;
PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR m_getPhysDevPresSupport = nullptr;
PFN_vkCreateWaylandSurfaceKHR m_createSurface = nullptr;
+ int mFrameCallbackTimeout = 100;
};
} // namespace QtWaylandClient