Windows Host Application Not Working [SOLVED]

Hello All,
I have been piecing together a few different guides on setting up a VM for GPU pass through. My main machine is on Fedora 31. VM to Windows 10 and connected to another input on my main display.

I have been trying to setup Looking Glass after I spent a few days making sure the VM was working. I have the client for Release/B1 running but it only displays a Purple screen. I have tried to run the Host application through Task Scheduler and manually with Run as Administrator and nothing happens.

Here is the config file for my vm and the looking-glass-host.txt log file form the Host application

Vm Config
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>win10</name>
  <uuid>f9e8477c-2ce4-4405-afde-276e5a0fa7b3</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'>33554432</memory>
  <currentMemory unit='KiB'>33554432</currentMemory>
  <vcpu placement='static'>16</vcpu>
  <os>
    <type arch='x86_64' machine='pc-q35-4.1'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/edk2/ovmf/OVMF_CODE.fd</loader>
    <nvram>/var/lib/libvirt/qemu/nvram/win10_VARS.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
    <kvm>
      <hidden state='on'/>
    </kvm>
    <vmport state='off'/>
  </features>
  <cpu mode='host-model' check='partial'>
    <model fallback='allow'/>
    <topology sockets='1' cores='16' threads='1'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </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='block' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <source dev='/dev/disk/by-id/nvme-WDBRPG0010BNC-WRSN_193999441002'/>
      <target dev='sda' bus='sata'/>
      <boot order='1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/usr/share/virtio-win/virtio-win.iso'/>
      <target dev='sdb' bus='sata'/>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <source dev='/dev/disk/by-id/nvme-WDS100T3X0C-00SJG0_184890621091'/>
      <target dev='sdc' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='2'/>
    </disk>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <source dev='/dev/disk/by-id/wwn-0x5001b448b67cf086'/>
      <target dev='sdd' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='3'/>
    </disk>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <source dev='/dev/disk/by-id/wwn-0x5001b448b42a8978'/>
      <target dev='sde' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='4'/>
    </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-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='7' port='0x16'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
    </controller>
    <controller type='pci' index='8' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='8' port='0x17'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
    </controller>
    <controller type='pci' index='9' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='9' port='0x18'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <controller type='pci' index='10' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='10' port='0x8'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </controller>
    <controller type='pci' index='11' model='pcie-to-pci-bridge'>
      <model name='pcie-pci-bridge'/>
      <address type='pci' domain='0x0000' bus='0x09' 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:23:91:26'/>
      <source network='default'/>
      <model type='e1000e'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>
    <input type='mouse' bus='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0e' function='0x0'/>
    </input>
    <input type='keyboard' bus='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0f' function='0x0'/>
    </input>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x0c' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x04' 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='0x05' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x0c' slot='0x00' function='0x2'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x0c' slot='0x00' function='0x3'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x19ff'/>
        <product id='0x0239'/>
      </source>
      <address type='usb' bus='0' port='1'/>
    </hostdev>
    <redirdev bus='usb' type='spicevmc'>
      <address type='usb' bus='0' port='3'/>
    </redirdev>
    <redirdev bus='usb' type='spicevmc'>
      <address type='usb' bus='0' port='4'/>
    </redirdev>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x08' slot='0x00' function='0x0'/>
    </memballoon>
    <shmem name='looking-glass-iv'>
      <model type='ivshmem-plain'/>
      <size unit='M'>64</size>
    </shmem>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='host,hv_time,kvm=off,hv_vendor_id=null'/>
    <qemu:arg value='-object'/>
    <qemu:arg value='input-linux,id=mouse1,evdev=/dev/input/by-id/usb-Logitech_USB_Receiver-if01-event-mouse'/>
    <qemu:arg value='-object'/>
    <qemu:arg value='input-linux,id=kbd1,evdev=/dev/input/by-id/usb-SONiX_USB_Keyboard-event-kbd,grab_all=on,repeat=on'/>
  </qemu:commandline>
</domain>
looking-glass-host.txt

I] app.c:350 | app_main | Looking Glass Host (B1-rc6-6-gb979752989+1)
[I] app.c:351 | app_main | IVSHMEM Size : 64 MiB
[I] app.c:357 | app_main | IVSHMEM Address : 0x2910000
[I] app.c:366 | app_main | Max Cursor Size : 1 MiB
[I] app.c:367 | app_main | Max Frame Size : 31 MiB
[I] app.c:368 | app_main | Cursor : 0x2910080 (0x00000080)
[I] app.c:374 | app_main | Frame 0 : 0x2A10080 (0x00100080)
[I] app.c:374 | app_main | Frame 1 : 0x4990000 (0x02080000)
[I] app.c:381 | app_main | Trying : NVFBC (NVidia Frame Buffer Capture)
[I] wrapper.cpp:88 | NvFBCInit | NvFBC SDK Version: 112
[I] app.c:381 | app_main | Trying : DXGI
[I] dxgi.c:322 | dxgi_init | Device Descripion: NVIDIA GeForce RTX 2080
[I] dxgi.c:323 | dxgi_init | Device Vendor ID : 0x10de
[I] dxgi.c:324 | dxgi_init | Device Device ID : 0x1e82
[I] dxgi.c:325 | dxgi_init | Device Video Mem : 8010 MiB
[I] dxgi.c:326 | dxgi_init | Device Sys Mem : 0 MiB
[I] dxgi.c:327 | dxgi_init | Shared Sys Mem : 16383 MiB
[I] dxgi.c:328 | dxgi_init | Feature Level : 0xc100
[I] dxgi.c:329 | dxgi_init | Capture Size : 3840 x 2160
[I] dxgi.c:418 | dxgi_init | Source Format : DXGI_FORMAT_R16G16B16A16_FLOAT
[E] dxgi.c:426 | dxgi_init | Unsupported source format
[E] app.c:398 | app_main | Failed to find a supported capture interface

Thank you for any help you can provide.

From Windows Vista and subsequent versions, you can see this feature. As RAM access is much faster than hard drive access and provides a faster-operating speed, SuperFetch fetches data from the RAm instead of the hard disk. SuperFetch does the work more efficiently by managing the amount of random access in your Windows device.

Im not sure how superfetch has anything to do with this issue

1 Like

This is the issue, you’re monitor is running an unsupported color depth.

DXGI_FORMAT_R16G16B16A16_FLOAT - A four-component, 64-bit floating-point format that supports 16 bits per channel including alpha.

What is your monitor? this is the first time I have seen this format in use by DXGI ever.

2 Likes

Sorry for not responding with this earlier. I recently got the host working. If I disable HDR on the Windows desktop the Host Application works with out an issue. This is still a problem for me personally because I use HDR for a few of the games I play. The TV I use is a LG OLED55B9PUA.
Thanks again for your help.

LG was never designed to support HDR and it’s doubtful you will get decent performance as 64 bit per pixel doubles the required bandwidth and ram usage.

That is sad but understandable. For now my workaround will be to just to switch the input on my TV and not use Looking Glass if I am using HDR. Besides that everything is working perfectly.
Thanks for your work on Looking Glass, and your help explaing that to me.

1 Like