Looking Glass B7 RC1: looking for ways to improve performance

Hey there!

I finally found the time to set-up Looking Glass a week ago, and so far I’ve made great progress. First the switch to the Kernel module, made possible thanks to a kind soul on this forum who spotted the error in my config. Then I’ve upgraded to B7 RC1 and now were talking! There’s still a big performance hit though, although nowhere near as bad as with B6.

Some benchmarks for comparison:


This with Looking Glass B7 RC1. The score with the previous version was around 9000. A huge performance increase!


Now this is the score without Looking Glass, the GPU being directly connected to the monitor.

As you can see, using Looking Glass comes with a performance penalty of roughly 20%.

I am sure there’s still room for improvements here! I assume my set-up isn’t that optimized yet (again, it has only been a week, so …).

I’ll go ahead and post as much information as possible, in the hopes someone spots a thing or two that can be tweaked.

System Specs
  • NovaCustom V54 Laptop (Product Page)
  • Intel® Core™ Ultra 7 Processor 155H (6P,8E,2LPE - 16C/22T), up to 4.8Ghz
  • 64 GB DDR5 SO-DIMM
  • Intel Arc Graphics Meteor-Lake iGPU
  • NVIDIA GeForceRTX 3060 Ti Founders Edition (eGPU via OCuLink)
Full XML of my VM
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>Gaming</name>
  <uuid>b7f5a6fa-a759-47a9-8512-21550245c11a</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'>16777216</memory>
  <currentMemory unit='KiB'>16777216</currentMemory>
  <memoryBacking>
    <hugepages/>
  </memoryBacking>
  <vcpu placement='static'>8</vcpu>
  <iothreads>1</iothreads>
  <cputune>
    <vcpupin vcpu='0' cpuset='1'/>
    <vcpupin vcpu='1' cpuset='2'/>
    <vcpupin vcpu='2' cpuset='3'/>
    <vcpupin vcpu='3' cpuset='4'/>
    <vcpupin vcpu='4' cpuset='6'/>
    <vcpupin vcpu='5' cpuset='7'/>
    <vcpupin vcpu='6' cpuset='8'/>
    <vcpupin vcpu='7' cpuset='9'/>
    <emulatorpin cpuset='0,5'/>
    <iothreadpin iothread='1' cpuset='10-11'/>
  </cputune>
  <os firmware='efi'>
    <type arch='x86_64' machine='pc-q35-9.1'>hvm</type>
    <firmware>
      <feature enabled='no' name='enrolled-keys'/>
      <feature enabled='no' name='secure-boot'/>
    </firmware>
    <loader readonly='yes' type='pflash'>/usr/share/edk2/x64/OVMF_CODE.fd</loader>
    <nvram template='/usr/share/edk2/x64/OVMF_VARS.fd'>/var/lib/libvirt/qemu/nvram/Gaming_VARS.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv mode='custom'>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
      <vpindex state='on'/>
      <synic state='on'/>
      <stimer state='on'/>
      <reset state='on'/>
      <frequencies state='on'/>
    </hyperv>
    <vmport state='off'/>
  </features>
  <cpu mode='host-passthrough' check='none' migratable='off'>
    <topology sockets='1' dies='1' clusters='1' cores='4' threads='2'/>
    <cache mode='passthrough'/>
    <maxphysaddr mode='passthrough' limit='40'/>
  </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='disk'>
      <driver name='qemu' type='raw' cache='none' io='threads' discard='unmap'/>
      <source file='/var/lib/libvirt/images/win10.img'/>
      <target dev='sda' bus='scsi'/>
      <boot order='1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </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='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' multifunction='on'/>
    </controller>
    <controller type='pci' index='10' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='10' port='0x19'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
    </controller>
    <controller type='pci' index='11' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='11' port='0x1a'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/>
    </controller>
    <controller type='pci' index='12' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='12' port='0x1b'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x3'/>
    </controller>
    <controller type='pci' index='13' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='13' port='0x1c'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x4'/>
    </controller>
    <controller type='pci' index='14' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='14' port='0x1d'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x5'/>
    </controller>
    <controller type='pci' index='15' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='15' port='0x8'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </controller>
    <controller type='pci' index='16' model='pcie-to-pci-bridge'>
      <model name='pcie-pci-bridge'/>
      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
    </controller>
    <controller type='scsi' index='0' model='virtio-scsi'>
      <driver queues='8' iothread='1'/>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </controller>
    <controller type='sata' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <interface type='network'>
      <mac address='52:54:00:1d:35:91'/>
      <source network='default'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
    </interface>
    <input type='mouse' bus='virtio'>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </input>
    <input type='keyboard' bus='virtio'>
      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
    </input>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <graphics type='spice' port='-1' autoport='no'>
      <listen type='address'/>
      <image compression='off'/>
      <gl enable='no'/>
    </graphics>
    <sound model='ich9'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
    </sound>
    <audio id='1' type='pipewire' runtimeDir='/run/user/1000'>
      <input name='qemuinput'/>
      <output name='qemuoutput'/>
    </audio>
    <video>
      <model type='none'/>
    </video>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x01' 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='0x01' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x08' slot='0x00' function='0x0'/>
    </hostdev>
    <watchdog model='itco' action='reset'/>
    <memballoon model='none'/>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='{&quot;driver&quot;:&quot;ivshmem-plain&quot;,&quot;id&quot;:&quot;shmem0&quot;,&quot;memdev&quot;:&quot;looking-glass&quot;}'/>
    <qemu:arg value='-object'/>
    <qemu:arg value='{&quot;qom-type&quot;:&quot;memory-backend-file&quot;,&quot;id&quot;:&quot;looking-glass&quot;,&quot;mem-path&quot;:&quot;/dev/kvmfr0&quot;,&quot;size&quot;:33554432,&quot;share&quot;:true}'/>
  </qemu:commandline>
