Is there any way to make the mouse smoother in spice under virt-manager?

I set up a vm with gvt-g in virt-manager and it works fantastic, I’m getting 60fps rendering output when I playback video and even games. But for some unknown reason, the cursor seems to be locked to low framerates, it might be 30fps but it’s possibly even lower than that.

I thought maybe since the rendering results are so good, if I’d fully passthrough the mouse I could work around the issue that way, but no dice, cursor still behaved the same.

Full VM libvirt/xml config
<domain xmlns:qemu="http://libvirt.org/schemas/domain/qemu/1.0" type="kvm">
  <name>Windoze_GVT</name>
  <uuid>3c5e73bd-fba0-4cf0-b024-a38814cc8d90</uuid>
  <title>Windoze GVT</title>
  <description>Windoze 10 With GVT-G</description>
  <metadata>
    <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
      <libosinfo:os id="http://microsoft.com/win/10"/>
    </libosinfo:libosinfo>
  </metadata>
  <memory unit="KiB">16777216</memory>
  <currentMemory unit="KiB">16777216</currentMemory>
  <vcpu placement="static">8</vcpu>
  <os>
    <type arch="x86_64" machine="pc-q35-6.1">hvm</type>
    <loader readonly="yes" type="pflash">/usr/share/edk2-ovmf/x64/OVMF_CODE.fd</loader>
    <nvram>/var/lib/libvirt/qemu/nvram/Windoze_GVT_VARS.fd</nvram>
    <boot dev="hd"/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv>
      <relaxed state="on"/>
      <vapic state="on"/>
      <spinlocks state="on" retries="8191"/>
    </hyperv>
    <vmport state="off"/>
  </features>
  <cpu mode="host-model" check="partial">
    <topology sockets="1" dies="1" cores="4" threads="2"/>
  </cpu>
  <clock offset="localtime">
    <timer name="rtc" tickpolicy="catchup"/>
    <timer name="pit" tickpolicy="delay"/>
    <timer name="hpet" present="no"/>
    <timer name="hypervclock" present="yes"/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <pm>
    <suspend-to-mem enabled="no"/>
    <suspend-to-disk enabled="no"/>
  </pm>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type="file" device="disk">
      <driver name="qemu" type="raw"/>
      <source file="/home/rabcor/Windoze/vm-files/Windoze.img"/>
      <target dev="sda" bus="sata"/>
      <address type="drive" controller="0" bus="0" target="0" unit="0"/>
    </disk>
    <controller type="usb" index="0" model="qemu-xhci" ports="15">
      <address type="pci" domain="0x0000" bus="0x02" slot="0x00" function="0x0"/>
    </controller>
    <controller type="sata" index="0">
      <address type="pci" domain="0x0000" bus="0x00" slot="0x1f" function="0x2"/>
    </controller>
    <controller type="pci" index="0" model="pcie-root"/>
    <controller type="pci" index="1" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="1" port="0x10"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0" multifunction="on"/>
    </controller>
    <controller type="pci" index="2" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="2" port="0x11"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x1"/>
    </controller>
    <controller type="pci" index="3" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="3" port="0x12"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x2"/>
    </controller>
    <controller type="pci" index="4" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="4" port="0x13"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x3"/>
    </controller>
    <controller type="pci" index="5" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="5" port="0x14"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x4"/>
    </controller>
    <controller type="pci" index="6" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="6" port="0x15"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x5"/>
    </controller>
    <controller type="pci" index="7" model="pcie-to-pci-bridge">
      <model name="pcie-pci-bridge"/>
      <address type="pci" domain="0x0000" bus="0x06" slot="0x00" function="0x0"/>
    </controller>
    <controller type="virtio-serial" index="0">
      <address type="pci" domain="0x0000" bus="0x03" slot="0x00" function="0x0"/>
    </controller>
    <interface type="network">
      <mac address="52:54:00:cb:a9:1d"/>
      <source network="default"/>
      <model type="e1000e"/>
      <address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
    </interface>
    <serial type="pty">
      <target type="isa-serial" port="0">
        <model name="isa-serial"/>
      </target>
    </serial>
    <console type="pty">
      <target type="serial" port="0"/>
    </console>
    <channel type="spicevmc">
      <target type="virtio" name="com.redhat.spice.0"/>
      <address type="virtio-serial" controller="0" bus="0" port="1"/>
    </channel>
    <input type="tablet" bus="usb">
      <address type="usb" bus="0" port="1"/>
    </input>
    <input type="mouse" bus="ps2"/>
    <input type="keyboard" bus="ps2"/>
    <graphics type="spice">
      <listen type="none"/>
      <streaming mode="off"/>
      <gl enable="yes" rendernode="/dev/dri/by-path/pci-0000:00:02.0-render"/>
    </graphics>
    <sound model="ich9">
      <address type="pci" domain="0x0000" bus="0x00" slot="0x1b" function="0x0"/>
    </sound>
    <audio id="1" type="spice"/>
    <video>
      <model type="none"/>
    </video>
    <hostdev mode="subsystem" type="mdev" managed="no" model="vfio-pci" display="on">
      <source>
        <address uuid="71abd338-d32e-4a56-8f9a-5830d16a2828"/>
      </source>
      <address type="pci" domain="0x0000" bus="0x05" slot="0x00" function="0x0"/>
    </hostdev>
    <redirdev bus="usb" type="spicevmc">
      <address type="usb" bus="0" port="2"/>
    </redirdev>
    <redirdev bus="usb" type="spicevmc">
      <address type="usb" bus="0" port="3"/>
    </redirdev>
    <memballoon model="virtio">
      <address type="pci" domain="0x0000" bus="0x04" slot="0x00" function="0x0"/>
    </memballoon>
    <shmem name="looking-glass">
      <model type="ivshmem-plain"/>
      <size unit="M">512</size>
      <address type="pci" domain="0x0000" bus="0x07" slot="0x01" function="0x0"/>
    </shmem>
  </devices>
  <qemu:commandline>
    <qemu:arg value="-set"/>
    <qemu:arg value="device.hostdev0.romfile=/home/rabcor/Windoze/vm-files/vbios_gvt_uefi.rom"/>
    <qemu:arg value="-set"/>
    <qemu:arg value="device.hostdev0.x-igd-opregion=on"/>
    <qemu:arg value="-set"/>
    <qemu:arg value="device.hostdev0.ramfb=on"/>
    <qemu:arg value="-set"/>
    <qemu:arg value="device.hostdev0.driver=vfio-pci-nohotplug"/>
  </qemu:commandline>
