Geoffrey McRae
c61d97b0ac
[client] spice: add channel and mouse locking
...
This fixes a race condition which causes the mouse ringbuffer to
overflow. It also corrects out of order message index IDs due to
multiple threads sending messages asyncronously.
2018-01-25 07:41:11 +11:00
Geoffrey McRae
37ea662998
[client] use SDL_SetEventFilter for better mouse performance
...
This partially resolves lag issues on hosts running the amdgpu driver.
If mouse caputure is enable the lag issue returns, this is because SDL
calls `XSync` in `X11_WarpMouse` and `X11_WarpMouseGlobal`, if these
calls are removed all input lag issues dissapear.
This issue has been reported to SDL as the calls to `XSync` are not
required per the xlib documentation.
2018-01-24 23:46:11 +11:00
Aaron
3d9d275d61
Ignore SDL_MOUSEBUTTONDOWN events incompatible with SPICE ( #38 )
...
* Ignore SDL_MOUSEBUTTONDOWN events that aren't compatible with the SPICE PS/2 mouse
2018-01-15 10:55:17 +11:00
Geoffrey McRae
a02087e5e4
[client] h264: unroll silly loop
2018-01-06 13:47:35 +11:00
Geoffrey McRae
2ccf17b9b7
[client] h264: setup slice parameters correctly (incomplete)
2018-01-06 13:43:24 +11:00
Geoffrey McRae
8ccce5666c
[client] nal: corrections to parsing logic
2018-01-06 13:40:31 +11:00
Geoffrey McRae
859e984827
[client] h264: vaapi deprecated these fields, FMO is not supported
...
fbed1dbb5b/va/va.h (L2840)
2018-01-06 09:47:49 +11:00
Geoffrey McRae
5e84cfb3f1
[client] h264: use parameters from nal (incomplete)
2018-01-06 00:11:38 +11:00
Geoffrey McRae
5a84d3bef7
[client] h264: don't treat parse failure as fatal
2018-01-05 23:18:52 +11:00
Geoffrey McRae
634be5b096
[client] nal: removed useless debug print
2018-01-05 23:13:22 +11:00
Geoffrey McRae
80c9e24604
[client] nal: added final SLICE parser features
2018-01-05 23:09:43 +11:00
Geoffrey McRae
5808089fce
[client] nal: added SLICE parser
2018-01-05 21:36:26 +11:00
Geoffrey McRae
d6f84ddd12
[client] nal: added PPS parser
2018-01-05 16:18:28 +11:00
Geoffrey McRae
c809eeb2a8
[client] fixed nal parser memory leaks
2018-01-05 15:27:36 +11:00
Geoffrey McRae
2dfb1cf1a6
[client] Makefile: stop at the first error
2018-01-05 11:45:30 +11:00
Geoffrey McRae
50ba9b4899
[client] added initial NAL unit parser
2018-01-05 11:36:45 +11:00
Geoffrey McRae
a36d312844
[host] dxgi: fixed missed header update for timeout fix
2018-01-04 09:30:55 +11:00
Geoffrey McRae
6653340bac
[host] dxgi: follow suit and use h264 high profile
2018-01-04 09:30:27 +11:00
Geoffrey McRae
b9723adc30
[client] h264: use high profile as it's more compatible on newer cards
2018-01-04 09:27:24 +11:00
Geoffrey McRae
7648ea712c
[client] opengl: fix termination on configure failure
2018-01-04 09:25:42 +11:00
Geoffrey McRae
3f29897506
[client] fix application termination on error
2018-01-04 09:25:17 +11:00
Geoffrey McRae
bebbdc4089
[client] h264 switch to contrained decoder as baseline is deprecated
2018-01-01 12:56:26 +11:00
Geoffrey McRae
9000fdf6fc
[host] fix frame duplication problem with new MFT implementation
2017-12-31 00:32:39 +11:00
Geoffrey McRae
fbf08b94aa
[client] initial vaapi h264 decode support (unfinished)
2017-12-31 00:27:26 +11:00
Geoffrey McRae
a6d2fe73ae
[common] fixed bug in memcpySSE skipping remaining bytes
2017-12-30 18:39:57 +11:00
Geoffrey McRae
e854723aa3
[client] fixed incorrect cursor dataPos validation
2017-12-30 13:48:32 +11:00
Geoffrey McRae
9b7f54fa35
[host] service restarts now restart capture interfaces
2017-12-30 13:35:45 +11:00
Geoffrey McRae
9ef9f60505
[host] dxgi: fixed MFT memory leak and re-init failure
2017-12-30 13:35:45 +11:00
Geoffrey McRae
076a45acc5
[client] added initial decoder framework
2017-12-29 22:48:21 +11:00
Geoffrey McRae
c239306d82
[client] initial support for compressed frames
2017-12-29 21:20:51 +11:00
Geoffrey McRae
b5f2092e9c
[host] return the compressed frame size in the pitch field
2017-12-29 21:01:02 +11:00
Geoffrey McRae
03622f61b0
[host] Added experimental H264 compression to DXGI (disabled by default)
...
This is not yet working, the client is yet to be updated to support
decompressing this stream.
2017-12-29 20:53:52 +11:00
Geoffrey McRae
3d9230ac93
[host] dxgi: fixed frame update regression
2017-12-29 07:15:59 +11:00
Geoffrey McRae
2d746cbfd4
[host] dxgi: performance improvements
2017-12-29 07:01:13 +11:00
Geoffrey McRae
2f2813037b
[host] improved latency of multimemcpy with hybrid locking and preempt
2017-12-29 07:00:27 +11:00
Geoffrey McRae
f6f4c8070a
[host] adjusted frame and cursor offset calculations
2017-12-29 06:11:32 +11:00
Geoffrey McRae
40bfdcdf8c
[client] added configuration file loading support
...
the client now will look for a configuration file in the following
locations by default.
* /etc/looking-glass.conf
* ~/.looking-glass.conf
All configuration files are loaded and may override values specified by
any prior configuration files loaded.
Sample Config:
global:
{
fullScreen=false;
showFPS=true;
x=0;
y=0;
w=800;
h=600;
}
OpenGL:
{
mipmap="false";
}
2017-12-28 19:58:19 +11:00
Geoffrey McRae
59fa025292
[host] add store fence to shm writes as we are using writecombine
2017-12-28 15:42:44 +11:00
Geoffrey McRae
e09d7f0ad0
[host] Update IVSHMEM class to support incoming driver version
2017-12-28 15:42:44 +11:00
Geoffrey McRae
6a6e53f728
[client] removed the dependency on the ivshmem-server
...
Since we do not use IRQs anymore we can use the ivshmem-plain device
which doesn't need the ivshmem-server. The QEMU arguments now should be
as follows:
-device ivshmem-plain,memdev=ivshmem
-object memory-backend-file,id=ivshmem,share=on,mem-path=/dev/shm/looking-glass,size=32M
Obviously adjusting the memory size as required. It is suggested that
the shared memory file be created before the guest is started with the
appropriate permissions, for example:
touch /dev/shm/looking-glass
chown user:kvm /dev/shm/looking-glass
chmod 660 /dev/shm/looking-glass
2017-12-28 15:34:18 +11:00
Geoffrey McRae
16e804b068
[host] added tracing class to help profile slow code points
2017-12-23 18:15:15 +11:00
Geoffrey McRae
db52a55b36
[client] opengl: remove deprecated glScissor, fixes FPS display
2017-12-23 17:40:50 +11:00
Geoffrey McRae
0574daca13
[client] removed unused function argument
2017-12-23 17:38:25 +11:00
arcnmx
d9397610f3
[host] compile MultiMemcpy on mingw
2017-12-21 14:42:49 +11:00
arcnmx
f26d8fbd3e
[host] remove unused variables
2017-12-21 14:42:49 +11:00
Geoffrey McRae
43b096a5e7
[host] added multi-threaded memcopy for high resolutions
2017-12-21 13:49:36 +11:00
Geoffrey McRae
a08aad8009
[client] opengl: don't scale the FPS readout
2017-12-21 06:50:57 +11:00
Geoffrey McRae
2b66fa6136
[client] warn about unreliable cursor scaling
...
This also logs the scaling information to assist with reports about
improper mouse alignment
2017-12-21 06:39:41 +11:00
Geoffrey McRae
e3a426f378
[client] update dimension information after the first frame
2017-12-21 06:38:34 +11:00
Geoffrey McRae
e5f86a824a
[client] switch back to atomic locking as the default
...
The prior patch to correct the mouse loop resolves the CPU load issue
with the atomic locking method. SDL mutexes are still available if
desired but full mutex locking is far slower then fast spinlocks
2017-12-21 02:12:19 +11:00