</domain>

I’ll run some games to gather some logs and will post them here as well!

Looking Glass Client Log - launched via "looking-glass-client -f /dev/kvmfr0"
00:00:00.000 [I]              main.c:1859 | main                           | Looking Glass (B7-rc1)
00:00:00.000 [I]              main.c:1860 | main                           | Locking Method: Atomic
00:00:00.000 [I]           cpuinfo.c:38   | cpuInfo_log                    | CPU Model: Intel(R) Core(TM) Ultra 7 155H
00:00:00.000 [I]           cpuinfo.c:39   | cpuInfo_log                    | CPU: 1 sockets, 16 cores, 22 threads
00:00:00.005 [I]              main.c:1185 | lg_run                         | Using font: /usr/share/fonts/TTF/DejaVuSansMono.ttf
00:00:00.005 [I]           ivshmem.c:128  | ivshmemOpenDev                 | KVMFR Device     : /dev/kvmfr0
00:00:00.009 [I]             audio.c:159  | audio_init                     | Using AudioDev: PipeWire
00:00:00.009 [I]                ps.c:245  | purespice_connect              | Connecting to socket 127.0.0.1:5900
00:00:00.019 [I]               rsa.c:178  | rsa_encryptPassword            | Using Nettle
00:00:00.020 [I]                ps.c:268  | purespice_connect              | Connected
00:00:00.020 [I]      channel_main.c:167  | onMessage_mainName             | Guest name: Gaming
00:00:00.020 [I]      channel_main.c:183  | onMessage_mainUUID             | Guest UUID: b7f5a6fa-a759-47a9-8512-21550245c11a
00:00:00.028 [I]                ps.c:644  | ps_connectChannel              | INPUTS channel connected
00:00:00.028 [I]           channel.c:323  | onMessage_notify               | [notify] keyboard channel is insecure
00:00:00.029 [I]               egl.c:289  | egl_initialize                 | Double buffering is off
00:00:00.029 [I]              main.c:1139 | tryRenderer                    | Using Renderer: EGL
00:00:00.029 [I]           wayland.c:120  | waylandInit                    | Compositor: kwin_wayland_wr
00:00:00.029 [I]           wayland.c:130  | waylandInit                    | Selected  : xdg
00:00:00.038 [I]                gl.c:58   | waylandGetEGLDisplay           | Using eglGetPlatformDisplay
00:00:00.046 [I]               egl.c:856  | egl_renderStartup              | Single buffer mode
00:00:00.048 [I]               egl.c:883  | egl_renderStartup              | EGL     : 1.5
00:00:00.048 [I]               egl.c:884  | egl_renderStartup              | Vendor  : Intel
00:00:00.048 [I]               egl.c:885  | egl_renderStartup              | Renderer: Mesa Intel(R) Arc(tm) Graphics (MTL)
00:00:00.048 [I]               egl.c:886  | egl_renderStartup              | Version : OpenGL ES 3.2 Mesa 24.2.6-arch1.1
00:00:00.048 [I]               egl.c:887  | egl_renderStartup              | EGL APIs: OpenGL OpenGL_ES 
00:00:00.048 [I]               egl.c:958  | egl_renderStartup              | Debug messages disabled, enable with egl:debug=true
00:00:00.070 [I]           eglutil.c:35   | swapWithDamageInit             | Using EGL_KHR_swap_buffers_with_damage
00:00:00.083 [I]              main.c:1491 | lg_run                         | ================================================================================
00:00:00.083 [I]              main.c:1492 | lg_run                         | The host application seems to not be running
00:00:00.083 [I]              main.c:1493 | lg_run                         | Waiting for the host application to start...
00:00:00.376 [I]              main.c:1498 | lg_run                         | ================================================================================
00:00:00.376 [I]              main.c:1512 | lg_run                         | Check the host log in your guest at %ProgramData%\Looking Glass (host)\looking-glass-host.txt
00:00:00.376 [I]              main.c:1513 | lg_run                         | Continuing to wait...
00:00:27.565 [I]              main.c:1590 | lg_run                         | Guest Information:
00:00:27.565 [I]              main.c:1591 | lg_run                         | Version  : B7-rc1
00:00:27.565 [I]              main.c:1612 | lg_run                         | UUID     : b7f5a6fa-a759-47a9-8512-21550245c11a
00:00:27.565 [I]              main.c:1621 | lg_run                         | CPU Model: Intel(R) Core(TM) Ultra 7 155H
00:00:27.565 [I]              main.c:1622 | lg_run                         | CPU      : 1 sockets, 4 cores, 8 threads
00:00:27.565 [I]              main.c:1624 | lg_run                         | Using    : D12
00:00:27.565 [I]              main.c:1710 | lg_run                         | OS       : Windows
00:00:27.565 [I]              main.c:1712 | lg_run                         | OS Name  : Windows 10 Pro (Build: 19045) 
00:00:27.565 [I]              main.c:1734 | lg_run                         | Starting session
00:00:27.566 [I]              main.c:553  | main_frameThread               | Using DMA buffer support
00:00:28.044 [I]              main.c:710  | main_frameThread               | Format: FRAME_TYPE_BGRA 1920x1080 (1920x1080) stride:1920 pitch:7680 rotation:0 hdr:0 pq:0
00:00:33.108 [I]              main.c:710  | main_frameThread               | Format: FRAME_TYPE_BGRA 1920x1080 (1920x1080) stride:1920 pitch:7680 rotation:0 hdr:0 pq:0
00:01:39.407 [I]              main.c:710  | main_frameThread               | Format: FRAME_TYPE_BGRA 1920x1080 (1920x1080) stride:1920 pitch:7680 rotation:0 hdr:0 pq:0
00:07:05.045 [I]              main.c:710  | main_frameThread               | Format: FRAME_TYPE_BGRA 1920x1080 (1920x1080) stride:1920 pitch:7680 rotation:0 hdr:0 pq:0
00:09:12.576 [I]              main.c:1752 | lg_run                         | Waiting for the host to restart...
00:09:13.119 [I]              main.c:1590 | lg_run                         | Guest Information:
00:09:13.119 [I]              main.c:1591 | lg_run                         | Version  : B7-rc1
00:09:13.119 [I]              main.c:1612 | lg_run                         | UUID     : b7f5a6fa-a759-47a9-8512-21550245c11a
00:09:13.119 [I]              main.c:1621 | lg_run                         | CPU Model: Intel(R) Core(TM) Ultra 7 155H
00:09:13.120 [I]              main.c:1622 | lg_run                         | CPU      : 1 sockets, 4 cores, 8 threads
00:09:13.120 [I]              main.c:1624 | lg_run                         | Using    : D12
00:09:13.120 [I]              main.c:1710 | lg_run                         | OS       : Windows
00:09:13.120 [I]              main.c:1712 | lg_run                         | OS Name  : Windows 10 Pro (Build: 19045) 
00:09:13.120 [I]              main.c:1734 | lg_run                         | Starting session
00:09:13.120 [I]              main.c:553  | main_frameThread               | Using DMA buffer support
00:09:13.394 [I]              main.c:710  | main_frameThread               | Format: FRAME_TYPE_BGRA 1920x1080 (1920x1080) stride:1920 pitch:7680 rotation:0 hdr:0 pq:0
00:09:17.271 [I]              main.c:1590 | lg_run                         | Guest Information:
00:09:17.271 [I]              main.c:1591 | lg_run                         | Version  : B7-rc1
00:09:17.271 [I]              main.c:1612 | lg_run                         | UUID     : b7f5a6fa-a759-47a9-8512-21550245c11a
00:09:17.271 [I]              main.c:1621 | lg_run                         | CPU Model: Intel(R) Core(TM) Ultra 7 155H
00:09:17.271 [I]              main.c:1622 | lg_run                         | CPU      : 1 sockets, 4 cores, 8 threads
00:09:17.271 [I]              main.c:1624 | lg_run                         | Using    : D12
00:09:17.271 [I]              main.c:1710 | lg_run                         | OS       : Windows
00:09:17.271 [I]              main.c:1712 | lg_run                         | OS Name  : Windows 10 Pro (Build: 19045) 
00:09:17.271 [I]              main.c:1734 | lg_run                         | Starting session
00:09:17.272 [I]              main.c:553  | main_frameThread               | Using DMA buffer support
00:09:17.528 [I]              main.c:710  | main_frameThread               | Format: FRAME_TYPE_BGRA 1920x1080 (1920x1080) stride:1920 pitch:7680 rotation:0 hdr:0 pq:0
00:09:22.396 [I]              main.c:1590 | lg_run                         | Guest Information:
00:09:22.396 [I]              main.c:1591 | lg_run                         | Version  : B7-rc1
00:09:22.396 [I]              main.c:1612 | lg_run                         | UUID     : b7f5a6fa-a759-47a9-8512-21550245c11a
00:09:22.396 [I]              main.c:1621 | lg_run                         | CPU Model: Intel(R) Core(TM) Ultra 7 155H
00:09:22.396 [I]              main.c:1622 | lg_run                         | CPU      : 1 sockets, 4 cores, 8 threads
00:09:22.396 [I]              main.c:1624 | lg_run                         | Using    : D12
00:09:22.396 [I]              main.c:1710 | lg_run                         | OS       : Windows
00:09:22.396 [I]              main.c:1712 | lg_run                         | OS Name  : Windows 10 Pro (Build: 19045) 
00:09:22.396 [I]              main.c:1734 | lg_run                         | Starting session
00:09:22.397 [I]              main.c:553  | main_frameThread               | Using DMA buffer support
00:09:23.638 [I]              main.c:1752 | lg_run                         | Waiting for the host to restart...
00:09:25.018 [I]              main.c:1590 | lg_run                         | Guest Information:
00:09:25.018 [I]              main.c:1591 | lg_run                         | Version  : B7-rc1
00:09:25.018 [I]              main.c:1612 | lg_run                         | UUID     : b7f5a6fa-a759-47a9-8512-21550245c11a
00:09:25.018 [I]              main.c:1621 | lg_run                         | CPU Model: Intel(R) Core(TM) Ultra 7 155H
00:09:25.018 [I]              main.c:1622 | lg_run                         | CPU      : 1 sockets, 4 cores, 8 threads
00:09:25.018 [I]              main.c:1624 | lg_run                         | Using    : D12
00:09:25.018 [I]              main.c:1710 | lg_run                         | OS       : Windows
00:09:25.018 [I]              main.c:1712 | lg_run                         | OS Name  : Windows 10 Pro (Build: 19045) 
00:09:25.018 [I]              main.c:1734 | lg_run                         | Starting session
00:09:25.018 [I]              main.c:553  | main_frameThread               | Using DMA buffer support
00:09:25.239 [I]              main.c:710  | main_frameThread               | Format: FRAME_TYPE_BGRA 1920x1080 (1920x1080) stride:1920 pitch:7680 rotation:0 hdr:0 pq:0
00:09:47.279 [I]              main.c:1752 | lg_run                         | Waiting for the host to restart...
00:09:56.133 [I]           channel.c:269  | channel_internal_disconnect    | INPUTS channel disconnected
00:09:56.133 [I]           channel.c:269  | channel_internal_disconnect    | MAIN channel disconnected
00:09:56.133 [I]                ps.c:550  | purespice_process              | Shutdown
1 Like

