Return to Level1Techs.com

Looking Glass - Guides, Help and Support

iommu
lookingglass

#720

Without logs there is nothing we can do to help you. The logs show the exact build you are on which allows me to see what has possibly changed between versions that may have affected you.


#721

Getting very close to an A11 release, most outstanding issues have been resolved including a License incompatibility issue with OpenSSL preventing project packaging. As such the dependencies have now changed, instead of libssl-dev you now require nettle-dev and libgmp-dev to build the current unstable version.


#722

The current state of VM to VM sync:


#723

I’m going to be more excited when a JPEG XS IP is implemented for lightweight compression in bandwidth constrained scenarios.

Also, still waiting for someone to write a framebuffer dumper to dump the image directly into OBS. Sometimes when I capture a window capture, frames arrive out of sync with each other and thus is the nature of recapturing a buffer.


#724
Logs/top

Older build … scrolling OK
*** Example code, do not use in production ***
[I] main.c:680 | run | Looking Glass (a10-50-gfd8d4d3d38)
[I] main.c:681 | run | Locking Method: Atomic
[I] main.c:674 | try_renderer | Using Renderer: OpenGL
[I] main.c:762 | run | Using: OpenGL
[I] main.c:877 | run | Waiting for host to signal it’s ready…
[I] main.c:881 | run | Host ready, starting session
[I] main.c:172 | updatePositionInfo | client 3840x2160, guest 3840x2160, target 3840x2160, scaleX: 1.00, scaleY 1.00
[I] opengl.c:542 | configure | Vendor : NVIDIA Corporation
[I] opengl.c:543 | configure | Renderer: GeForce GTX 960/PCIe/SSE2
[I] opengl.c:544 | configure | Version : 4.6.0 NVIDIA 396.18
[I] opengl.c:575 | configure | Using decoder: NULL

top - 18:26:44 up 9 min,  1 user,  load average: 0,21, 0,39, 0,23
Tasks: 468 total,   2 running, 294 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0,6 us,  0,4 sy,  0,0 ni, 98,9 id,  0,0 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem : 32858808 total,  1836016 free, 27430312 used,  3592480 buff/cache
KiB Swap:  4891644 total,  4891644 free,        0 used.  5098004 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND    
  2641 root      20   0 15,947g 166696  17140 S  26,9  0,5   3:20.98 qemu-syst+ 
  2777 root      20   0  633664 114804 104088 S  10,0  0,3   0:39.85 looking-g+ 
  2517 pburic    20   0 1321140 177128 100524 S   0,9  0,5   0:05.81 opera      

Current build … scrolling very slow

*** Example code, do not use in production ***
cannot bind
[I] main.c:682 | run | Looking Glass (a10-77-g6e0eac0abc)
[I] main.c:683 | run | Locking Method: Atomic
[I] main.c:676 | try_renderer | Using Renderer: OpenGL
[I] main.c:764 | run | Using: OpenGL
[I] main.c:883 | run | Waiting for host to signal it’s ready…
[I] main.c:887 | run | Host ready, starting session
[I] main.c:174 | updatePositionInfo | client 3840x2160, guest 3840x2160, target 3840x2160, scaleX: 1.00, scaleY 1.00
[I] main.c:174 | updatePositionInfo | client 1024x768, guest 3840x2160, target 1024x576, scaleX: 3.75, scaleY 3.75
[W] main.c:177 | updatePositionInfo | Window size doesn’t match guest resolution, cursor alignment may not be reliable
[I] main.c:174 | updatePositionInfo | client 3840x2160, guest 3840x2160, target 3840x2160, scaleX: 1.00, scaleY 1.00
[I] opengl.c:539 | configure | Vendor : NVIDIA Corporation
[I] opengl.c:540 | configure | Renderer: GeForce GTX 960/PCIe/SSE2
[I] opengl.c:541 | configure | Version : 4.6.0 NVIDIA 396.18
[I] opengl.c:577 | configure | Using decoder: NULL

