To address the limitation that this option is incompatible with
remote clients, this patch series adds an option to select a
preferred codec and also enable gl=on option for clients that
are connected via the network. In other words, with this option
enabled (and the below linked Spice series merged), it would be
possible to have Qemu share a dmabuf fd with Spice, which would
then forward it to a hardware or software based encoder and
eventually send the data associated with the fd to a client that
could be located on a different machine.
Tested with: -device virtio-vga,max_outputs=1,xres=1920,yres=1080
-spice port=3001,gl=on,disable-ticketing=on,preferred-codec=gstreamer:h264
and remote-viewer --spice-debug spice://x.x.x.x:3001 on the client side.
---
Associated Spice server patches can be found here:
https://lists.freedesktop.org/archives/spice-devel/2023-December/053288.html
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
Cc: Frediano Ziglio <freddy77@gmail.com>
Cc: Dongwon Kim <dongwon.kim@intel.com>
Vivek Kasireddy (7):
ui/spice: Add an option for users to provide a preferred codec
ui/spice: Enable gl=on option for non-local or remote clients
ui/spice: Submit the gl_draw requests at 60 FPS for remote clients
ui/console-gl: Add an option to override a surface's glformat
ui/spice: Override the surface's glformat when gl=on is enabled
ui/console-gl: Add a helper to create a texture with linear memory
layout
ui/spice: Create another texture with linear layout when gl=on is
enabled
include/ui/console.h | 2 +
include/ui/spice-display.h | 1 +
include/ui/surface.h | 1 +
qemu-options.hx | 5 +++
ui/console-gl.c | 32 ++++++++++++++++
ui/spice-core.c | 16 ++++++++
ui/spice-display.c | 75 +++++++++++++++++++++++++++++++++-----
7 files changed, 122 insertions(+), 10 deletions(-)
--
2.39.2