Commit Graph

925 Commits

Author SHA1 Message Date
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
Geoffrey McRae
c0b2c8e655 [client] added missing wait to cursor update thread 2017-12-21 01:56:59 +11:00
Geoffrey McRae
c5cbb948e2 [client] report locking mode used for diagnostics 2017-12-21 01:35:36 +11:00
Geoffrey McRae
58ed978767 [client] opengl: switch to SDL_mutex locking 2017-12-21 01:23:25 +11:00
Geoffrey McRae
c098967293 [client] opengl: update FPS even when there is no updates 2017-12-21 01:17:45 +11:00
Geoffrey McRae
8fbacba82e [client] make startup sleep nicer on the CPU 2017-12-21 01:15:16 +11:00
Geoffrey McRae
0753e63644 [client] fixed unlock define 2017-12-21 01:11:42 +11:00
Geoffrey McRae
5501d22a2d [client] fixed missed usage of new locking semantics 2017-12-21 01:03:21 +11:00
Geoffrey McRae
2f6b7e08f8 [client] define locking types and semantics to allow for alt methods 2017-12-21 00:58:16 +11:00
Geoffrey McRae
2fe800f502 [host] dxgi: corrected timeout alteration left behind from debugging 2017-12-20 04:35:07 +11:00
Geoffrey McRae
ec6c35010b [host] updated host application for the new mt client format
See prior commit for details on this update
2017-12-20 00:58:42 +11:00
Geoffrey McRae
695822bd6d [client] redesign of the renderer archiceture for mt support
This is the first of two commits that completely turn the rendering code
on it's head. This change set decouples the guest's capture rate from
the host's render rate for both cursor and frame updates. This helps
prevent the host application from stalling when waiting for frame draws
when all it want's to do is send cursor updates.

* Breaks OpenGL-Basic for now
2017-12-20 00:53:45 +11:00
Geoffrey McRae
a70adb2568 [client] correct help text for new -o argument 2017-12-19 15:40:52 +11:00
Geoffrey McRae
21a4e15868 [client] cosmetics 2017-12-19 15:37:49 +11:00
Geoffrey McRae
0cc149dd48 [misc] fix typo in readme url 2017-12-19 13:47:14 +11:00
Geoffrey McRae
af8d6c4d27 [misc] added support information to the readme 2017-12-19 13:46:19 +11:00
Geoffrey McRae
2a93e2ed55 [host] removed comments from prior testing 2017-12-19 13:40:59 +11:00
Geoffrey McRae
8b25f8a344 [client] opengl: show actual FPS seperate from updates per second (UPS) 2017-12-19 12:17:50 +11:00