Looking Glass - Triage

Right

Im crying lmao, sorry for the trouble

No problem, my bad, I thought it was a typo in your original post.

If you want the binary in the /bin directory you would have to copy it as root although it is not recommended to copy your own binaries there I think.

Just curious if anyone has gotten this working on Arch or Antegros? Cause apparently that’s the majority of people using VFIO.

check the previous posts. Plenty have, just avoid the AUR package that some jerkoff based on the dev branch

1 Like

Correct.

The correct place to put binaries you do yourself would be either in /opt or in /home/$USER/bin. Then create appropriate symlinks to /usr/local/bin or in .bashrc to add to PATH.

I myself prefer to place in the /opt.

Then I link:

sudo ln -s /opt/foo/bar.sh /usr/local/bin/foobar

The looking-glass package current PKGBUILD uses the A11 archive and does the correct build steps so I’d say it’s safe to use.

And looking at the commits it uses the tagged release and correct build steps since it’s inception (December 2017).

I think you’re talking about the looking-glass-git bleeding-edge package which since 6 days warns users to either grab the bleeding-edge windows host or use the tagged release version.

So any tips regarding my subpar performance? I feel like swapping the DVI cable by hand might be less hassle for now.

i didn’t say all packages in the AUR

Hi gnif,
This would be usefull for compressed copy only right ? Or is it somehow also affecting the raw copy ?

I have the exact same question.

At the moment I have a nv 970 and have my eye on a Firepro W4100 for connectivity reasons, triple 1440p monitors and thinking about a fourth monitor for gaming.
I don’t have any experience in gpu passthrough yet, but the Looking Glass technology makes me very excited.
Would an Firepro W4100 make a good host gpu?

Does it support OpenGL? If so, then yes…

I guess I figured it out. When lowering resolution, adjusting the size of the IVSHMEM accordingly helps a lot (duh). At 1024x768 with vsync off the performance and input lag were acceptable. Looks like I’ll stick to switching the monitor input by hand.

Thanks so much, gnif. I’m really looking forward to getting this working.

Trying to set up in windows now, but I don’t see “PCI standard RAM Controller” anywhere in the device manager. Here’s what’s listed under “System devices”:

system devices listed in windows
  • ACPI Fixed Feature Button
  • ACPI Processor Container Device
  • Composite Bus Enumerator
  • CPU to PCI bridge
  • Extended IO bus
  • Extended IO bus
  • Extended IO bus
  • High Definition Audio Controller
  • High Definition Audio Controller
  • High Definition Audio Controller
  • High Definition Audio Controller
  • High Definition Audio Controller
  • Microsoft ACPI-Compliant System
  • Microsoft Basic Display Driver
  • Microsoft Basic Render Driver
  • Microsoft System Management BIOS Driver
  • Microsoft Virtual Drive Enumerator
  • NDIS Virtual Network Adapter Enumerator
  • NoMachine USB Adapter
  • NVVHCI Enumerator
  • PCI Bus
  • PCI to ISA Bridge
  • Plug and Play Software Device Enumerator
  • Remote Desktop Device Redirector Bus
  • System CMOS / real time clock
  • UMBus Root Bus Enumerator
  • VirtIO Balloon Driver
  • VirtIO Balloon Driver
  • VirtIO Balloon Driver
  • VirtIO Balloon Driver
  • VirtIO Serial Driver
  • Volume Manager

Judging from some previous posts in this thread, I suspect this might be due to XML config for the VM. In case that’s true, let me include that here as well:

XML
<domain type='kvm' id='1'>
  <name>Windows 10</name>
  <uuid>6ab1f35a-0cdf-4d58-bab4-8932f6152b90</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/>
  </metadata>
  <memory unit='KiB'>20971520</memory>
  <currentMemory unit='KiB'>20971520</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>8</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='4'/>
    <vcpupin vcpu='1' cpuset='5'/>
    <vcpupin vcpu='2' cpuset='6'/>
    <vcpupin vcpu='3' cpuset='7'/>
    <vcpupin vcpu='4' cpuset='8'/>
    <vcpupin vcpu='5' cpuset='9'/>
    <vcpupin vcpu='6' cpuset='10'/>
    <vcpupin vcpu='7' cpuset='11'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.10'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/6ab1f35a-0cdf-4d58-bab4-8932f6152b90_VARS-pure-efi.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
      <vendor_id state='on' value='none'/>
    </hyperv>
  </features>
  <cpu mode='host-passthrough' check='none'>
    <topology sockets='1' cores='8' threads='1'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='hypervclock' present='yes'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/local/sbin/qemu</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/domains/Windows 10/vdisk1.img'/>
      <backingStore/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <alias name='virtio-disk2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source dev='/dev/sdc'/>
      <backingStore/>
      <target dev='hdd' bus='virtio'/>
      <alias name='virtio-disk3'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/boot/firmware/virtio-win-0.1.141-andras4.iso'/>
      <backingStore/>
      <target dev='hdb' bus='ide'/>
      <readonly/>
      <alias name='ide0-0-1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <alias name='usb'/>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <alias name='usb'/>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <alias name='usb'/>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='ide' index='0'>
      <alias name='ide'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:21:54:a0'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/0'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/0'>
      <source path='/dev/pts/0'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-1-Windows 10/org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='mouse' bus='ps2'>
      <alias name='input0'/>
    </input>
    <input type='keyboard' bus='ps2'>
      <alias name='input1'/>
    </input>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x08' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x08' slot='0x00' function='0x1'/>
      </source>
      <alias name='hostdev1'/>
      <rom file='/boot/firmware/KVM.EVGA.GTX970.4096.140930.rom'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0a' slot='0x00' function='0x3'/>
      </source>
      <alias name='hostdev2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x09' slot='0x00' function='0x3'/>
      </source>
      <alias name='hostdev3'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
    </hostdev>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/>
    </memballoon>
  </devices>
  <seclabel type='dynamic' model='dac' relabel='yes'>
    <label>+0:+100</label>
    <imagelabel>+0:+100</imagelabel>
  </seclabel>
</domain>

I appreciate any help I can get on this :slight_smile:

https://looking-glass.hostfission.com/quickstart/linux/libvirt

Are most of you all with ups drops using antialiasing in games? I had ups drops in nier automata until I disabled antialiasing, and that game only is locked to 60fps.

Also anyone here upgrade from ryzen to ryzen 2 and notice improvements to looking Glass performance?

nier automata seems to be a problem child regardless

You just wait until the unoptimized mess that is Monster Hunter World… You gotta have a Threadripper CPU to run that bare metal.

what does that have to do with anything

also unoptimized code wouldn’t benefit from multithreading

You were talking about games with bad performance…