Hi Leo,
For a guest that has NVIDIA (or Intel/other) vgpu as an mdev device (direct access to NVIDIA hardware), all guest graphics commands are done on the NVIDIA device.
In this case, one can run spice-streaming-agent, on the guest, and use NVIDIA to encode (e.g. using the gstreamer or other plugin) a video stream (assuming an NVIDIA/other hardware encoder is installed on the guest too). The spice-streaming-agent sends the video stream to spice-server via a virtio-serial device. The spice-server needs not re-encode the stream, but just sends it as is to the client that (decodes it and) displays it to the user.
Hope that helps,
Uri.
On Sat, May 28, 2022 at 3:05 PM 张伟华 <15529316683@xxxxxxx> wrote:
Hi Uri:Thanks for your last email and we did some experiment, here are some questions remain:Whether only use the QXL device as the display device can activate the video streaming encode, which treats the video as stream data and encodes by MJPEG or other GStreamer supported encoding methods.
We have above problems is because when a Nvidia vgpu is set as the mdev device(the default value “qxl” of the virtual machine is replaced with “none”, using the “-vga none” command), we find in logs that spice uses image compression instead of the spice video streaming to encode the whole display data(include the video window).
Does spice support a vgpu mdev device to accelerate the rendering and using the spice video streaming encode to compress a video at the meantime.
pls help us with thatthanks a lotbest wishesleo zhang
At 2022-05-27 03:28:20, "Uri Lublin" <uril@xxxxxxxxxx> wrote:
Hi Leo,On Thu, May 26, 2022 at 4:28 PM 张伟华 <15529316683@xxxxxxx> wrote:
Hi Uri:Thanks for your advise of our project.We have try it and here is something we find:1.we have deploy the spice-streaming-agent in the client and set H254 in libvert xml , applice report error and don't work.but vp8/vp9 works.Note that spice-streaming-agent needs to run on the guest.2.When we use Nvidia vgpu as a mdev device attach to the virtual mathine, we find in logs that spice use picture compress (glz) instead of vedio compress h254.So we have two question to ask:1.what we need to do in libvert xml to have a better vedio quality witH NVIDIA VGPU attach as a mdev divice?This is not done in libvirt domxml, but needs to be configured on the guest.(of course you need to have org.spice-space.stream.0 via libvirt)Make sure that the guest's gstreamer1 "knows" the codec.It works much better when the encoder uses the hardware to encode.gst-inspect-1.0 | grep 264 | grep -i encgst-inspect-1.0 | grep -i vp | grep -i enc2.We didn't find spice-streaming-agent for windows in Spice office site. Does spice-streaming-agent only support linux and only have linux version?Yes, currently there is only a linux version.Regards,Uri.ps: One single display and 4k video is required as one of the main goals in our project.Pls help us with those questions.Best wishes !leo zhang
At 2022-05-20 04:38:55, "Uri Lublin" <uril@xxxxxxxxxx> wrote:
Hi Leo,On Thu, May 19, 2022 at 1:43 PM 张伟华 <15529316683@xxxxxxx> wrote:Hi :I am a phd student of Xian Jiaotong university in China.We have a project to accomplish a remote-desk solution with Nvidia vgpu.We use spice latest version and have a bad 4K display quality.Our environment is like:1.T4 card with inspure server in nvidia support listNVIDIA Tesla T4 GPU card2.redhat 8.2 enterprise with kvm qemu3.vgpu software package is 13.xNVIDIA driver + tools (GRID)4.vw flavor is 8u 16G. with 40 storage. vgpu license is vpc ,and vgpu is B-2b."vw" == Virtual WorkstationB-2b is the vGPU type? meaning T4-2B ?Does it help if you configure it with T4-2Q (may require a different license)?Only a single Display, right ?Are you running spice-streaming-agent on the guest ?Try to stream with H264, if you do not already do it(may require paying fees for using H264).Is 4k resolution a requirement? If not, try with e.g. 2k.Hope that helps,UriAnd our issue is attached in appendix.Please give us some help to solve this.best wishs;leo zhang