diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2021-03-11 12:11:37 +0400 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@redhat.com> | 2021-12-21 10:50:21 +0400 |
commit | f6413cbfd0b3a3f85ebaf9fe13494af1dad916bb (patch) | |
tree | 89ce165cccf3618b10703f2b01c20047ea63b17f /ui/console.c | |
parent | a9b1e471e1783a1d7ae9215f9b8adc7cdb053367 (diff) |
ui: simplify gl unblock & flush
GraphicHw.gl_flushed was introduced to notify the
device (vhost-user-gpu) that the GL resources (the display scanout) are
no longer needed.
It was decoupled from QEMU own gl-blocking mechanism, but that
difference isn't helping. Instead, we can reuse QEMU gl-blocking and
notify virtio_gpu_gl_flushed() when unblocking (to unlock
vhost-user-gpu).
An extra block/unblock is added arount dpy_gl_update() so existing
backends that don't block will have the flush event handled. It will
also help when there are no backends associated.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'ui/console.c')
-rw-r--r-- | ui/console.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/ui/console.c b/ui/console.c index fcc4fe6a0a..6f21007737 100644 --- a/ui/console.c +++ b/ui/console.c @@ -267,15 +267,6 @@ void graphic_hw_gl_block(QemuConsole *con, bool block) } } -void graphic_hw_gl_flushed(QemuConsole *con) -{ - assert(con != NULL); - - if (con->hw_ops->gl_flushed) { - con->hw_ops->gl_flushed(con->hw); - } -} - int qemu_console_get_window_id(QemuConsole *con) { return con->window_id; @@ -1894,7 +1885,10 @@ void dpy_gl_update(QemuConsole *con, uint32_t x, uint32_t y, uint32_t w, uint32_t h) { assert(con->gl); + + graphic_hw_gl_block(con, true); con->gl->ops->dpy_gl_update(con->gl, x, y, w, h); + graphic_hw_gl_block(con, false); } /***********************************************************/ |