top - 18:30:15 up 12 min,  1 user,  load average: 3,05, 1,44, 0,66
Tasks: 468 total,   3 running, 293 sleeping,   0 stopped,   0 zombie
%Cpu(s):  5,1 us,  3,7 sy,  0,0 ni, 89,1 id,  2,2 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem : 32858808 total,  1124476 free, 27456032 used,  4278300 buff/cache
KiB Swap:  4891644 total,  4891644 free,        0 used.  5089116 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND    
  2641 root      20   0 15,970g 166796  17140 R 134,7  0,5   5:53.06 qemu-syst+ 
  3709 root      20   0  633524 119160  44676 S 109,1  0,4   2:18.97 looking-g+ 
  1493 root      20   0  525912 117620  99880 S  26,4  0,4   1:05.87 Xorg       
  1502 root     -51   0       0      0      0 S   4,3  0,0   0:07.79 irq/98-nv+ 
  3402 pburic    20   0 1994048 252960 110188 S   3,8  0,8   0:24.13 opera      
  2339 pburic    20   0 1283264 236920 147056 S   2,4  0,7   0:20.90 opera      
  2068 pburic    20   0  196980  34096  19268 S   0,3  0,1   0:02.75 xfwm4 

#725

Oh yeah, there was a Vulkan branch of the code that hasn’t been touched in 5 months. Any progress on that or it primarily still OpenGL?


#726

Do not use ivshmem-server, it was deprecated ages ago.

This is not A10, you were, and are running a development build.

  • Did you update the looking-glass-host.exe also?
  • What are your launch arguments?
  • Are you using Vsync?
  • Please run it under a debugger
  • There were several changes to the OpenGL renderer that may have affected performance between those versions, but I will need the above debug backtrace to diagnose.

Unfortunately the sheer amount of code to get Vulkan working at this point is insane, when the API settles I will revisit this unless someone else is willing to. Right now there are still some design changes to be made with how the mouse is handled that will likely change things substantially.


#727

The client just got UNIX socket support for lower latency input, to use specify the port as 0 and the host as the socket, ie:

./looking-glass-client -P 0 -h /path/to/socket.sock

#728

Super excited about guest to guest. However, from the read me on this:

At this time VM->VM access atleast in this authors configurtion is slow, barely
exceeding 15fps at 1200p, it is still yet to be determined if this is an
architecture problem with this authors AMD ThreadRipper platform.

Does this poor performance only occur with your threadripper platform or is that just what the guest to guest is limited too?


#729

This is fixed:


#730

Wonderful! Now I’ll have to see if the unraid developers can be nagged into including this.

Edit: Actually…Maybe they don’t need to do anything at all? ivshem-plain is the shared memory device now right. https://people.redhat.com/pbonzini/qemu-test-doc/_build/html/topics/pcsys_005fother_005fdevs.html And its part of qemu 2.7 which I think unraid uses 2.11.1 now. The only other special component is the looking glass client which in this case is running in a VM.


#731

Correct

Correct


#732

I didn’t know that. I correct that now.

I know that.

I’m using A10 version (27.12.2017). I only tried own builds of looking-glass-host.exe (my Visual Studio is expired now).

taskset -c 20,21,22,23 ./looking-glass-client -a -k -s -M -d -o opengl:vsync=0 -f /hugetlbfs/looking-glass

No(LG), No(HostOS), No(GuestOS).

Will it help?
[email protected]:~/LG/client/bin# gdb ./looking-glass-client 
GNU gdb (Ubuntu 8.0.1-0ubuntu1) 8.0.1
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./looking-glass-client...done.
(gdb) set args -a -k -s -M -d -o opengl:vsync=0 -f /hugetlbfs/looking-glass
(gdb) r
Starting program: /home/pburic/LG/client/bin/looking-glass-client -a -k -s -M -d -o opengl:vsync=0 -f /hugetlbfs/looking-glass
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[I]               main.c:682  | run                            | Looking Glass (a10-77-g6e0eac0abc)
[I]               main.c:683  | run                            | Locking Method: Atomic
[I]               main.c:676  | try_renderer                   | Using Renderer: OpenGL
[I]               main.c:764  | run                            | Using: OpenGL
[I]               main.c:883  | run                            | Waiting for host to signal it's ready...
[I]               main.c:887  | run                            | Host ready, starting session
[New Thread 0x7fffe3fff700 (LWP 5344)]
[New Thread 0x7fffe37fe700 (LWP 5345)]
[I]               main.c:174  | updatePositionInfo             | client 3840x2160, guest 3840x2160, target 3840x2160, scaleX: 1.00, scaleY 1.00
[New Thread 0x7fffe2ffd700 (LWP 5346)]
[I]               main.c:174  | updatePositionInfo             | client 1024x768, guest 3840x2160, target 1024x576, scaleX: 3.75, scaleY 3.75
[W]               main.c:177  | updatePositionInfo             | Window size doesn't match guest resolution, cursor alignment may not be reliable
[I]               main.c:174  | updatePositionInfo             | client 3840x2160, guest 3840x2160, target 3840x2160, scaleX: 1.00, scaleY 1.00
[I]             opengl.c:539  | configure                      | Vendor  : NVIDIA Corporation
[I]             opengl.c:540  | configure                      | Renderer: GeForce GTX 960/PCIe/SSE2
[I]             opengl.c:541  | configure                      | Version : 4.6.0 NVIDIA 396.18
[I]             opengl.c:577  | configure                      | Using decoder: NULL
^C
Thread 1 "looking-glass-c" received signal SIGINT, Interrupt.
0x00007ffff62d9bf8 in __GI___nanosleep (requested_time=0x7fffffffe070, remaining=0x0) at ../sysdeps/unix/sysv/linux/nanosleep.c:27
27	../sysdeps/unix/sysv/linux/nanosleep.c: No such file or directory.
(gdb) thread apply all bt

