aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2021-03-12 14:00:43 +0400
committerGerd Hoffmann <kraxel@redhat.com>2021-03-26 06:37:03 +0100
commit0c27b9c5687fd276e26c3a95ca6d89f792fc7a1c (patch)
tree3c3af2f811e562795c1e09c0bed118729427fd8e
parentd2aea775d4ab1a3d8fb92587881dc6fa55819f62 (diff)
downloadqemu-0c27b9c5687fd276e26c3a95ca6d89f792fc7a1c.zip
qemu-0c27b9c5687fd276e26c3a95ca6d89f792fc7a1c.tar.gz
qemu-0c27b9c5687fd276e26c3a95ca6d89f792fc7a1c.tar.bz2
vhost-user-gpu: glFlush before notifying clients
For similar reasons as commit 3af1671852 ("spice: flush on GL update before notifying client"), vhost-user-gpu must ensure the GL state is flushed before sharing its rendering result. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20210312100108.2706195-3-marcandre.lureau@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-rw-r--r--contrib/vhost-user-gpu/meson.build2
-rw-r--r--contrib/vhost-user-gpu/virgl.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/contrib/vhost-user-gpu/meson.build b/contrib/vhost-user-gpu/meson.build
index 2fc2320..0ce1515 100644
--- a/contrib/vhost-user-gpu/meson.build
+++ b/contrib/vhost-user-gpu/meson.build
@@ -2,7 +2,7 @@ if 'CONFIG_TOOLS' in config_host and 'CONFIG_VIRGL' in config_host \
and 'CONFIG_GBM' in config_host and 'CONFIG_LINUX' in config_host \
and pixman.found()
executable('vhost-user-gpu', files('vhost-user-gpu.c', 'virgl.c', 'vugbm.c'),
- dependencies: [qemuutil, pixman, gbm, virgl, vhost_user],
+ dependencies: [qemuutil, pixman, gbm, virgl, vhost_user, opengl],
install: true,
install_dir: get_option('libexecdir'))
diff --git a/contrib/vhost-user-gpu/virgl.c b/contrib/vhost-user-gpu/virgl.c
index 8bb3c56..9e6660c 100644
--- a/contrib/vhost-user-gpu/virgl.c
+++ b/contrib/vhost-user-gpu/virgl.c
@@ -16,6 +16,8 @@
#include <virglrenderer.h>
#include "virgl.h"
+#include <epoxy/gl.h>
+
void
vg_virgl_update_cursor_data(VuGpu *g, uint32_t resource_id,
gpointer data)
@@ -372,6 +374,7 @@ virgl_cmd_resource_flush(VuGpu *g,
VUGPU_FILL_CMD(rf);
+ glFlush();
if (!rf.resource_id) {
g_debug("bad resource id for flush..?");
return;