Hi Marc-André, > Subject: Re: [PATCH v4 0/7] ui/spice: Enable gl=on option for non-local or > remote clients > > Hi > > On Thu, May 15, 2025 at 4:49 AM Vivek Kasireddy > <vivek.kasire...@intel.com <mailto:vivek.kasire...@intel.com> > wrote: > > > 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. > > > > > for v5, please fix the patches to pass scripts/checkpatch.pl > <http://checkpatch.pl> . Sure, will do this and include all your suggestions in v5.
Thanks, Vivek > > > > 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 <kra...@redhat.com <mailto:kra...@redhat.com> > > > Cc: Marc-André Lureau <marcandre.lur...@redhat.com > <mailto:marcandre.lur...@redhat.com> > > Cc: Dmitry Osipenko <dmitry.osipe...@collabora.com > <mailto:dmitry.osipe...@collabora.com> > > Cc: Frediano Ziglio <fredd...@gmail.com > <mailto:fredd...@gmail.com> > > Cc: Michael Scherle <michael.sche...@rz.uni-freiburg.de > <mailto:michael.sche...@rz.uni-freiburg.de> > > Cc: Dongwon Kim <dongwon....@intel.com > <mailto:dongwon....@intel.com> > > Cc: Alex Bennée <alex.ben...@linaro.org > <mailto:alex.ben...@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 | 2 + > include/ui/spice-display.h | 5 + > qemu-options.hx | 10 ++ > ui/console-gl.c | 32 ++++++ > ui/egl-helpers.c | 6 ++ > ui/spice-core.c | 27 +++++ > ui/spice-display.c | 212 ++++++++++++++++++++++++++++++++++- > -- > 7 files changed, 278 insertions(+), 16 deletions(-) > > -- > 2.49.0 > >