</domain>

I also tried to use alternatives to spice as well to see if I could get a better experience, but no dice there either…

xfreerdp

I get a smooth 60fps cursor in xfreerdp however the rendering experience is considerably downgraded, I get what I believe are frame delays (stuttering) extremely frequently,

This is the command I’m using:

xfreerdp /d:"WORKGROUP"/u:"$USER" /v:192.168.122.2:3389 /w:1920 /h:1015 /bpp:32 +clipboard +fonts /gdi:hw /rfx /rfx-mode:video /sound:sys:pulse +menu-anims +window-drag /gfx:avc444 /codec-cache:rfx -compression

The most impactful settings were the gfx (encode) command:

/gfx[:[[RFX|AVC420|AVC444],mask:<value>]]

I tried all 3 settings, RFX had the most stuttering, AVC420 had less stuttering, AVC444 had even less stuttering.

The codec cache command:

/codec-cache:[rfx|nsc|jpeg]

For which rfx seems to provide by far the best result

And also disabling compression

-compression

I tried various compression settings but even setting compression level to 0 is worse than entirely disabling it this way.

The resulting experience is, usable, but not very enjoyable. Also certain 3D applications refuse to run for unknown reasons (errors like: Your video hardware is not supported) on RDP, but most have no issues.

Looking Glass

I couldn’t get it to work with GVT-G, more here:

Update: Can now display the VM in looking glass by running looking-glass-client -s but this comes at the cost of not having any HID support in looking glass so my only way to interact with looking glass is with passhtrough peripherals.


Which ultimately leaves me with either figuring out a way to get rid of the stuttering in xfreerdp, or get the cursor to be smoother on spice in virt-manager.