Thread 4 (Thread 0x7fffe2ffd700 (LWP 5346)):
#0  0x00007ffff62f8a37 in sched_yield () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007fffed563fd9 in ?? () from /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.396.18
#2  0x00007fffed564058 in ?? () from /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.396.18
#3  0x00007fffed4ebab3 in ?? () from /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.396.18
#4  0x00007fffed0c7ebd in ?? () from /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.396.18
#5  0x000055555555de6a in opengl_render (opaque=<optimized out>, window=<optimized out>) at renderers/opengl.c:411
#6  0x0000555555558046 in renderThread (unused=<optimized out>) at main.c:189
#7  0x00007ffff772275c in ?? () from /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#8  0x00007ffff7778999 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#9  0x00007ffff5fe97fc in start_thread (arg=0x7fffe2ffd700) at pthread_create.c:465
#10 0x00007ffff6315b5f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7fffe37fe700 (LWP 5345)):
#0  0x00007ffff62d9bf8 in __GI___nanosleep (requested_time=0x7fffe37fdc80, remaining=0x0) at ../sysdeps/unix/sysv/linux/nanosleep.c:27
#1  0x0000555555559634 in nsleep (ns=100) at utils.h:46
#2  frameThread (unused=<optimized out>) at main.c:309
#3  0x00007ffff772275c in ?? () from /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#4  0x00007ffff7778999 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#5  0x00007ffff5fe97fc in start_thread (arg=0x7fffe37fe700) at pthread_create.c:465
#6  0x00007ffff6315b5f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

---Type <return> to continue, or q <return> to quit---

---Type <return> to continue, or q <return> to quit---
Thread 2 (Thread 0x7fffe3fff700 (LWP 5344)):
#0  0x00007ffff62d9bf8 in __GI___nanosleep (requested_time=0x7fffe3ffec60, remaining=0x0) at ../sysdeps/unix/sysv/linux/nanosleep.c:27
#1  0x00007ffff630c184 in usleep (useconds=<optimized out>) at ../sysdeps/posix/usleep.c:32
#2  0x000055555555892a in cursorThread (unused=<optimized out>) at main.c:286
#3  0x00007ffff772275c in ?? () from /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#4  0x00007ffff7778999 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#5  0x00007ffff5fe97fc in start_thread (arg=0x7fffe3fff700) at pthread_create.c:465
#6  0x00007ffff6315b5f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7ffff7fa1d40 (LWP 5339)):
#0  0x00007ffff62d9bf8 in __GI___nanosleep (requested_time=0x7fffffffe070, remaining=0x0) at ../sysdeps/unix/sysv/linux/nanosleep.c:27
#1  0x00007ffff630c184 in usleep (useconds=<optimized out>) at ../sysdeps/posix/usleep.c:32
#2  0x000055555555a3b4 in run () at main.c:934
#3  0x0000555555557beb in main (argc=10, argv=0x7fffffffe3e8) at main.c:1475
---Type <return> to continue, or q <return> to quit---

(gdb)

#733

Well you have vsync disabled… expect CPU to be through the roof, it’s rendering as fast as it can flat out. VSync off for LG is actually terrible as it prevents any chance of the client getting in sync with the host. Same deal for games/programs, when using LG VSync should always be on.

