Commit Graph

368 Commits

Author SHA1 Message Date
Geoffrey McRae
f8d61da618 [client] default client size to something more reasonable 2017-12-12 03:59:55 +11:00
Geoffrey McRae
cae4fa3aa6 [client] allow texture stretch when in GL buffer mode 2017-12-12 03:59:55 +11:00
Geoffrey McRae
c0507f5a15 [client] fix incorrect texture buffer index 2017-12-12 03:59:55 +11:00
Geoffrey McRae
bed2d95ccd [client] added checks for invalid offsets by the guest 2017-12-12 03:59:55 +11:00
Geoffrey McRae
e2160a5eda [client] Added window positional options 2017-12-12 03:59:55 +11:00
Geoffrey McRae
52ad00fb0d [client] added client configuration options 2017-12-12 03:59:55 +11:00
Geoffrey McRae
5ecf2d36c1 [host] Updated to use the new header format 2017-12-12 03:59:55 +11:00
Geoffrey McRae
cb96bd6493 [common] removed deprecated image formats 2017-12-12 03:59:55 +11:00
Geoffrey McRae
4731b13a03 [client] initial parameter implementation 2017-12-12 03:59:55 +11:00
Geoffrey McRae
34e67b1b57 [client] added KVMGFX_HEADER_VERSION define 2017-12-12 03:59:55 +11:00
Geoffrey McRae
72b69a6659 [client] removed DrawFunc typedef 2017-12-12 03:59:55 +11:00
Geoffrey McRae
e774a0bb06 [client] removed deprectaed drawFunc and improved error handling 2017-12-12 03:59:55 +11:00
Geoffrey McRae
b221382420 [client] removed deprecated compression functions 2017-12-12 03:59:55 +11:00
Geoffrey McRae
96ae755856 [client] state struct rename 2017-12-12 03:59:55 +11:00
Geoffrey McRae
74403cce8c [client] kick the guest early to get the first frame faster 2017-12-12 03:59:55 +11:00
Geoffrey McRae
a413362e53 [client] added changes to Makefile to include additional GL libs 2017-12-12 03:59:55 +11:00
Geoffrey McRae
249801b52b [client] fixed RGB support 2017-12-12 03:59:55 +11:00
Geoffrey McRae
d1ef8d204a [client] Added GL_ARB_buffer_storage support
This improves client performance by 4x if the video driver supports
this extension. OpenGL 4.1 is required for this feature to be used
2017-12-12 03:59:55 +11:00
Geoffrey McRae
9c90a53871 [client] Increased spice mouse ringbuffer size to avoid input overflows
Seems that some rare conditions will overflow the buffer on window
entry/exit, confirmed by testing performed by Clemor. This should help
with this.
2017-12-12 03:59:55 +11:00
Geoffrey McRae
f75d5b7f54 [guest] reworked mouse sync to better handle resolution changes 2017-12-12 03:59:55 +11:00
Geoffrey McRae
12617479d4 [host] Prevent NvFBC from stalling
NvFBC will wait forever for a change if nothing has changed, instead use
a timeout so that if the guest has re-connected it doesn't stall waiting
for a guest update.
2017-12-12 03:59:55 +11:00
Geoffrey McRae
f91b837172 [host] fixed NvFBC bpp problem in nocrop mode 2017-12-12 03:59:55 +11:00
Geoffrey McRae
3a64f9b96c [host] Use ARGB instead of RGB for performance
This is counter intuative as it consumes more RAM, but performance is
improved on the client as video hardware doesn't work in RGB but BGRA.
2017-12-12 03:59:55 +11:00
Geoffrey McRae
ad9b78a7cc [host] altered to use common memcpySSE 2017-12-12 03:59:55 +11:00
Geoffrey McRae
05d83d2311 [client] added memcpySSE 2017-12-12 03:59:55 +11:00
Geoffrey McRae
9de71ed2da [host] memory performance improvements 2017-12-12 03:59:55 +11:00
Geoffrey McRae
534e9425f1 [host] Added SMID BGRAToRGB support and implemented it in DXGI 2017-12-12 03:59:55 +11:00
Geoffrey McRae
6eb40a1897 [host] added option parsing to application 2017-12-12 03:59:55 +11:00
Geoffrey McRae
71c6e5d317 [host] NvFBC now takes full screen capture and crops off letterboxing
For this to function correctly the display scaling in the nvidia control
panel must be set to "No scaling", failure to do so will cause incorrect
window cropping. This is due to the inability to capture a non-scaled
image using NvFBC.
2017-12-12 03:59:55 +11:00
Geoffrey McRae
6f5eba3c01 [client] removed debug message output 2017-12-12 03:59:55 +11:00
Geoffrey McRae
b6857d94f1 [client] added support for double buffering 2017-12-12 03:59:55 +11:00
Geoffrey McRae
16a8acb303 [host] implemented double buffering 2017-12-12 03:59:55 +11:00
Geoffrey McRae
fcf0976081 [host] removed MTMemcpy, overheads negate performance gains 2017-12-12 03:59:55 +11:00
Geoffrey McRae
5899508a5b [host] add initial buffering support 2017-12-12 03:59:55 +11:00
Geoffrey McRae
8140d347ff [client] FRAME_TYPE_INVALID is never a valid type to compare 2017-12-12 03:59:54 +11:00
Geoffrey McRae
79c565f114 [client] cosmetics and removed unused defines 2017-12-12 03:59:54 +11:00
Geoffrey McRae
457b332d2a [client] removed multi-threaded memcpy, overheads negate any gains 2017-12-12 03:59:54 +11:00
Geoffrey McRae
c18e5a13aa [host] corrected error in DXGI retry logic 2017-11-04 11:15:06 +11:00
Geoffrey McRae
346f62a48a [host] added getc to wait around when debugging 2017-11-04 06:12:44 +11:00
Geoffrey McRae
1975bc13bc [host] make DXGI detect the secure desktop and wait
While we can't interact with UAC and CTL+ALT+DEL stuff, we can alteast
wait around for it to return so we can re-init and continue to stream.
2017-11-04 06:11:24 +11:00
Geoffrey McRae
00c96a7dec [host] removed left behind change from debugging 2017-11-04 04:02:55 +11:00
Geoffrey McRae
9287ec97eb [host] made DXGI ReInitialization more robust on mode changes
DXGI doesn't like to restart too fast, com exceptions are logged and the
duplication device fails to create with an E_ACCESS_DENIED error. Adding
a 200ms sleep between teardown and re-init resolves this issue.
2017-11-04 04:00:00 +11:00
Geoffrey McRae
32d61023e5 [host] fixed debug message output 2017-11-04 03:58:19 +11:00
Geoffrey McRae
902a653ab2 [host] removed deprecated DXGICapture code from the project 2017-11-04 00:19:06 +11:00
Geoffrey McRae
8fadf0a80c [host] Added cursor support to DXGI capture 2017-11-04 00:14:30 +11:00
Geoffrey McRae
f90c258c34 [host] initial rewrite of DXGI capture 2017-11-03 22:20:48 +11:00
Geoffrey McRae
dba6720724 [vendor] Fixed DXGI mouse flicker/dissapear when there is no activity 2017-11-03 00:40:00 +11:00
Geoffrey McRae
dfa2a5809a [vendor] fixed out of bounds memory access on negative pointer offsets 2017-11-03 00:27:22 +11:00
Geoffrey McRae
ffd2fc1824 [host] Fixed the DXGIManager to capture the cursor properly.
Note: This class will be entirely re-written when I find some time,
it is very poorly implemented, full of assumptions and creates a new
texture for every single frame 🤦.
2017-11-03 00:18:37 +11:00
Geoffrey McRae
7d83af9410 [host] added DXGI Desktop Duplication support 2017-11-02 22:37:19 +11:00