Hi
On Thu, Dec 14, 2023 at 8:26 AM Dongwon Kim <[email protected]> wrote:
>
> It is needed to unblock the pipeline only if there is an active dmabuf
> to be rendered and the fence for it is not yet signaled.
>
> Cc: Marc-André Lureau <[email protected]>
> Cc: Vivek Kasireddy <[email protected]>
> Signed-off-by: Dongwon Kim <[email protected]>
> ---
> ui/gtk.c | 14 ++++++++++----
> 1 file changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/ui/gtk.c b/ui/gtk.c
> index ea8d07833e..073c9eadb8 100644
> --- a/ui/gtk.c
> +++ b/ui/gtk.c
> @@ -597,10 +597,16 @@ void gd_hw_gl_flushed(void *vcon)
> VirtualConsole *vc = vcon;
> QemuDmaBuf *dmabuf = vc->gfx.guest_fb.dmabuf;
>
> - qemu_set_fd_handler(dmabuf->fence_fd, NULL, NULL, NULL);
> - close(dmabuf->fence_fd);
> - dmabuf->fence_fd = -1;
> - graphic_hw_gl_block(vc->gfx.dcl.con, false);
> + if (!dmabuf) {
> + return;
> + }
When is this function called with dmabuf == NULL or fence_fd < 0?
> +
> + if (dmabuf->fence_fd > 0) {
this should be >= 0
> + qemu_set_fd_handler(dmabuf->fence_fd, NULL, NULL, NULL);
> + close(dmabuf->fence_fd);
> + dmabuf->fence_fd = -1;
> + graphic_hw_gl_block(vc->gfx.dcl.con, false);
> + }
> }
>
> /** DisplayState Callbacks (opengl version) **/
> --
> 2.34.1
>
>
--
Marc-André Lureau