What are you using for the host gpu? Did you make sure that you have your guest gpu (the 3060ti) in the primary pcie slot?

As another data point, since I have the same gpu but with a 5600x which should be a bit slower, I ran superposition and got a bit higher score, for whatever that’s worth. For my host I’ve got a 1050ti in the second slot which is pcie3.0 x4.

OCulink might be the limiting factor here… I guess you get a PCIe 4x4 link? Can you monitor PCIe bus utilisation in both cases?

The other potential bottleneck is the iGPU. The official documentation of LG also warns about performance issues with iGPUs, though I don’t have such issues with my 7950x. I can get LG running at 4k up to 120Hz (just my guest GPU is a 3060 so I rarely hit that).

Lastly, are you using a recent kernel & mesa? The Xe iGPU is quite new so newer drivers might have some optimisations.

Thank you very much for the benchmark!

I’m curious about the score though. I got almost 22k with a i7-7700K on a Z270 platform (PCIe 3.0, no ReBAR) which should not be faster than a R5 5600X?

Also, about your score: was this with Looking Glass enabled or with the GPU plugged inside the monitor?

Thanks again!

Hey, thanks for the input. I thought about OCuLink being the bottleneck here as well, however I can get almost 18k without Looking Glass enabled and the bandwidth, while there’s a penalty of 13%, is stable.

