First time playing around with Looking glass.
Having issues getting it to work properly, need help tweaking my config and/or finding out what is causing this error.
Running VFIO setup through libvirt on Fedora 34 with SElinux running in permissive mode.
VFIO is verified working and everything with 80~ FPS in cyberpunk @ 1440p.
What am i doing wrong?
Host
Ryzen 9 5950x
Aorus master x570
GTX 1060 6GB
64GB DDR4 3600Mhz ram
1x Samsung EVO 980 Pro
Guest
Windows 10 Enterprise 17763
RTX 3080
16GB Ram
Q35 Chipset
1x Samsung EVO 980 Pro
Looking glass config:
set up through guides on ArchWiki and the official Looking Glass guide from looking-glass.io
tmp file exists and is modified on boot: /etc/tmpfiles.d/10-looking-glass.conf
[root@fedora tmpfiles.d]# cat 10-looking-glass.conf
#Type Path Mode UID GID Age Argument
touch /dev/shm/looking-glass
chown delta /dev/shm/looking-glass
f /dev/shm/looking-glass 0660 delta kvm -
also the looking glass “driver” from the SHMEM device from redhat for windows is installed.
I have tried both the bleeding edge version and the cutting edge version (both on client and host, respectively)
Running the looking glass .exe manually on window (after stopping the service) gives the following messages:
On linux:
Debug from looking-glass-client
Reading symbols from looking-glass-client...
(gdb) set args -F -k
(gdb) r
Starting program: /usr/local/bin/looking-glass-client -F -k
warning: Expected absolute pathname for libpthread in the inferior, but got .gnu_debugdata for /lib64/libpthread.so.0.
warning: File "/usr/lib64/libthread_db-1.0.so" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
To enable execution of this file add
add-auto-load-safe-path /usr/lib64/libthread_db-1.0.so
line to your configuration file "/home/delta/.gdbinit".
To completely disable this security protection add
set auto-load safe-path /
line to your configuration file "/home/delta/.gdbinit".
For more information about this security protection see the
"Auto-loading safe path" section in the GDB manual. E.g., run from the shell:
info "(gdb)Auto-loading safe path"
warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available.
1321217926 [I] main.c:1021 | main | Looking Glass (B3-94-g6358f35cb7)
1321217945 [I] main.c:1022 | main | Locking Method: Atomic
1321252964 [I] ivshmem.c:126 | ivshmemOpenDev | KVMFR Device : /dev/shm/looking-glass
[New LWP 6383]
1321279249 [I] egl.c:262 | egl_initialize | Double buffering is off
1321279260 [I] main.c:631 | tryRenderer | Using Renderer: EGL
[New LWP 6384]
1321285480 [I] gl.c:55 | waylandGetEGLDisplay | Using eglGetPlatformDisplay
1321292830 [E] egl.c:645 | egl_render_startup | Failed to create EGL surface (eglError: 0x3004)
[LWP 6384 exited]
[LWP 6383 exited]
[Inferior 1 (process 6379) exited with code 0377]
Missing separate debuginfos, use: dnf debuginfo-install SDL2-2.0.14-3.fc34.x86_64 SDL2_ttf-2.0.15-7.fc34.x86_64 bzip2-libs-1.0.8-6.fc34.x86_64 egl-wayland-1.1.6-2.fc34.x86_64 fontconfig-2.13.93-6.fc34.x86_64 freetype-2.10.4-3.fc34.x86_64 glib2-2.68.2-1.fc34.x86_64 glibc-2.33-8.fc34.x86_64 gmp-6.2.0-6.fc34.x86_64 graphite2-1.3.14-7.fc34.x86_64 harfbuzz-2.7.4-3.fc34.x86_64 libX11-1.7.0-3.fc34.x86_64 libX11-xcb-1.7.0-3.fc34.x86_64 libXScrnSaver-1.2.3-8.fc34.x86_64 libXau-1.0.9-6.fc34.x86_64 libXext-1.3.4-6.fc34.x86_64 libXfixes-5.0.3-14.fc34.x86_64 libXi-1.7.10-6.fc34.x86_64 libXinerama-1.1.4-8.fc34.x86_64 libbrotli-1.0.9-4.fc34.x86_64 libffi-3.1-28.fc34.x86_64 libgcc-11.1.1-1.fc34.x86_64 libglvnd-egl-1.3.3-1.fc34.x86_64 libglvnd-glx-1.3.3-1.fc34.x86_64 libpng-1.6.37-10.fc34.x86_64 libselinux-3.2-1.fc34.x86_64 libwayland-client-1.19.0-1.fc34.x86_64 libwayland-egl-1.19.0-1.fc34.x86_64 libwayland-server-1.19.0-1.fc34.x86_64 libxcb-1.13.1-7.fc34.x86_64 libxml2-2.9.10-12.fc34.x86_64 libxshmfence-1.3-8.fc34.x86_64 mesa-libEGL-21.0.3-2.fc34.x86_64 mesa-libgbm-21.0.3-2.fc34.x86_64 mesa-libglapi-21.0.3-2.fc34.x86_64 pcre-8.44-3.fc34.1.x86_64 pcre2-10.36-4.fc34.x86_64 sssd-client-2.4.2-3.fc34.x86_64 xz-libs-5.2.5-5.fc34.x86_64 zlib-1.2.11-26.fc34.x86_64
(gdb)
Vfio libvirt config XML:
<domain type='kvm'>
<name>win10</name>
<uuid>8ed66603-2831-4cb9-8972-c0c67d5c891a</uuid>
<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'>16521216</memory>
<currentMemory unit='KiB'>16521216</currentMemory>
<vcpu placement='static'>16</vcpu>
<iothreads>1</iothreads>
<cputune>
<vcpupin vcpu='0' cpuset='8'/>
<vcpupin vcpu='1' cpuset='24'/>
<vcpupin vcpu='2' cpuset='9'/>
<vcpupin vcpu='3' cpuset='25'/>
<vcpupin vcpu='4' cpuset='10'/>
<vcpupin vcpu='5' cpuset='26'/>
<vcpupin vcpu='6' cpuset='11'/>
<vcpupin vcpu='7' cpuset='27'/>
<vcpupin vcpu='8' cpuset='12'/>
<vcpupin vcpu='9' cpuset='28'/>
<vcpupin vcpu='10' cpuset='13'/>
<vcpupin vcpu='11' cpuset='29'/>
<vcpupin vcpu='12' cpuset='14'/>
<vcpupin vcpu='13' cpuset='30'/>
<vcpupin vcpu='14' cpuset='15'/>
<vcpupin vcpu='15' cpuset='31'/>
<emulatorpin cpuset='0-3'/>
<iothreadpin iothread='1' cpuset='4-7'/>
</cputune>
<os>
<type arch='x86_64' machine='pc-q35-5.2'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<hyperv>
<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='on'/>
<vendor_id state='on' value='fuckjensen'/>
</hyperv>
<kvm>
<hidden state='on'/>
</kvm>
<vmport state='off'/>
<ioapic driver='kvm'/>
</features>
<cpu mode='host-passthrough' check='none' migratable='off'>
<topology sockets='1' dies='1' cores='8' 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='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/var/lib/libvirt/images/LTSCX64.ENU.MAR2020.ISO'/>
<target dev='sdb' bus='sata'/>
<readonly/>
<address type='drive' controller='0' bus='0' target='0' unit='1'/>
</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='0x05' slot='0x00' function='0x0'/>
</controller>
<controller type='pci' index='8' model='pci-bridge'>
<model name='pci-bridge'/>
<target chassisNr='8'/>
<address type='pci' domain='0x0000' bus='0x07' slot='0x01' function='0x0'/>
</controller>
<controller type='pci' index='9' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='9' port='0x16'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
</controller>
<controller type='pci' index='10' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='10' port='0x17'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
</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:a2:02: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' autoport='yes'>
<listen type='address'/>
<image compression='off'/>
</graphics>
<sound model='ich9'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
</sound>
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</video>
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0000' bus='0x0c' slot='0x00' function='0x0'/>
</source>
<address type='pci' domain='0x0000' bus='0x09' slot='0x00' function='0x0'/>
</hostdev>
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0000' bus='0x0c' slot='0x00' function='0x1'/>
</source>
<address type='pci' domain='0x0000' bus='0x0a' slot='0x00' function='0x0'/>
</hostdev>
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</source>
<address type='pci' domain='0x0000' bus='0x06' 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'>64</size>
<address type='pci' domain='0x0000' bus='0x08' slot='0x01' function='0x0'/>
</shmem>
</devices>
</domain>