Also why are you using taskset, this is pointless for such a lightweight application, if anything it will hamper performance as you are forcing the kernel to lock it to cores that may be busy.

If you decide to run master make sure you have also updated the windows application, miss matches in versions will cause undefined behavior. There will be no support at all for a miss-matched combination. As for the version, the Date is useless, I can see exactly what revision you are running by the hash in the version string. You are not on A10, you are on a much later revision that is not even considered alpha.

All the threads are sleeping or yielding, which means LG is polling looking for updates from the client, which is exactly why VSync should NOT be disabled.


#734

Thanks, v-sync=1 helped. Scrolling speed is ok. Task of looking-glass-client is about same load 100%+ (build a10-55-… was about 7%). LG is without tearing now.

With taskman I was trying minimize cross NUMA-node RAM(HugePages)/PCIe access for processes of HostOS/LG/GuestOS.

I only followed instructions (in January).
https://looking-glass.hostfission.com/node/6

Thank you for your help


#735

Please provide a debug backtrace.

Ah, in that case did you check lstopo to verify the cores you are binding are correct? And have you disabled irqbalance and set the IRQ affinity for your GPU also? Huge pages has nothing to do with NUMA, if you want to lock the memory usage to a specific node you need to use numactl.

Note: This isn’t the cause of the 100% CPU usage, just things to ensure you have right for a NUMA system.

I have not had time yet to update this, really you should be running on a tagged release, see:


#736

I’m not familiar with gdb.

It is this?

