Commit graph

320 commits

Author SHA1 Message Date
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
jmossman
b89a8fee04 [host] simplify dll loading 2017-12-16 07:01:41 +11:00
Geoffrey McRae
2bb8b0227c [client] don't send renderer mouse events until it's configured 2017-12-15 19:14:02 +11:00
Geoffrey McRae
ae4156d041 [client] don't update mouse scaling values until started 2017-12-15 19:14:02 +11:00
Patrick Steinhardt
fe337cf510 [client] ivshmem: fix missing <sys/select.h> include
While the function `ivshmem_wait_irq` makes use of the select(3)
function, it does not include <sys/select.h>. This happens to work on
glibc based systems, which include thet file transitively via other
header files. But on musl libc based systems, this breaks compilation.

Directly include <sys/select.h> to fix the problem.
2017-12-15 18:25:21 +11:00
Geoffrey McRae
7bfed41523 [client] opengl: update mouse draw time when doing decoupled draws 2017-12-15 17:03:51 +11:00
Geoffrey McRae
9bb66b7bd6 [client] opengl: decouple mouse updates from vsync 2017-12-15 16:58:21 +11:00
Geoffrey McRae
f7420317f1 [client] opengl: mouse shape updates bypass the draw timeout 2017-12-15 16:53:26 +11:00
Geoffrey McRae
c1379a45d2 [client] opengl: increase maximum mouse draw frequency 2017-12-15 16:34:29 +11:00
Geoffrey McRae
9c03327701 [client] opengl: added back double buffering and vsync support
This adds back in double buffering and vsync support. This has been
carefully implemented so that the render function blocks until the video
card reports that it has advanced a frame, this ensures that the OpenGL
pipeline never buffers frames.
2017-12-15 16:21:38 +11:00
Geoffrey McRae
0d8b2449cf [client] added back missing vsync disable option 2017-12-15 16:19:47 +11:00
Arti Zirk
d1bd5b3115 Do not minimize fullscreen window on focus loss 2017-12-15 15:59:28 +11:00
Jack Karamanian
e03621a622 [client] Add borderless fullscreen usage 2017-12-15 15:59:09 +11:00
Michał Zając
b93aca796c Add issue template 2017-12-15 13:00:10 +11:00
Jack Karamanian
606da0ae47 Add borderless fullscreen option 2017-12-15 12:59:34 +11:00
Geoffrey McRae
d08fba9cf9 [host] fix cursor not visible on client reconnect 2017-12-15 12:56:39 +11:00
Geoffrey McRae
df13340439 [host] reset the update count when the guest flags a restart 2017-12-15 12:08:41 +11:00
Geoffrey McRae
b6c8136565 [client] initialize the local header copy for proper startup 2017-12-15 12:02:37 +11:00
Geoffrey McRae
0948dda12f [host] implemented variable cursor buffer size 2017-12-15 11:30:25 +11:00
Geoffrey McRae
8ae9f8464b [client] updated client to support new KVMFR cursor dataPos field 2017-12-15 10:51:40 +11:00
Geoffrey McRae
110aced7d1 [common] changed KVMFR to allow for variable cursor buffer sizes 2017-12-15 10:51:10 +11:00
Geoffrey McRae
3c61814c56 [client] windows cursors are in BGRA format 2017-12-15 10:20:20 +11:00
Geoffrey McRae
133001b545 [host] added NvFBC build configurations to vcxproj 2017-12-15 09:58:51 +11:00
Geoffrey McRae
106136afd6 [host] corrections to build with VC++ 2017-12-15 09:51:23 +11:00