Additionally, on both xfreerdp and on spice/virt-manager, I had an issue where the mouse wouldn’t work properly in first-person games. I think I can work around the issue by passing through the mouse, rather than using usb redirect, but that is not a desirable solution. I believe the issue has something to do with VMs not allowing applications to grab the cursor maybe?

I’ve been looking all day but couldn’t find any way to achieve either. :frowning:

How hard can it be to get a smooth VM experience? :sob:

1 Like

Can you provide an inxi --admin --verbosity=7 --filter --no-host --width of the host and an msinfo from the guest?

:thinking:

inxi:

System:
  Kernel: 5.14.7-2-MANJARO x86_64 bits: 64 compiler: gcc v: 11.1.0 
  parameters: BOOT_IMAGE=/boot/vmlinuz-5.14-x86_64 
  root=UUID=ade649ba-48e8-4bd1-9e1c-7878c6f77246 rw quiet mitigations=off 
  nowatchdog pci=noaer cpufreq.default_governor=performance apparmor=1 
  security=apparmor udev.log_priority=3 acpi_osi=! acpi_osi=Linux 
  "acpi_osi=Windows 2009" nogpumanager i915.enable_gvt=1 pcie_port_pm=off 
  iommu=1 intel_iommu=on kvm.ignore_msrs=1 rd.driver.pre=vfio-pci 
  default_hugepagesz=1G hugepagesz=1G hugepages=0 transparent_hugepage=never 
  Desktop: KDE Plasma 5.22.5 tk: Qt 5.15.2 wm: kwin_x11 vt: 1 dm: SDDM 
  Distro: Manjaro Linux base: Arch Linux 
Machine:
  Type: Laptop System: Micro-Star product: GE75 Raider 8SE v: REV:1.0 
  serial: <filter> Chassis: type: 10 serial: <filter> 
  Mobo: Micro-Star model: MS-17E2 v: REV:1.0 serial: <filter> 
  UEFI: American Megatrends v: E17E2IMS.11A date: 05/19/2020 
Battery:
  ID-1: BAT1 charge: 43.6 Wh (100.0%) condition: 43.6/53.4 Wh (81.6%) 
  volts: 12.0 min: 10.9 model: MSI BIF0_9 type: Li-ion serial: N/A 
  status: Full 
  Device-1: hidpp_battery_0 
  model: Logitech MX Vertical Advanced Ergonomic Mouse serial: <filter> 
  charge: 55% (should be ignored) rechargeable: yes status: Discharging 
Memory:
  RAM: total: 31.2 GiB used: 6.35 GiB (20.3%) 
  RAM Report: permissions: Unable to run dmidecode. Root privileges required. 
CPU:
  Info: 6-Core model: Intel Core i7-8750H bits: 64 type: MT MCP 
  arch: Kaby Lake note: check family: 6 model-id: 9E (158) stepping: A (10) 
  microcode: EA cache: L2: 9 MiB bogomips: 52815 
  Speed: 3899 MHz min/max: 800/4100 MHz Core speeds (MHz): 1: 3899 2: 3884 
  3: 3995 4: 4000 5: 3992 6: 3998 7: 3975 8: 3998 9: 3999 10: 3974 11: 3986 
  12: 3968 
  Flags: 3dnowprefetch abm acpi adx aes aperfmperf apic arat arch_perfmon art 
  avx avx2 bmi1 bmi2 bts clflush clflushopt cmov constant_tsc cpuid 
  cpuid_fault cx16 cx8 de ds_cpl dtes64 dtherm dts epb ept ept_ad erms est 
  f16c flexpriority flush_l1d fma fpu fsgsbase fxsr ht hwp hwp_act_window 
  hwp_epp hwp_notify ibpb ibrs ida intel_pt invpcid invpcid_single lahf_lm lm 
  mca mce md_clear mmx monitor movbe mpx msr mtrr nonstop_tsc nopl nx pae pat 
  pbe pcid pclmulqdq pdcm pdpe1gb pebs pge pln pni popcnt pse pse36 pts rdrand 
  rdseed rdtscp rep_good sdbg sep smap smep ss ssbd sse sse2 sse4_1 sse4_2 
  ssse3 stibp syscall tm tm2 tpr_shadow tsc tsc_adjust tsc_deadline_timer vme 
  vmx vnmi vpid x2apic xgetbv1 xsave xsavec xsaveopt xsaves xtopology xtpr 
  Vulnerabilities: Type: itlb_multihit status: KVM: VMX disabled 
  Type: l1tf mitigation: PTE Inversion; VMX: vulnerable 
  Type: mds status: Vulnerable; SMT vulnerable 
  Type: meltdown status: Vulnerable 
  Type: spec_store_bypass status: Vulnerable 
  Type: spectre_v1 status: Vulnerable: __user pointer sanitization and 
  usercopy barriers only; no swapgs barriers 
  Type: spectre_v2 status: Vulnerable, IBPB: disabled, STIBP: disabled 
  Type: srbds status: Vulnerable 
  Type: tsx_async_abort status: Not affected 
