wl_egl: Initialize vblank_done flag when dequeue timeout occured 11/303411/1
authorJoonbum Ko <joonbum.ko@samsung.com>
Fri, 14 Apr 2023 10:00:36 +0000 (19:00 +0900)
committerJoonbum Ko <joonbum.ko@samsung.com>
Wed, 27 Dec 2023 08:26:50 +0000 (17:26 +0900)
 - Rarely, even if client cannot receive vblank event from tdm server,
  timeout may occur in can_dequeue.
 - In this case, if wl_egl_surface->vblank_done flag
  is not initialized to TPL_TRUE, problem situation may occur
  waiting vblank without calling tdm_client_vblank_wait
  after force_flush(can_dequeue_timeout).

Change-Id: If3f8eee13b5ae91a3728f189f53aa25720696b12
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
src/tpl_wl_egl_thread.c

index fc8d525..59b2de5 100755 (executable)
@@ -2509,6 +2509,8 @@ __tpl_wl_egl_surface_dequeue_buffer(tpl_surface_t *surface, uint64_t timeout_ns,
                } else {
                        tsq_err = TBM_SURFACE_QUEUE_ERROR_NONE;
                }
+
+               wl_egl_surface->vblank_done = TPL_TRUE;
        }
 
        if (tsq_err != TBM_SURFACE_QUEUE_ERROR_NONE) {