From: Vivek Kasireddy Date: Tue, 17 Jun 2025 04:32:26 +0000 (-0700) Subject: ui/spice: Enable gl=on option for non-local or remote clients X-Git-Tag: v10.1.0-rc0~16^2~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=376d4b22e4d7dd81cb0c1ea1dfe1db0a0dc4b0e2;p=thirdparty%2Fqemu.git ui/spice: Enable gl=on option for non-local or remote clients Newer versions of Spice server should be able to accept dmabuf fds from Qemu for clients that are connected via the network. In other words, when this option is enabled, Qemu would share a dmabuf fd with Spice which would encode and send the data associated with the fd to a client that could be located on a different machine. Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dmitry Osipenko Cc: Frediano Ziglio Cc: Dongwon Kim Cc: Michael Scherle Reviewed-by: Marc-André Lureau Signed-off-by: Vivek Kasireddy Message-Id: <20250617043546.1022779-3-vivek.kasireddy@intel.com> --- diff --git a/include/ui/spice-display.h b/include/ui/spice-display.h index e1a9b361852..6c55f38c8b0 100644 --- a/include/ui/spice-display.h +++ b/include/ui/spice-display.h @@ -151,6 +151,7 @@ struct SimpleSpiceCursor { }; extern bool spice_opengl; +extern bool spice_remote_client; int qemu_spice_rect_is_empty(const QXLRect* r); void qemu_spice_rect_union(QXLRect *dest, const QXLRect *r); diff --git a/ui/spice-core.c b/ui/spice-core.c index 0326c63becd..5acbdd39550 100644 --- a/ui/spice-core.c +++ b/ui/spice-core.c @@ -836,9 +836,13 @@ static void qemu_spice_init(void) #ifdef HAVE_SPICE_GL if (qemu_opt_get_bool(opts, "gl", 0)) { if ((port != 0) || (tls_port != 0)) { +#if SPICE_SERVER_VERSION >= 0x000f03 /* release 0.15.3 */ + spice_remote_client = 1; +#else error_report("SPICE GL support is local-only for now and " "incompatible with -spice port/tls-port"); exit(1); +#endif } egl_init(qemu_opt_get(opts, "rendernode"), DISPLAY_GL_MODE_ON, &error_fatal); spice_opengl = 1; diff --git a/ui/spice-display.c b/ui/spice-display.c index 9c39d2c5c8d..0fb72f6d6f4 100644 --- a/ui/spice-display.c +++ b/ui/spice-display.c @@ -31,6 +31,7 @@ #include "standard-headers/drm/drm_fourcc.h" bool spice_opengl; +bool spice_remote_client; int qemu_spice_rect_is_empty(const QXLRect* r) {