Mesa (main): vulkan: Allow RegisterDisplayEventEXT before first page flip

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Jan 31 13:15:14 UTC 2022


Module: Mesa
Branch: main
Commit: a53fd9b0897fc88a28974cef5317039e23ac3939
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a53fd9b0897fc88a28974cef5317039e23ac3939

Author: Ella Stanforth <estanforth at igalia.com>
Date:   Sun Dec 12 22:39:55 2021 +0000

vulkan: Allow RegisterDisplayEventEXT before first page flip

Reviewed-by: Tapani Pälli <tapani.palli at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14685>

---

 src/vulkan/wsi/wsi_common_display.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/vulkan/wsi/wsi_common_display.c b/src/vulkan/wsi/wsi_common_display.c
index 1bc1dc742f8..4b3a02ba844 100644
--- a/src/vulkan/wsi/wsi_common_display.c
+++ b/src/vulkan/wsi/wsi_common_display.c
@@ -1701,6 +1701,17 @@ wsi_register_vblank_event(struct wsi_display_fence *fence,
    if (wsi->fd < 0)
       return VK_ERROR_INITIALIZATION_FAILED;
 
+   /* A display event may be registered before the first page flip at which
+    * point crtc_id will be 0. If this is the case we setup the connector
+    * here to allow drmCrtcQueueSequence to succeed.
+    */
+   if (!connector->crtc_id) {
+      VkResult ret = wsi_display_setup_connector(connector,
+                                                 connector->current_mode);
+      if (ret != VK_SUCCESS)
+         return VK_ERROR_INITIALIZATION_FAILED;
+   }
+
    for (;;) {
       int ret = drmCrtcQueueSequence(wsi->fd, connector->crtc_id,
                                      flags,



More information about the mesa-commit mailing list