(gdb) bt full
#0 0x00007ffff62d9bf8 in __GI___nanosleep (requested_time=0x7fffffffe070, remaining=0x0) at …/sysdeps/unix/sysv/linux/nanosleep.c:27
resultvar = 18446744073709551100
sc_cancel_oldtype = 0
#1 0x00007ffff630c184 in usleep (useconds=) at …/sysdeps/posix/usleep.c:32
ts = {tv_sec = 0, tv_nsec = 1000000}
#2 0x000055555555a3b4 in run () at main.c:934
event = {type = 1024, common = {type = 1024, timestamp = 2925}, window = {type = 1024, timestamp = 2925, windowID = 2, event = 0 β€˜\000’, padding1 = 0 β€˜\000’, padding2 = 0 β€˜\000’, padding3 = 0 β€˜\000’, data1 = 0, data2 = 1506}, key = {type = 1024, timestamp = 2925, windowID = 2, state = 0 β€˜\000’, repeat = 0 β€˜\000’, padding2 = 0 β€˜\000’,
padding3 = 0 β€˜\000’, keysym = {scancode = SDL_SCANCODE_UNKNOWN, sym = 1506, mod = 0, unused = 0}}, edit = {type = 1024, timestamp = 2925, windowID = 2, text = β€œ\000\000\000\000\000\000\000\000\342\005”, β€˜\000’ <repeats 14 times>, β€œUU\000\000\320a\204U”, start = 21845, length = 0}, text = {type = 1024, timestamp = 2925,
windowID = 2, text = β€œ\000\000\000\000\000\000\000\000\342\005”, β€˜\000’ <repeats 14 times>, β€œUU\000\000\320a\204U”}, motion = {type = 1024, timestamp = 2925, windowID = 2, which = 0, state = 0, x = 1506, y = 0, xrel = 0, yrel = 0}, button = {type = 1024, timestamp = 2925, windowID = 2, which = 0, button = 0 β€˜\000’,
state = 0 β€˜\000’, clicks = 0 β€˜\000’, padding1 = 0 β€˜\000’, x = 1506, y = 0}, wheel = {type = 1024, timestamp = 2925, windowID = 2, which = 0, x = 0, y = 1506, direction = 0}, jaxis = {type = 1024, timestamp = 2925, which = 2, axis = 0 β€˜\000’, padding1 = 0 β€˜\000’, padding2 = 0 β€˜\000’, padding3 = 0 β€˜\000’, value = 0, padding4 = 0},
jball = {type = 1024, timestamp = 2925, which = 2, ball = 0 β€˜\000’, padding1 = 0 β€˜\000’, padding2 = 0 β€˜\000’, padding3 = 0 β€˜\000’, xrel = 0, yrel = 0}, jhat = {type = 1024, timestamp = 2925, which = 2, hat = 0 β€˜\000’, value = 0 β€˜\000’, padding1 = 0 β€˜\000’, padding2 = 0 β€˜\000’}, jbutton = {type = 1024, timestamp = 2925, which = 2,
button = 0 β€˜\000’, state = 0 β€˜\000’, padding1 = 0 β€˜\000’, padding2 = 0 β€˜\000’}, jdevice = {type = 1024, timestamp = 2925, which = 2}, caxis = {type = 1024, timestamp = 2925, which = 2, axis = 0 β€˜\000’, padding1 = 0 β€˜\000’, padding2 = 0 β€˜\000’, padding3 = 0 β€˜\000’, value = 0, padding4 = 0}, cbutton = {type = 1024, timestamp = 2925,
which = 2, button = 0 β€˜\000’, state = 0 β€˜\000’, padding1 = 0 β€˜\000’, padding2 = 0 β€˜\000’}, cdevice = {type = 1024, timestamp = 2925, which = 2}, adevice = {type = 1024, timestamp = 2925, which = 2, iscapture = 0 β€˜\000’, padding1 = 0 β€˜\000’, padding2 = 0 β€˜\000’, padding3 = 0 β€˜\000’}, quit = {type = 1024, timestamp = 2925}, user = {
type = 1024, timestamp = 2925, windowID = 2, code = 0, data1 = 0x5e200000000, data2 = 0x0}, syswm = {type = 1024, timestamp = 2925, msg = 0x2}, tfinger = {type = 1024, timestamp = 2925, touchId = 2, fingerId = 6468220747776, x = 0, y = 0, dx = 0, dy = 3.0611365e-41, pressure = 1.81944545e+13}, mgesture = {type = 1024,
timestamp = 2925, touchId = 2, dTheta = 0, dDist = 2.11035549e-42, x = 0, y = 0, numFingers = 0, padding = 0}, dgesture = {type = 1024, timestamp = 2925, touchId = 2, gestureId = 6468220747776, numFingers = 0, error = 0, x = 0, y = 3.0611365e-41}, drop = {type = 1024, timestamp = 2925,
file = 0x2 <error: Cannot access memory at address 0x2>, windowID = 0}, padding = β€œ\000\004\000\000m\v\000\000\002”, β€˜\000’ <repeats 11 times>, β€œ\342\005”, β€˜\000’ <repeats 14 times>, β€œUU\000\000\320a\204UUU\000\000\000\000\000\000\000\000\000”}
FUNCTION = β€œrun”
lgrParams =
sdlFlags = 2
wminfo = {version = {major = 2 β€˜\002’, minor = 0 β€˜\000’, patch = 6 β€˜\006’}, subsystem = SDL_SYSWM_X11, info = {x11 = {display = 0x55555577a170, window = 67108875}, wl = {display = 0x55555577a170, surface = 0x400000b, shell_surface = 0x7fffffffe1f0}, mir = {connection = 0x55555577a170, surface = 0x400000b},
dummy = β€œp\241wUUU\000\000\v\000\000\004\000\000\000\000\360\341\377\377\377\177\000\000\320\341\377\377\377\177\000\000\003\000\000\000\377\177\000\000\001\000\000\000\000\000\000\000\031\000\000\000\000\000\000\000\060\000\000\000\000\000\000”}}
cursor = 0x0
t_spice = 0x0
t_main = 0x555555841030
t_frame = 0x5555557eb980
t_render = 0x5555559b25b0
#3 0x0000555555557beb in main (argc=10, argv=0x7fffffffe3e8) at main.c:1475
FUNCTION = β€œmain”
ret =

I don’t know about irqbalance.
In lstopo it looks OK (node/PCIe). I solved core affinity based on difference of performace results.

Based on list below, I was assumed (wrong) allocation (for GuestOS_W10_12GB + LG_Frame_128MB of HugePages a’ 2MB) is related to node1/die(its cores). 2ch=node0<=>node1(8-15th core)=2ch(12GB of HP for GuestOS)

Mem with running GuestOS (total ~24GB HugePages).
Node 0 AnonHugePages: 0 kB
Node 0 ShmemHugePages: 0 kB
Node 0 HugePages_Total: 6336
Node 0 HugePages_Free: 6336
Node 0 HugePages_Surp: 0
Node 1 AnonHugePages: 0 kB
Node 1 ShmemHugePages: 0 kB
Node 1 HugePages_Total: 6336
Node 1 HugePages_Free: 185
Node 1 HugePages_Surp: 0


