Commit Graph

443 Commits

Author SHA1 Message Date
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
Geoffrey McRae
7d307c0a9c [client] improved option parsing 2017-12-19 11:58:38 +11:00
Geoffrey McRae
133d8ec21f [client] opengl: added preventBuffer option 2017-12-19 11:02:35 +11:00
Geoffrey McRae
f4b95eeda9 [client] fix option output counts and dynamic name padding 2017-12-19 10:56:23 +11:00
Geoffrey McRae
c38e38d43d [client] opengl: add splitmouse option
This feature was previously hardcoded enabled, it is now optional as
some hardware pipelines stall with the excessive flushes resulting in a
jumpy cursor. Default is disabled and may be re-enabled with
`-o opengl:splitmouse=1` or `-o opengl-basic:splitmouse=1` depending on
the renderer selected.
2017-12-19 10:21:45 +11:00
Geoffrey McRae
1f004472cc [host] dxgi: re-mapping is required to sync memory changes properly 2017-12-18 21:34:44 +11:00
Geoffrey McRae
0d1d49b00e [host] dxgi: wait for sync before trying to read the memory map 2017-12-18 17:35:35 +11:00
Geoffrey McRae
e298f9169c [client] dxgi: persistant map the texture memory 2017-12-18 17:18:37 +11:00
Geoffrey McRae
9e75c7ab34 [host] boost the priority to realtime (run as admin required) 2017-12-18 17:18:11 +11:00
Geoffrey McRae
8dec59f3ff [host] dxgi: don't release the frame until we need a new one
Per Microsoft spec we should not release the frame until we are about to
acquire another frame, this pervents additional GPU overhead on the
guest.
2017-12-18 12:03:22 +11:00
Geoffrey McRae
49acc6ec0b [host] dxgi: fix termination due to wait timeout 2017-12-18 00:10:42 +11:00
Geoffrey McRae
4e6c1ea648 [host] fix build in VS++ 2017-12-18 00:06:53 +11:00
Geoffrey McRae
0ac1992019 [client] add new OpenGL-Basic renderer
This is based on bf8da7fd7e4397fe9931e82e52753806f1eee7e0 by @kiljacken
Per issue #11 on some cards this method performs much better then the
persistant buffering used in the standard OpenGL renderer.

Closes #11
2017-12-17 23:32:08 +11:00
Geoffrey McRae
5305ec5dd1 [client] opengl: made vsync option function again 2017-12-17 23:24:58 +11:00
Geoffrey McRae
313a4122bc [client] add -g option to force a specific renderer 2017-12-17 23:15:18 +11:00
Geoffrey McRae
065b8c1eab [client] fix typo in help text 2017-12-17 22:45:26 +11:00
Geoffrey McRae
424dc8bb13 [client] add renderer option list 2017-12-17 22:33:02 +11:00
Geoffrey McRae
06e38d897d [client] implemented renderer specific option API
Please note the vsync and mipmap options are now specific to OpenGL
To configure them use the following options:

  -o opengl:mipmap=1
  -o opengl:vsync=0
2017-12-17 22:21:59 +11:00
Geoffrey McRae
f3e19b743c [client] added ability to pass options to renderers 2017-12-17 20:32:44 +11:00
Geoffrey McRae
deee61efa9 [client] cosmetics 2017-12-17 20:16:43 +11:00
Geoffrey McRae
71c7f30265 [client] added -Q feature to prevent accidental applicaiton closure
Closes #21
2017-12-17 20:11:52 +11:00
arcnmx
e6c6c16d56 [host] compile NvFBC on mingw 2017-12-17 09:11:25 +11:00
Geoffrey McRae
3784e9c06f [client] added support for new header format 2017-12-17 05:21:02 +11:00
Geoffrey McRae
24709ef186 [host] dxgi: set the pitch on new frames 2017-12-17 05:20:40 +11:00
Geoffrey McRae
db59e67ddb [host] update capture classes to return the pitch 2017-12-17 05:05:56 +11:00
Geoffrey McRae
1815387bbb [host] update to use the new header format 2017-12-17 05:03:47 +11:00
Geoffrey McRae
6595374a2c [common] cleanup header format and move resettable members 2017-12-17 05:03:16 +11:00
Geoffrey McRae
9d8f3a79b0 [host] detect switch user event and wait instead of terminating
Fixes #22
2017-12-17 04:50:04 +11:00
Geoffrey McRae
bf85358715 Revert "[host] simplify dll loading"
This reverts commit b89a8fee04.
2017-12-17 04:04:25 +11:00
Geoffrey McRae
b77a34b8b6 [host] DXGI: fix Secure Desktop wait logic
Fixes #20
2017-12-17 02:27:48 +11:00
Geoffrey McRae
287b983d27 [client] opengl: fixed broken mipmap logic
mipmapping is turned off for images that are scaled up a it degrades the
output quality.
2017-12-16 11:25:01 +11:00
Geoffrey McRae
7c5b2b5c1c [host] dxgi: re-send the last frame if capture times out
This change prevents the guest from stalling on startup if there are no
frames being captured
2017-12-16 10:24:37 +11:00
Geoffrey McRae
758b7af754 [host] use a local copy of the header and then update it all in one go
Writing to shared memory is much faster then reading as the shared
memory is not cached, this change ensures we are using a local copy
of the header performing the final update all in one go.
2017-12-16 10:06:55 +11:00