I’m running a Winn11 Pro VM (Debian 12 host) on a Dell G15 laptop. Looking Glass runs fine in windowed mode. However I’m having severe sync problems in full screen mode, the display flashes rapidly. It tried with a real monitor attached and the virtual monitor driver, I got the same results. Any clues on how to solve this issue are more than welcome.
Post the LG client log please (terminal output)
Here is my LG .log:
[I] 69091747 main.c:1785 | main | Looking Glass (B6)
[I] 69091763 main.c:1786 | main | Locking Method: Atomic
[I] 69091930 cpuinfo.c:37 | lgDebugCPU | CPU Model: 12th Gen Intel(R) Core(TM) i7-12700H
[I] 69091933 cpuinfo.c:38 | lgDebugCPU | CPU: 1 sockets, 14 cores, 20 threads
[I] 69104273 main.c:1162 | lg_run | Using font: /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
[I] 69104597 ivshmem.c:128 | ivshmemOpenDev | KVMFR Device : /dev/shm/looking-glass
[W][00069.101527] pw.conf | [ conf.c: 939 try_load_conf()] can't load config client-rt.conf: No such file or directory
[W][00069.101563] pw.conf | [ conf.c: 939 try_load_conf()] can't load config client.conf: No such file or directory
[E][00069.101568] pw.conf | [ conf.c: 963 pw_conf_load_conf_for_context()] can't load default config client.conf: No such file or directory
[E] 69105189 pipewire.c:147 | pipewire_init | Failed to create a context
[I] 69106307 pulseaudio.c:88 | pulseaudio_ctx_state_change_cb | Connected to PulseAudio server
[I] 69106358 audio.c:159 | audio_init | Using AudioDev: PulseAudio
[I] 69106387 ps.c:245 | purespice_connect | Connecting to socket 127.0.0.1:5900
[I] 69124775 rsa.c:178 | rsa_encryptPassword | Using Nettle
[I] 69125392 ps.c:268 | purespice_connect | Connected
[I] 69125521 channel_main.c:167 | onMessage_mainName | Guest name: Win11-GPU
[I] 69125539 channel_main.c:183 | onMessage_mainUUID | Guest UUID: 586cc4a0-5fc1-4ba9-87e1-77dbf3e4223e
[I] 69145700 ps.c:644 | ps_connectChannel | PLAYBACK channel connected
[I] 69168021 ps.c:644 | ps_connectChannel | INPUTS channel connected
[I] 69168073 channel.c:312 | onMessage_notify | [notify] keyboard channel is insecure
[I] 69168123 egl.c:267 | egl_initialize | Double buffering is off
[I] 69168142 main.c:1116 | tryRenderer | Using Renderer: EGL
[I] 69170413 x11.c:230 | x11CheckEWMHSupport | EWMH-complient window manager detected: KWin
[I] 69170575 x11.c:463 | x11Init | X11 XInput 2.0 in use
[I] 69179287 x11.c:1433 | x11GetEGLDisplay | Using eglGetPlatformDisplayEXT
[I] 69228491 egl.c:745 | egl_renderStartup | Multisampling enabled, max samples: 4
[I] 69229229 egl.c:828 | egl_renderStartup | Single buffer mode
[I] 69233097 egl.c:855 | egl_renderStartup | EGL : 1.5
[I] 69233123 egl.c:856 | egl_renderStartup | Vendor : Intel
[I] 69233137 egl.c:857 | egl_renderStartup | Renderer: Mesa Intel(R) Graphics (ADL GT2)
[I] 69233148 egl.c:858 | egl_renderStartup | Version : OpenGL ES 3.2 Mesa 22.3.6
[I] 69233162 egl.c:859 | egl_renderStartup | EGL APIs: OpenGL OpenGL_ES
[I] 69233194 egl.c:930 | egl_renderStartup | Debug messages disabled, enable with egl:debug=true
[I] 69271843 eglutil.c:35 | swapWithDamageInit | Using EGL_KHR_swap_buffers_with_damage
[I] 69466621 main.c:1467 | lg_run | ================================================================================
[I] 69466642 main.c:1468 | lg_run | The host application seems to not be running
[I] 69466651 main.c:1469 | lg_run | Waiting for the host application to start...
[I] 72364316 agent.c:103 | agent_connect | Connected to the spice guest agent
[I] 72467094 main.c:1566 | lg_run | Guest Information:
[I] 72467120 main.c:1567 | lg_run | Version : B6
[I] 72467132 main.c:1588 | lg_run | UUID : 586cc4a0-5fc1-4ba9-87e1-77dbf3e4223e
[I] 72467165 main.c:1597 | lg_run | CPU Model: 12th Gen Intel(R) Core(TM) i7-12700H
[I] 72467180 main.c:1598 | lg_run | CPU : 1 sockets, 6 cores, 12 threads
[I] 72467201 main.c:1600 | lg_run | Using : DXGI Direct3D 11
[I] 72467216 main.c:1636 | lg_run | OS : Windows
[I] 72467234 main.c:1638 | lg_run | OS Name : Windows 10 Pro (Build: 22631)
[I] 72467251 main.c:1660 | lg_run | Starting session
[I] 72665424 main.c:698 | main_frameThread | Format: FRAME_TYPE_BGRA 1920x1080 stride:1920 pitch:7680 rotation:0
[I] 78358261 main.c:698 | main_frameThread | Format: FRAME_TYPE_BGRA 1920x1080 stride:1920 pitch:7680 rotation:0
[I] 82079339 main.c:1678 | lg_run | Waiting for the host to restart...
[I] 86085009 main.c:1566 | lg_run | Guest Information:
[I] 86085031 main.c:1567 | lg_run | Version : B6
[I] 86085041 main.c:1588 | lg_run | UUID : 586cc4a0-5fc1-4ba9-87e1-77dbf3e4223e
[I] 86085061 main.c:1597 | lg_run | CPU Model: 12th Gen Intel(R) Core(TM) i7-12700H
[I] 86085070 main.c:1598 | lg_run | CPU : 1 sockets, 6 cores, 12 threads
[I] 86085081 main.c:1600 | lg_run | Using : DXGI Direct3D 11
[I] 86085090 main.c:1636 | lg_run | OS : Windows
[I] 86085100 main.c:1638 | lg_run | OS Name : Windows 10 Pro (Build: 22631)
[I] 86085110 main.c:1660 | lg_run | Starting session
[I] 86324016 main.c:698 | main_frameThread | Format: FRAME_TYPE_BGRA 1920x1080 stride:1920 pitch:7680 rotation:0
You have several things here that need fixing.
- You have given your guest all your performance cores (6), you need to leave atleast two for your host.
- You are on a laptop using an iGPU, you should be using the KVMFR kernel module for DMA transfers.
- You’re using an Intel Iris on X11, which suffers poor performance. You can work around this by running LG like so:
MESA_LOADER_DRIVER_OVERRIDE=zink ./looking-glass-client
Please follow the LG installation for B7-rc1, including the setup of the kernel module for IVSHMEM:
Thanks for your help.
I’m now passing only 4 cores to the VM and installed LG B7=rc1 with the kernel module for IVSHMEM. I believe that everything is correctly installed.
I started LG with MESA_LOADER_DRIVER_OVERRIDE=zink ./looking-glass-client
.
I got the same behavior, OK in windowed mode but flashing display in full screen. I found that as soon as I start the full screen mode I get thousands error messages in dmesg( 203.184270] i915 0000:00:02.0: [drm] ERROR Fault errors on pipe A: 0x00000080
) . I also included the LG log at the end.
I hope you can help me with this.
[ 30.980704] virbr0: port 1(vnet0) entered blocking state
[ 30.980707] virbr0: port 1(vnet0) entered disabled state
[ 30.980739] device vnet0 entered promiscuous mode
[ 30.980835] virbr0: port 1(vnet0) entered blocking state
[ 30.980837] virbr0: port 1(vnet0) entered listening state
[ 31.069704] audit: type=1400 audit(1711040314.388:44): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="libvirt-586cc4a0-5fc1-4ba9-87e1-77dbf3e4223e" pid=3734 comm="apparmor_parser"
[ 32.998417] virbr0: port 1(vnet0) entered learning state
[ 33.334649] vfio-pci 0000:01:00.0: enabling device (0002 -> 0003)
[ 33.442750] vfio-pci 0000:01:00.0: vfio_ecap_init: hiding ecap 0x1e@0x258
[ 33.442788] vfio-pci 0000:01:00.0: vfio_ecap_init: hiding ecap 0x19@0x900
[ 33.442803] vfio-pci 0000:01:00.0: vfio_ecap_init: hiding ecap 0x26@0xc1c
[ 33.442809] vfio-pci 0000:01:00.0: vfio_ecap_init: hiding ecap 0x27@0xd00
[ 33.442813] vfio-pci 0000:01:00.0: vfio_ecap_init: hiding ecap 0x25@0xe00
[ 33.470546] vfio-pci 0000:01:00.1: enabling device (0000 -> 0002)
[ 33.470994] vfio-pci 0000:01:00.1: vfio_ecap_init: hiding ecap 0x25@0x160
[ 34.229185] x86/split lock detection: #AC: CPU 1/KVM/3794 took a split_lock trap at address: 0x7ef9e050
[ 34.229306] x86/split lock detection: #AC: CPU 5/KVM/3798 took a split_lock trap at address: 0x7ef9e050
[ 34.229305] x86/split lock detection: #AC: CPU 2/KVM/3795 took a split_lock trap at address: 0x7ef9e050
[ 34.229321] x86/split lock detection: #AC: CPU 7/KVM/3800 took a split_lock trap at address: 0x7ef9e050
[ 34.350345] audit: type=1400 audit(1711040317.668:45): apparmor="DENIED" operation="open" profile="libvirt-586cc4a0-5fc1-4ba9-87e1-77dbf3e4223e" name="/etc/ssl/openssl.cnf" pid=3721 comm="swtpm" requested_mask="r" denied_mask="r" fsuid=100 ouid=0
[ 35.014511] virbr0: port 1(vnet0) entered forwarding state
[ 35.014524] virbr0: topology change detected, propagating
[ 53.617264] x86/split lock detection: #AC: CPU 0/KVM/3793 took a split_lock trap at address: 0x73d60f59
[ 76.217148] audit: type=1400 audit(1711040359.739:46): apparmor="DENIED" operation="open" profile="libvirt-586cc4a0-5fc1-4ba9-87e1-77dbf3e4223e" name="/etc/ssl/openssl.cnf" pid=3772 comm="qemu-system-x86" requested_mask="r" denied_mask="r" fsuid=64055 ouid=0
[ 76.814926] nvidia-nvlink: Nvlink Core is being initialized, major device number 234
[ 76.814931] NVRM: The NVIDIA probe routine was not called for 1 device(s).
[ 76.815778] NVRM: This can occur when a driver such as:
NVRM: nouveau, rivafb, nvidiafb or rivatv
NVRM: was loaded and obtained ownership of the NVIDIA device(s).
[ 76.815779] NVRM: Try unloading the conflicting kernel module (and/or
NVRM: reconfigure your kernel without the conflicting
NVRM: driver(s)), then try loading the NVIDIA kernel module
NVRM: again.
[ 76.815780] NVRM: No NVIDIA devices probed.
[ 76.815929] nvidia-nvlink: Unregistered Nvlink Core, major device number 234
[ 203.184270] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[ 203.184272] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[ 203.184275] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[ 203.184410] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
[ 203.184417] i915 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080
MESA_LOADER_DRIVER_OVERRIDE=zink looking-glass-client -m 78
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: 12th Gen Intel(R) Core(TM) i7-12700H
00:00:00.000 [I] cpuinfo.c:39 | cpuInfo_log | CPU: 1 sockets, 14 cores, 20 threads
00:00:00.014 [I] main.c:1185 | lg_run | Using font: /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
00:00:00.014 [I] ivshmem.c:128 | ivshmemOpenDev | KVMFR Device : /dev/shm/looking-glass
[W][00076.174577] pw.conf | [ conf.c: 939 try_load_conf()] can't load config client-rt.conf: No such file or directory
[W][00076.174609] pw.conf | [ conf.c: 939 try_load_conf()] can't load config client.conf: No such file or directory
[E][00076.174613] pw.conf | [ conf.c: 963 pw_conf_load_conf_for_context()] can't load default config client.conf: No such file or directory
00:00:00.015 [E] pipewire.c:181 | pipewire_init | Failed to create a context
00:00:00.016 [I] pulseaudio.c:88 | pulseaudio_ctx_state_change_cb | Connected to PulseAudio server
00:00:00.016 [I] audio.c:159 | audio_init | Using AudioDev: PulseAudio
00:00:00.016 [I] ps.c:245 | purespice_connect | Connecting to socket 127.0.0.1:5900
00:00:00.032 [I] rsa.c:178 | rsa_encryptPassword | Using Nettle
00:00:00.033 [I] ps.c:268 | purespice_connect | Connected
00:00:00.033 [I] agent.c:103 | agent_connect | Connected to the spice guest agent
00:00:00.033 [I] channel_main.c:167 | onMessage_mainName | Guest name: Win11-GPU
00:00:00.033 [I] channel_main.c:183 | onMessage_mainUUID | Guest UUID: 586cc4a0-5fc1-4ba9-87e1-77dbf3e4223e
00:00:00.053 [I] ps.c:644 | ps_connectChannel | PLAYBACK channel connected
00:00:00.074 [I] ps.c:644 | ps_connectChannel | INPUTS channel connected
00:00:00.074 [I] channel.c:323 | onMessage_notify | [notify] keyboard channel is insecure
00:00:00.074 [I] egl.c:289 | egl_initialize | Double buffering is off
00:00:00.074 [I] main.c:1139 | tryRenderer | Using Renderer: EGL
00:00:00.076 [I] x11.c:232 | x11CheckEWMHSupport | EWMH-compliant window manager detected: KWin
00:00:00.076 [I] x11.c:497 | x11Init | X11 XInput 2.0 in use
00:00:00.084 [I] x11.c:1496 | x11GetEGLDisplay | Using eglGetPlatformDisplayEXT
00:00:00.778 [I] egl.c:773 | egl_renderStartup | Multisampling enabled, max samples: 4
00:00:00.780 [I] egl.c:856 | egl_renderStartup | Single buffer mode
00:00:00.782 [I] egl.c:883 | egl_renderStartup | EGL : 1.5
00:00:00.782 [I] egl.c:884 | egl_renderStartup | Vendor : Collabora Ltd
00:00:00.782 [I] egl.c:885 | egl_renderStartup | Renderer: zink (Intel(R) Graphics (ADL GT2))
00:00:00.782 [I] egl.c:886 | egl_renderStartup | Version : OpenGL ES 3.2 Mesa 22.3.6
00:00:00.782 [I] egl.c:887 | egl_renderStartup | EGL APIs: OpenGL OpenGL_ES
00:00:00.782 [I] egl.c:958 | egl_renderStartup | Debug messages disabled, enable with egl:debug=true
00:00:00.804 [I] eglutil.c:35 | swapWithDamageInit | Using EGL_KHR_swap_buffers_with_damage
00:00:01.000 [I] main.c:1590 | lg_run | Guest Information:
00:00:01.000 [I] main.c:1591 | lg_run | Version : B7-rc1
00:00:01.001 [I] main.c:1612 | lg_run | UUID : 586cc4a0-5fc1-4ba9-87e1-77dbf3e4223e
00:00:01.001 [I] main.c:1621 | lg_run | CPU Model: 12th Gen Intel(R) Core(TM) i7-12700H
00:00:01.001 [I] main.c:1622 | lg_run | CPU : 1 sockets, 4 cores, 8 threads
00:00:01.001 [I] main.c:1624 | lg_run | Using : D12
00:00:01.002 [I] main.c:1710 | lg_run | OS : Windows
00:00:01.002 [I] main.c:1712 | lg_run | OS Name : Windows 10 Pro (Build: 22631)
00:00:01.002 [I] main.c:1734 | lg_run | Starting session
00:00:01.328 [I] main.c:710 | main_frameThread | Format: FRAME_TYPE_BGRA 1920x1080 (1920x1080) stride:1920 pitch:7680 rotation:0 hdr:0 pq:0
No, if it was correctly configured you would be using /dev/kvmfr0
. Please carefully follow the documentation on how to configure this properly. This is 90% of the reason why you are getting poor performance.
This is a driver or hardware problem unrelated to Looking Glass, I am sorry but I can not advise further on this.
Edit: Please surround your plain text posts with three backticks ```like this``` in future.
Thanks, I will do my home work
I did my home work. LG is now using /dev/kvmfr0 but it did not help. The error of the Intel driver ([drm] ERROR Fault errors on pipe A: 0x00000080) only occurs with LG in full screen mode and not with any other applications. LG must be doing something the Intel driver does not like. I will wait and see if someone reports something similar.
LG is just a simple OpenGL EGL renderer, it doesn’t do anything complex or special. Your typical game makes the GPU work far harder.