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
-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@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

_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to