#737

The first time you provided a backtrace you did it correct. Just follow the guide. I want the same backtrace but with vsync on.

Please also highlight the dump and click the pre-formatted text button so it is easy to ready, ie:

This is pre-formatted

#738
Backtrace
(gdb) thread apply all bt

Thread 4 (Thread 0x7fffe2ffd700 (LWP 14648)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007fffee552295 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.0
#2  0x00007fffee551f23 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.0
#3  0x00007fffed5638bd in ?? ()
   from /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.396.18
#4  0x00007fffed564060 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.396.18
#5  0x00007fffed4ebab3 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.396.18
#6  0x00007fffed0c7ebd in ?? ()
   from /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.396.18
#7  0x000055555555de6a in opengl_render (opaque=<optimized out>, 
    window=<optimized out>) at renderers/opengl.c:411
#8  0x0000555555558046 in renderThread (unused=<optimized out>) at main.c:189
#9  0x00007ffff772275c in ?? () from /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#10 0x00007ffff7778999 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#11 0x00007ffff5fe97fc in start_thread (arg=0x7fffe2ffd700)
    at pthread_create.c:465
#12 0x00007ffff6315b5f in clone ()
---Type <return> to continue, or q <return> to quit---
   95

Thread 3 (Thread 0x7fffe37fe700 (LWP 14647)):
#0  0x00007ffff62d9bf8 in __GI___nanosleep (requested_time=0x7fffe37fdc80, remaining=0x0) at ../sysdeps/unix/sysv/linux/nanosleep.c:27
#1  0x0000555555559634 in nsleep (ns=100) at utils.h:46
#2  frameThread (unused=<optimized out>) at main.c:309
#3  0x00007ffff772275c in ?? () from /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#4  0x00007ffff7778999 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#5  0x00007ffff5fe97fc in start_thread (arg=0x7fffe37fe700) at pthread_create.c:465
#6  0x00007ffff6315b5f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7fffe3fff700 (LWP 14646)):
#0  0x00007ffff62d9bf8 in __GI___nanosleep (requested_time=0x7fffe3ffec90, remaining=0x0) at ../sysdeps/unix/sysv/linux/nanosleep.c:27
#1  0x0000555555558963 in nsleep (ns=100) at utils.h:46
#2  cursorThread (unused=<optimized out>) at main.c:215
#3  0x00007ffff772275c in ?? () from /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#4  0x00007ffff7778999 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#5  0x00007ffff5fe97fc in start_thread (arg=0x7fffe3fff700) at pthread_create.c:465
#6  0x00007ffff6315b5f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7ffff7fa1d40 (LWP 14637)):
#0  0x00007ffff62d9bf8 in __GI___nanosleep (requested_time=0x7fffffffe070, remaining=0x0) at ../sysdeps/unix/sysv/linux/nanosleep.c:27
#1  0x00007ffff630c184 in usleep (useconds=<optimized out>) at ../sysdeps/posix/usleep.c:32
#2  0x000055555555a3b4 in run () at main.c:934
#3  0x0000555555557beb in main (argc=10, argv=0x7fffffffe3e8) at main.c:1475
top - 23:50:57 up  3:33,  1 user,  load average: 0,88, 1,09, 1,33
Tasks: 471 total,   2 running, 295 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1,1 us,  2,9 sy,  0,0 ni, 96,0 id,  0,0 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem : 32858808 total,  1441592 free, 27405496 used,  4011720 buff/cache
KiB Swap:  4891644 total,  4891644 free,        0 used.  5122172 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                          
 14637 root      20   0  647988 121800  43952 S 105,2  0,4   1:09.06 looking-glass-c                  
 13984 root      20   0 16,067g 137736  16892 S  19,7  0,4   2:33.30 qemu-system-x86                  
 13561 root      20   0  526548  85876  67144 S   2,2  0,3   0:18.69 Xorg                             
 13563 root     -51   0       0      0      0 S   1,3  0,0   0:00.85 irq/98-nvidia                    
 13935 pburic    20   0  596720  42948  30932 S   1,0  0,1   0:01.48 xfce4-terminal

#739

Thanks, I have made some changes that should help this but you will not be able to use it until A11 releases unless you want to rebuild the windows application.