Thanks for the tips. I’ll give these a try later on today.
UPDATE: wow, what a difference! Played about an hour of Diablo II and it was glitch-free for the 1st time. Thanks again!
Thanks for the tips. I’ll give these a try later on today.
UPDATE: wow, what a difference! Played about an hour of Diablo II and it was glitch-free for the 1st time. Thanks again!
Maybe I was doing something wrong trying to edit the xml files yesteday.
When I reboot the changes are made.
I made most of the changes suggested here excluding the mouse and keyboard changes.
When trying to start the machine, it does not start and gives me this error about Spice audio.
I do have an entry that lists
<audio id="1" type="spice"/>
I’m not sure if I should and how I should change this.
I have no use for memballoon as it is part of a default configuration for VMs in my install of Virt-manager.
Great to know I don’t need it.
for your audio you can check this:
https://libvirt.org/formatdomain.html#sound-devices
But the below will probably work for you. If you experience crackling or or other audio issues you may have to add qemu options for pipewire latency settings or try usb audio sound model instead of ich9
Change:
<sound model="ich9">
<address type="pci" domain="0x0000" bus="0x00" slot="0x1b" function="0x0"/>
</sound>
<audio id="1" type="spice"/>
To:
<sound model="ich9">
<codec type="micro"/>
<audio id="1"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x1b" function="0x0"/>
</sound>
<audio id="1" type="pulseaudio" serverName="/run/user/1000/pulse/native">
<input mixingEngine="no"/>
<output mixingEngine="no"/>
</audio>
The mixingEngine section flags are optional: It controls whether the host mixing engine is used to convert between different audio formats and sampling rates. When the mixing engine is disabled it is possible to make use of improved audio formats such as 5.1/7.1. If not specified, a hypervisor default applies.
You’re welcome @ajgringo619
additional feature flags to consider:
https://libvirt.org/formatdomain.html#hypervisor-features
<features>
...
...
<hyperv mode='custom'>
<relaxed state='on'/>
<vapic state='on'/>
<spinlocks state='on' retries='8191'/>
<vpindex state='on'/>
<runtime state='on'/>
<synic state='on'/>
<stimer state="on"/>
<reset state='off'/>
<vendor_id state='on' value='whatever'/>
<frequencies state='on'/>
<reenlightenment state='off'/>
<tlbflush state='on'/>
<ipi state='on'/>
<evmcs state='off'/>
</hyperv>
<kvm>
<hidden state="on"/>
</kvm>
...
<ioapic driver='kvm'/>
</features>
why? how is evdev better at all? it doesn’t even pass through the actual device, it only passes in the inputs and outputs, and ive had serious performance issues with it. you also cant pass through any other USB devices or use the software for a mouse or keyboard.
Let’s say for example you only have or want to use a single set of keyboard & mouse. In my setup I switch between VM and host a lot, and evdev is the perfect solution. No performance issues.