[Spice-devel] Stuttering video playback on LAN
Frediano Ziglio
fziglio at redhat.com
Mon May 4 11:19:56 UTC 2020
>
> Hi,
>
> I experience stuttering video playback in remote-viewer despite connecting
> via GBit/s LAN, using fast hardware and the QXL driver.
> Up until a video size of roughly 800x600 the playback is smooth. But on
> anything bigger, like my native resolution of 2540x1440, video playback is
> stuttering annoyingly.
> After lots of unsuccessful tinkering with spice parameters and qxl parameters
> I'm asking you guys for help.
>
> Client:
> Windows 10 1909
> Remote Viewer 8.0-256
> Quadcore i7-7820HQ 2.9GHz
> 16GB DDR4 RAM
>
> Host of the VM:
> Gentoo Linux
> Kernel 4.14.172
> Qemu 4.2.0
> Quadcore i7-7700K 4.2GHz
> 64GB DDR4 RAM
> Server is headless, has no dedicated graphics card, only the Intel HD 630
> from the CPU
>
> Guest VM:
> Debian Bullseye
> I don't think it's guest related, because the same problem happens with a
> Windows 10 Guest with latest QXL drivers and spice-tools installed.
>
> Network performance client<=>host:
> Ping 0.2ms
> Throughput benchmarked at 960MBit/s
>
> Qemu invocation on host:
> #qemu-system-x86_64
> -spice port=5906,addr=10.42.2.250,password=changed
> -vga none -device
> qxl-vga,ram_size_mb=128,vgamem_mb=32,vram_size_mb=128,vram64_size_mb=256,max_outputs=1
> -M q35 -smp 2 -cpu host --enable-kvm
> -drive file=vmfllin.raw,if=virtio,format=raw,index=0,cache=none,aio=native -m
> 24576
> -net nic,model=virtio,macaddr=52:54:00:74:01:06 -net
> tap,ifname=vmfllin,script=no,downscript=no -k de
> -monitor tcp:127.0.0.1:5956,server,nowait
> -device virtio-serial,id=virtio-serial1
> -chardev spicevmc,id=vdagent,debug=0,name=vdagent
> -device
> virtserialport,bus=virtio-serial1.0,chardev=vdagent,name=com.redhat.spice.0
> -rtc base=utc,clock=host -daemonize --device virtio-balloon -boot c
> -nodefaults -soundhw hda
>
> Spice parameters I tried:
> -spice
> streaming-video=all,image-compression=off,jpeg-wan-compression=never,zlib-glz-wan-compression=never,playback-compression=off
Why playback-compression off ?
The streaming-video should help quite a lot, at least if you play videos.
And why image-compression is also off?
Without compression and 1GB/s connection at your resolution you fill all the bandwidth with just 8 frames per second.
> -spice
> streaming-video=off,image-compression=off,jpeg-wan-compression=never,zlib-glz-wan-compression=never,playback-compression=off
>
> Guest kernel:
> Linux guest 5.4.0-4-amd64 #1 SMP Debian 5.4.19-1 (2020-02-13) x86_64
> GNU/Linux
> guest kernel: qxl 0000:00:03.0: remove_conflicting_pci_framebuffers: bar 0:
> 0xe8000000 -> 0xefffffff
> guest kernel: qxl 0000:00:03.0: remove_conflicting_pci_framebuffers: bar 1:
> 0xf0000000 -> 0xf7ffffff
> guest kernel: qxl 0000:00:03.0: remove_conflicting_pci_framebuffers: bar 2:
> 0xf8054000 -> 0xf8055fff
> guest kernel: qxl 0000:00:03.0: remove_conflicting_pci_framebuffers: bar 4:
> 0xd0000000 -> 0xdfffffff
> guest kernel: qxl 0000:00:03.0: vgaarb: deactivate vga console
> guest kernel: [drm] Device Version 0.0
> guest kernel: [drm] Compression level 0 log level 0
> guest kernel: [drm] 24574 io pages at offset 0x2000000
> guest kernel: [drm] 33554432 byte draw area at offset 0x0
> guest kernel: [drm] RAM header offset: 0x7ffe000
> guest kernel: [drm] qxl: 32M of VRAM memory size
> guest kernel: [drm] qxl: 127M of IO pages memory ready (VRAM domain)
> guest kernel: [drm] qxl: 256M of Surface memory size
> guest kernel: [drm] slot 0 (main): base 0xe8000000, size 0x07ffe000,
> gpu_offset 0x20000000000
> guest kernel: [drm] slot 1 (surfaces): base 0xd0000000, size 0x10000000,
> gpu_offset 0x30000000000
> guest kernel: [drm] Initialized qxl 0.1.0 20120117 for 0000:00:03.0 on minor
> 0
> guest kernel: fbcon: qxldrmfb (fb0) is primary device
> guest kernel: qxl 0000:00:03.0: fb0: qxldrmfb frame buffer device
>
> Guest X-Org:
> X.Org X Server 1.20.8
> [ 205.516] (II) LoadModule: "qxl"
> [ 205.516] (II) Loading /usr/lib/xorg/modules/drivers/qxl_drv.so
> [ 205.518] (II) Module qxl: vendor="X.Org Foundation"
> [ 205.520] (II) qxl: Driver for QXL virtual graphics: QXL 1
> [ 205.525] (II) qxl(0): Creating default Display subsection in Screen
> section
> [ 205.525] (==) qxl(0): Depth 24, (--) framebuffer bpp 32
> [ 205.525] (==) qxl(0): RGB weight 888
> [ 205.525] (==) qxl(0): Default visual is TrueColor
> [ 205.525] (==) qxl(0): Using gamma correction (1.0, 1.0, 1.0)
> [ 205.525] (II) qxl(0): Deferred Frames: Disabled
> [ 205.525] (II) qxl(0): Offscreen Surfaces: Enabled
> [ 205.525] (II) qxl(0): Image Cache: Enabled
> [ 205.525] (II) qxl(0): Fallback Cache: Enabled
> [ 205.525] (==) qxl(0): DPI set to (96, 96)
> # glxgears
> 9709 frames in 5.0 seconds = 1941.675 FPS
> 11719 frames in 5.0 seconds = 2343.780 FPS
>
> Remote-Viewer console output on Windows client:
> "C:\Program Files\VirtViewer v8.0-256\bin\remote-viewer.exe"
> --hotkeys=toggle-fullscreen=shift+f11 spice://10.42.2.250:5906
> (remote-viewer.exe:16324): GSpice-CRITICAL **: 08:00:32.467:
> _usbdk_hider_update: assertion 'priv->usbdk_api != NULL' failed
> (remote-viewer.exe:16324): GSpice-CRITICAL **: 08:00:32.526: file
> ../../src/usb-device-manager.c: line 1815 (probe_isochronous_endpoint):
> should not be reached
> (remote-viewer.exe:16324): Gtk-WARNING **: 08:00:32.950: Theme directory
> 256x256 at 2/animations of theme hicolor has no size field
> (remote-viewer.exe:16324): Spice-WARNING **: 08:00:50.804:
> ../../src/channel-display-gst.c:715:gstvideo_has_codec: No video decoders
> from GStreamer were found
> (remote-viewer.exe:16324): GSpice-CRITICAL **: 08:00:50.912:
> _usbdk_hider_update: assertion 'priv->usbdk_api != NULL' failed
> (remote-viewer.exe:16324): GSpice-WARNING **: 08:00:50.919: Warning no
> automount-inhibiting implementation available
>
> Thanks,
> Felix
More information about the Spice-devel
mailing list