From: "Alex Bennée" <alex.bennee@linaro.org>
To: Vivek Kasireddy <vivek.kasireddy@intel.com>
Cc: qemu-devel@nongnu.org, "Gerd Hoffmann" <kraxel@redhat.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Dmitry Osipenko" <dmitry.osipenko@collabora.com>,
"Frediano Ziglio" <freddy77@gmail.com>,
"Michael Scherle" <michael.scherle@rz.uni-freiburg.de>,
"Dongwon Kim" <dongwon.kim@intel.com>
Subject: Re: [PATCH v5 0/7] ui/spice: Enable gl=on option for non-local or remote clients
Date: Thu, 05 Jun 2025 15:49:01 +0100 [thread overview]
Message-ID: <87seke5jmq.fsf@draig.linaro.org> (raw)
In-Reply-To: <20250529051352.1409904-1-vivek.kasireddy@intel.com> (Vivek Kasireddy's message of "Wed, 28 May 2025 22:11:11 -0700")
Vivek Kasireddy <vivek.kasireddy@intel.com> writes:
> 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.
>
> Essentially, this patch series provides a hardware accelerated,
> opensource VDI option for users using Qemu and Spice by leveraging
> the iGPU/dGPU on the host machine to encode the Guest FB via the
> Gstreamer framework.
>
> v4 -> v5 (suggestions from Marc-André):
> - Fix the errors (mostly 80 chars limit violations) identified by
> scripts/checkpatch.pl
> - Rename the globals to have a spice_ prefix for consistency
> - Rename MAX_REFRESH_RATE to DEFAULT_MAX_REFRESH_RATE
> - Added comments to explain how/when the gl_draw request is submitted
> to spice server in the remote clients case
> - Fix the mem_obj leak that would occur when the associated texture
> is destroyed or when an error is encountered while creating a
> texture from an fd (Dmitry and Michael)
> - Merged Michael's patch to fix the mem_obj leak into this series and
> added his Co-developed-by tag to the relevant patches
>
> v3 -> v4 (suggestions from Marc-André):
> - Add a new parameter to make max_refresh_rate configurable
> - Have surface_gl_create_texture_from_fd() return bool after checking
> for errors
> - Remove the check for PIXMAN_r5g6b5() in spice_gl_replace_fd_texture()
> - Report errors in spice_gl_replace_fd_texture() when someting fails
> - Use glGetError() correctly by adding an additional (dummy) call
> before checking for actual errors (Dmitry)
> - Add a new patch to check fd values in egl_dmabuf_export_texture()
> - Rebase on Qemu master
>
> v2 -> v3:
> - Check for errors after invoking glImportMemoryFdEXT() using
> glGetError() and report the error to user (Dmitry)
>
> v1 -> v2:
> - Replace the option name preferred-codec with video-codecs (Marc-André)
> - Add a warning when an fd cannot be created from texture (Marc-André)
> - Add a new patch to blit the scanout texture into a linear one to
> make it work with virgl
> - Rebased and tested against the latest Spice master
>
> Tested with the following Qemu parameters:
> -device virtio-vga,max_outputs=1,xres=1920,yres=1080,blob=true
> -spice port=3001,gl=on,disable-ticketing=on,video-codecs=gstreamer:h264
>
> and remote-viewer --spice-debug spice://x.x.x.x:3001 on the client side.
>
> Associated Spice server MR (merged):
> https://gitlab.freedesktop.org/spice/spice/-/merge_requests/229
>
> ---
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
> Cc: Dmitry Osipenko <dmitry.osipenko@collabora.com>
> Cc: Frediano Ziglio <freddy77@gmail.com>
> Cc: Michael Scherle <michael.scherle@rz.uni-freiburg.de>
> Cc: Dongwon Kim <dongwon.kim@intel.com>
> Cc: Alex Bennée <alex.bennee@linaro.org>
>
> Vivek Kasireddy (7):
> ui/egl-helpers: Error check the fds in egl_dmabuf_export_texture()
> 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: Add an option to submit gl_draw requests at fixed rate
> ui/console-gl: Add a helper to create a texture with linear memory
> layout
> ui/spice: Create a new texture with linear layout when gl=on is
> enabled
> ui/spice: Blit the scanout texture if its memory layout is not linear
>
> include/ui/console.h | 3 +
> include/ui/spice-display.h | 5 +
> include/ui/surface.h | 1 +
> qemu-options.hx | 10 ++
Aside from the qemu-options we don't see a lot about SPICE in the docs.
Could we add a section to cover the configuration or maybe just expand
system/devices/virtio-gpu with information about how acceleration works
with remote SPICE viewers?
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
prev parent reply other threads:[~2025-06-05 14:49 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-29 5:11 [PATCH v5 0/7] ui/spice: Enable gl=on option for non-local or remote clients Vivek Kasireddy
2025-05-29 5:11 ` [PATCH v5 1/7] ui/egl-helpers: Error check the fds in egl_dmabuf_export_texture() Vivek Kasireddy
2025-05-29 5:11 ` [PATCH v5 2/7] ui/spice: Add an option for users to provide a preferred codec Vivek Kasireddy
2025-06-05 8:43 ` Daniel P. Berrangé
2025-06-06 6:10 ` Kasireddy, Vivek
2025-06-06 7:16 ` Daniel P. Berrangé
2025-06-10 11:30 ` Marc-André Lureau
2025-06-10 12:20 ` Daniel P. Berrangé
2025-06-10 13:30 ` Michael Scherle
2025-06-11 5:07 ` Kasireddy, Vivek
2025-05-29 5:11 ` [PATCH v5 3/7] ui/spice: Enable gl=on option for non-local or remote clients Vivek Kasireddy
2025-05-29 5:11 ` [PATCH v5 4/7] ui/spice: Add an option to submit gl_draw requests at fixed rate Vivek Kasireddy
2025-05-29 5:11 ` [PATCH v5 5/7] ui/console-gl: Add a helper to create a texture with linear memory layout Vivek Kasireddy
2025-05-29 5:11 ` [PATCH v5 6/7] ui/spice: Create a new texture with linear layout when gl=on is enabled Vivek Kasireddy
2025-05-29 5:11 ` [PATCH v5 7/7] ui/spice: Blit the scanout texture if its memory layout is not linear Vivek Kasireddy
2025-06-04 7:23 ` [PATCH v5 0/7] ui/spice: Enable gl=on option for non-local or remote clients Marc-André Lureau
2025-06-05 5:16 ` Kasireddy, Vivek
2025-06-05 14:49 ` Alex Bennée [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87seke5jmq.fsf@draig.linaro.org \
--to=alex.bennee@linaro.org \
--cc=dmitry.osipenko@collabora.com \
--cc=dongwon.kim@intel.com \
--cc=freddy77@gmail.com \
--cc=kraxel@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=michael.scherle@rz.uni-freiburg.de \
--cc=qemu-devel@nongnu.org \
--cc=vivek.kasireddy@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.