Do you think that copying the frames over to the iGPU puts an additional strain on the bandwidth? Do you think this is the limiting factor here?

Also: Arch Linux, most-recent Kernel and Mesa. I’m on the i915 driver though, you think it might be worth switching over to Xe?

Possibly? Bandwidth wise 1080p 32bit 120 Hz takes about 1GB/s which is only about 1/8th of the available bandwidth, but perhaps there is some relevant latency too. At 4K 120Hz that goes up to half the available bandwidth…

I do know iGPUs re generally not recommended (cf. LG documentation), even if for my setup it works quite well.

I may not be quite understanding the full context of your question here, but uh… both? I have both my host and guest gpus plugged into my monitor, like I can just switch monitor sources and see windows if I wanted, and I have LG running to view my windows guest.

These are the expected results, there are overheads when performing any kind of capture on windows, it’s not limited to only LG.

Sorry if I wasn’t clear about this.

Two distinct scenarios:

  1. I’m running a VM with a discrete GPU passed through to it. A monitor is connected to the GPU via HDMI or DP cable. Now I run a benchmark. For me, with my setup, the score was 17454 (100%)
  2. Same as above, but instead of having the passed-through GPU connected to the monitor, I’m instead using Looking Glass as a substitute. Now my benchmark score is significantly lower: 13825 (79,21%)

You’ve presented a score that exceeds mine (scenario 1) by a few percent. I wonder if you ran the benchmark without (scenario 1) or with (scenario 2) Looking Glass. Depending on which the performance difference might be even greater, and I can safely assume that my configuration is not yet optimally tuned.

I understand that, but ~20% performance penalty? I’m sure that’s not considered an expected result, and there’s room for improvements?

Yup, those numbers are expected. I wouldn’t have said so otherwise.

1 Like

… I see. While that is a bummer, I’m also relieved that the performance gap is not due to my OCuLink set-up or my VM config.

I’ll focus on minimizing the input lag then. Thank you for your help!