I used Virtualbox first, switched to GNOME Boxes, then to Virt-manager as it was said to be better.
But in the end, at least on my Laptop, it sucks extremely. I have no OpenGL and extreme lag. Saw a Video about setting up QEMU, followed instructions and the result was very fast, but the viewer was not good.
I am using my existing virt-manager images, read them and display as a kdialog. There I choose it, the choice gets piped into the qemu command. Afterwards the display opens.
Either I have spice working but no OpenGL, or I have VNC and OpenGL but its very slow anyways.
Fedora KDE (Kinoite), Amd graphics card laptop
Edit: some more details.
I want a fast, wayland-native client. Some AI told me spice-gtk is the only one there, which would be not that nice on KDE as it would pull all the GTK dependencies.
Can you run all that stuff in a Podman container? I would just use a Fedora39 Distrobox then.
I used this script before:
#!/bin/bash
# Define the directory where qcow2 images are stored
IMAGE_DIR="/var/lib/libvirt/images/"
# Get a list of qcow2 images in the directory
IMAGE_LIST=$(pkexec sudo ls "$IMAGE_DIR" | grep -E '\.qcow2$')
# Create an array for the menu items
menu_items=()
# Populate the array with tag-item pairs
for image in ${IMAGE_LIST[@]}; do
menu_items+=("$image" "${image%.qcow2}")
done
# Use kdialog to display a menu and get the selected image
selected_image=$(kdialog --menu "Select a qcow2 image:" "${menu_items[@]}" --title "QEMU Launcher")
# Check if the user selected an image
if [ -n "$selected_image" ]; then
# QEMU with Virt-Viewer
pkexec sudo qemu-system-x86_64 -enable-kvm -cpu host -smp 4 -m 8192 -device virtio-gpu-gl -display spice-app,gl=on -drive file=${IMAGE_DIR}${selected_image},format=qcow2
else
# User canceled or closed the dialog
echo "Operation canceled by user."
fi
# Use remote-viewer with title
virt-viewer spice+unix:///tmp/.RTN4C2/spice.sock --title "QEMU - ${selected_image%.qcow2}"
# or this viewer?
# remote-viewer spice://localhost:5900 --title "QEMU - ${selected_image%.qcow2}"
# or spice-gtk?
You need virtio. If you have an internal GPU check out https://looking-glass.io for maximum performance.
So with this, you would use your internal GPU for the host OS, you dedicate your powerful GPU to a VM, then you can access it from the host?
Yes
I have a Laptop with AMD Vega graphics, kinda dedicated and virtualization enabled
Are you a bot or a human?
Yes.
its a hard sentence to read for sure lol
I only asked because they have the bot icon next to their name.
What client do you use? I see no such thing.
Jerboa
ah I am using liftoff, maybe it doesn’t support it, just logged into via webpage and I do now
Yeah you’re always going to have poor video performance in VMs unless you do stuff like gpu pass through which isn’t practical on a laptop.
No i meant having any GPU at all. Currently either I cant connect to that VM, or its slow
If your guest OS is Linux, you can use Virgl to get much better OpenGL performance in the VM.
Already installed that!
what Guest OS are you running? IF it is windows, the opengl driver is still a WIP and hasnt been merged yet IIRC.
I always reccomend using qemu cli, for qemu-cli you can do something like
-device virtio-gpu-gl -display spice-app,gl=on
or if you are doing remote VMs you can use a remote spice viewer and connect to the port like so
-device virtio-gpu-gl -display egl-headless -spice port=3001,disable-ticketing
EDIT: for more reading, you can go through these docs I wrote for bliss. they are oriented more for android but they are still widely applicable https://docs.blissos.org/installation/install-in-a-virtual-machine/advanced-qemu-config/