Graphics:
  Device-1: Intel CoffeeLake-H GT2 [UHD Graphics 630] vendor: Micro-Star MSI 
  driver: i915 v: kernel bus-ID: 00:02.0 chip-ID: 8086:3e9b class-ID: 0300 
  Device-2: NVIDIA TU106M [GeForce RTX 2060 Mobile] vendor: Micro-Star MSI 
  driver: nvidia v: 470.63.01 alternate: nouveau,nvidia_drm bus-ID: 01:00.0 
  chip-ID: 10de:1f11 class-ID: 0300 
  Device-3: Acer HD Webcam type: USB driver: N/A bus-ID: 1-13:5 
  chip-ID: 5986:211c class-ID: 0e02 
  Display: x11 server: X.Org 1.20.13 compositor: kwin_x11 driver: 
  loaded: modesetting,nvidia display-ID: :0 screens: 1 
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.0x11.2") 
  s-diag: 582mm (22.9") 
  Monitor-1: eDP-1 res: 1920x1080 hz: 144 dpi: 128 size: 382x215mm (15.0x8.5") 
  diag: 438mm (17.3") 
  OpenGL: renderer: Mesa Intel UHD Graphics 630 (CFL GT2) v: 4.6 Mesa 21.2.2 
  direct render: Yes 
Audio:
  Device-1: Intel Cannon Lake PCH cAVS vendor: Micro-Star MSI 
  driver: snd_hda_intel v: kernel alternate: snd_soc_skl,snd_sof_pci_intel_cnl 
  bus-ID: 00:1f.3 chip-ID: 8086:a348 class-ID: 0403 
  Device-2: NVIDIA TU106 High Definition Audio vendor: Micro-Star MSI 
  driver: snd_hda_intel v: kernel bus-ID: 01:00.1 chip-ID: 10de:10f9 
  class-ID: 0403 
  Sound Server-1: ALSA v: k5.14.7-2-MANJARO running: yes 
  Sound Server-2: JACK v: 1.9.19 running: no 
  Sound Server-3: PulseAudio v: 15.0 running: no 
  Sound Server-4: PipeWire v: 0.3.37 running: yes 
Network:
  Device-1: Intel Cannon Lake PCH CNVi WiFi 
  vendor: Rivet Networks Killer Wireless-AC 1550i Wireless driver: iwlwifi 
  v: kernel port: 6000 bus-ID: 00:14.3 chip-ID: 8086:a370 class-ID: 0280 
  IF: wlo1 state: up mac: <filter> 
  IP v4: <filter> type: dynamic noprefixroute scope: global 
  broadcast: <filter> 
  Device-2: Qualcomm Atheros Killer E2500 Gigabit Ethernet 
  vendor: Micro-Star MSI driver: alx v: kernel port: 3000 bus-ID: 05:00.0 
  chip-ID: 1969:e0b1 class-ID: 0200 
  IF: enp5s0 state: down mac: <filter> 
  IF-ID-1: nordlynx state: unknown speed: 10 Mbps duplex: full mac: N/A 
  IP v4: <filter> scope: global 
  WAN IP: <filter> 
Bluetooth:
  Message: No bluetooth data found. 
Logical:
  Message: No logical block device data found. 
RAID:
  Message: No RAID data found. 
Drives:
  Local Storage: total: 2.07 TiB used: 1.29 TiB (62.2%) 
  SMART Message: Unable to run smartctl. Root privileges required. 
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Kingston model: RBUSNS8154P3256GJ 
  size: 238.47 GiB block-size: physical: 512 B logical: 512 B speed: 15.8 Gb/s 
  lanes: 2 type: SSD serial: <filter> rev: E8FK11.C temp: 51.9 C scheme: GPT 
  ID-2: /dev/sda maj-min: 8:0 vendor: Western Digital 
  model: WDS100T2B0B-00YS70 size: 931.51 GiB block-size: physical: 512 B 
  logical: 512 B speed: 6.0 Gb/s type: SSD serial: <filter> rev: 00WD 
  scheme: GPT 
  ID-3: /dev/sdb maj-min: 8:16 vendor: KingSpec model: ACSC4M1TS25 
  size: 953.87 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s 
  type: SSD serial: <filter> rev: 4H scheme: GPT 
  Message: No optical or floppy data found. 
Partition:
  ID-1: / raw-size: 238.17 GiB size: 233.38 GiB (97.99%) 
  used: 119.9 GiB (51.4%) fs: ext4 dev: /dev/nvme0n1p2 maj-min: 259:2 
  label: N/A uuid: ade649ba-48e8-4bd1-9e1c-7878c6f77246 
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%) 
  used: 288 KiB (0.1%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1 
  label: NO_LABEL uuid: B822-64D2 
  ID-3: /run/media/rabcor/KingSpec raw-size: 953.87 GiB 
  size: 953.4 GiB (99.95%) used: 584.17 GiB (61.3%) fs: xfs dev: /dev/sdb1 
  maj-min: 8:17 label: N/A uuid: 7081018e-cce8-4d7d-b093-bb681ff46b8e 
  ID-4: /run/media/rabcor/WD raw-size: 931.51 GiB size: 931.51 GiB (100.00%) 
  used: 617.8 GiB (66.3%) fs: f2fs dev: /dev/sda1 maj-min: 8:1 
  label: Western Digital uuid: ae81d12d-6838-4833-b47b-8dd120364382 
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default) 
  ID-1: swap-1 type: file size: 8 GiB used: 0 KiB (0.0%) priority: -2 
  file: /swapfile 
Unmounted:
  Message: No unmounted partitions found. 
USB:
  Hub-1: 1-0:1 info: Full speed (or root) Hub ports: 16 rev: 2.0 
  speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900 
  Device-1: 1-2:2 info: Logitech Unifying Receiver type: Keyboard,Mouse,HID 
  driver: logitech-djreceiver,usbhid interfaces: 3 rev: 2.0 speed: 12 Mb/s 
  power: 98mA chip-ID: 046d:c52b class-ID: 0300 
  Device-2: 1-7:3 info: Realtek RTS5129 Card Reader Controller 
  type: <vendor specific> driver: rtsx_usb,rtsx_usb_ms,rtsx_usb_sdmmc 
  interfaces: 1 rev: 2.0 speed: 480 Mb/s power: 500mA chip-ID: 0bda:0129 
  class-ID: ff00 serial: <filter> 
  Device-3: 1-9:4 info: SteelSeries ApS SteelSeries KLC type: HID 
  driver: hid-generic,usbhid interfaces: 2 rev: 2.0 speed: 12 Mb/s 
  power: 300mA chip-ID: 1038:1122 class-ID: 0300 
  Device-4: 1-13:5 info: Acer HD Webcam type: Video driver: N/A interfaces: 2 
  rev: 2.0 speed: 480 Mb/s power: 500mA chip-ID: 5986:211c class-ID: 0e02 
  Hub-2: 2-0:1 info: Full speed (or root) Hub ports: 8 rev: 3.1 speed: 10 Gb/s 
  chip-ID: 1d6b:0003 class-ID: 0900 
Sensors:
  System Temperatures: cpu: 74.0 C mobo: N/A 
  Fan Speeds (RPM): N/A 
Info:
  Processes: 365 Uptime: 1d 10h 26m wakeups: 26 Init: systemd v: 249 
  tool: systemctl Compilers: gcc: 11.1.0 clang: 12.0.1 Packages: pacman: 1550 
  lib: 476 flatpak: 0 Shell: Bash v: 5.1.8 running-in: konsole inxi: 3.3.06 

msinfo: hastebin

Try an LTS version.

Have you tried a simple wired mouse yet from a different manufacturer? (Microsoft preferred)? Logitech is known for not supporting Linux at all and it’s up to the community to reverse-engineer their hardware so in a virtual environment, I’m expecting even more problems than usual.

[Pointing Device]

Item	Value	
Hardware Type	USB Input Device	
Number of Buttons	0	
Status	OK	
PNP Device ID	USB\VID_0627&PID_0001\28754-0000:00:02.1:00.0-1	
Power Management Supported	No	
Double Click Threshold	Not Available	
Handedness	Not Available	
Driver	C:\WINDOWS\SYSTEM32\DRIVERS\HIDUSB.SYS (10.0.19041.868, 43.00 KB (44,032 bytes), 4/9/2021 1:48 PM)	
		
Hardware Type	Remote Desktop Mouse Device	
Number of Buttons	0	
Status	OK	
PNP Device ID	TERMINPUT_BUS\UMB\2&2C22BCC9&0&SESSION1MOUSE0	
Power Management Supported	No	
Double Click Threshold	Not Available	
Handedness	Not Available	
Driver	C:\WINDOWS\SYSTEM32\DRIVERS\TERMINPT.SYS (10.0.19041.1, 40.30 KB (41,272 bytes), 12/7/2019 9:07 AM)	
		
Hardware Type	PS/2 Compatible Mouse	
Number of Buttons	0	
Status	OK	
PNP Device ID	ACPI\PNP0F13\4&22F5829E&0	
Power Management Supported	No	
Double Click Threshold	Not Available	
Handedness	Not Available	
IRQ Channel	IRQ 12	
Driver	C:\WINDOWS\SYSTEM32\DRIVERS\I8042PRT.SYS (10.0.19041.1, 115.50 KB (118,272 bytes), 12/7/2019 9:07 AM)	

I don’t have Windows handy, but 0 buttons looks suspicious. Have you tried setting Windows mouse properties yet?

[Serial]

Item	Value	
Name	Communications Port (COM1)	
Status	OK	

Do you need a serial port in the guest? If not: turn that off as I remember COM and USB mice interfering with one another.

sermouse	Serial Mouse Driver	c:\windows\system32\drivers\sermouse.sys	Kernel Driver	No	Manual	Stopped	OK	Normal	No	No	

(seems to be turned off already) :+1:

That’s all I can find: the rest looks OK.

:thinking:

1 Like

Yeah i tried with my touchpad, got the same kind of result.

The msinfo was taken while I was using xfreerdp so that’s probably the reason for that 0 buttons mouse (It says remote desktop mouse after all)

But I’m not sure why it would say 0 buttons. It’s not buttons I’m having problems with.

I also tried an LTS version before I had the same issues there, and the current LTS version is 5.10 if I recall, which is known to have issues with VMs, or at least VFIO.

Also I got lookign glass working, sorta, i can get it to display my screen but not receive input so my only way to use it right now is with passthrough’d peripherals which is not ideal

1 Like

I had a similar issue,everything I had in the VM was stuttering even though I had 60 FPS in my games there,I was investigating and found this

Looks like qemu lock the refresh rate at 30 hz,people ask for a fix to 60 hz but they hadn’t done it since 2018.
So then i modify a file in qemu to have the 60 FPS and then I compile and install it in my machine and now I have 60 FPS in eveything I did,even when I passthrough my mouse to the VM my cursor is smooth,maybe this can fix your issue.

Keep in mind you need Intel GVT-g,I don’t know if works with Looking Glass.

What I did is to fork the qemu latest master and modify the value,and then use the qemu-git package,modify the PKGBUILD source to point to my repository with the patch and then install it.

2 Likes

Ah just my luck that there are 8 aur packages for this and every last one of them is flagged out of date :sob:

But yes, I gotta try this.

Also wtf are the qemu devs thinking hardcoding something like this? >:(

2 Likes

I just noticed someone has created an AUR packages to my repository,I don’t know if its working though lol
https://aur.archlinux.org/packages/qemu-git-60fps

No idea :confused:

2 Likes

Since the qemu-git-60fps package is broken and your git repo for 60fps qemu is outdated anyways, I ended up just using yay to install qemu-git and then changed that one line in the source that is needed for 60fps before it started compiling.

Hacky as hell, but I couldn’t figure out how to patch it normally. Always ran into issues when I tried to use makepg and I couldn’t be assed to push through it till I’d get it working, so hacky solution it is.

And the verdict is… It worked!

Although I figured out partway through the compilation that I should probably be setting the interval to 6 rather than 16 to be able to support my 144hz, i think setting it to 6 sets the refresh rate of the vm to 166, although 7 sets it to 142, so I’m wondering which I should choose.

This value really should be soft-coded though so it can be changed in options, I mean… It’s pretty important to be able to get a smooth framerate in a VM or the experience is always gonna be pure shit.

Also, the git issue has been moved to here: GTK display refresh rate is throttled (#700) · Issues · QEMU / QEMU · GitLab

Edit: I tried setting the intervals to 6 for 165hz but it seems that gvt-g’s max supported refresh rate is 75 so setting the intervals to 13 is probably the best for people with high refresh rates on this kind of setup. I’m not sure if this limit is a property of qemu, spice or dma-buf (not sure if I’m using dma-buf in the first place, I kinda forgot)

I also noticed that the mouse is still laggy when using the mouse normally with the vm, but it’s smooth if i use passthrough/usb-redirect.


Edit2: I now noticed (or well, not the first time I care about it since things are otherwise workign now) that when I’m running a vm with GVT on it, my pc crashes (not just the vm, but host too) after maybe like 15-30 minutes of vm uptime. I looked around and tried to find methods to fix it but unless one of these kernel parameters fixes it: intel_idle.max_cstate=1 i915-enable_fbc=1 iommu=pt

(Got most of those suggestions from this related issue: GVT-g VM crashes and freezes the host · Issue #188 · intel/gvt-linux · GitHub )

Which I am testing now, i’ll be out of ideas. I mean the only other recommendation I found was to use kernel 5.11, which is exactly one of the kernels manjaro never used :sob: (apparently kernel 5.12 introduced some issues that might cause this, I suppose I can try 5.10 though if it comes down to it) and to update the igpu driver in the guest (which I have done too).

It seems to be going well though, been running a vm for 25 mins without crashing, crossing my fingers :crossed_fingers:

Edit 3: It seems like the kernel params at least helped make it so that the host will no longer crash, but the guest still does.

Actually got a proper error though:

nóv 02 20:31:45 kernel: gvt: guest page write error, gpa 3e0a2f020
nóv 02 20:31:45 kernel: gvt: vgpu 1: fail: shadow page 0000000000000000 guest entry 0xffffffffffffffff type 9
nóv 02 20:31:45 kernel: gvt: vgpu 1: fail: spt 00000000eb267442 guest entry 0xffffffffffffffff type 9
nóv 02 20:31:45 kernel: gvt: vgpu 1: fail: shadow page 00000000eb267442 guest entry 0xffffffffffffffff type 9.

There’s a git issue for it: gvt: guest page write error, gpa · Issue #120 · intel/gvt-linux · GitHub and Win10 vm keeps crashing using kvmgt · Issue #125 · intel/gvt-linux · GitHub

Trying again with 5.10 kernel…

Been running it on the 5.10 kernel for an hour without crashing, gonna try running it overnight and see if it survives that.

It’s a shame I’ll have to stick with the 5.10 kernel though until the regression in 5.12 regarding gvt is fixed, i was kinda looking forward to the 5.16 kernel; suppose I could just patch out the commit that causes the issue though… hope patching the kernel is not a pain on manjaro.

Edit 3: It crashed again, this time though it was afte 2 hours and 20 minutes, so the situation is definitely better since usually it crashes after only 30 minutes.

Same error.

Edit 4: I downgraded to the recommended driver and stuck to kernel 5.10, managed to run vm for 6 hours without issue.

2 Likes

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.