Commit Graph

3201 Commits

Author SHA1 Message Date
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
Geoffrey McRae
44d7e9e77c [host] added initial framework for DXGI capture 2017-11-02 17:57:11 +11:00
Geoffrey McRae
fc192c0016 [host] removed namespace sillyness 2017-11-02 17:57:10 +11:00
Geoffrey McRae
23b0dc7c81 [host] Added GPLv2 license to host project 2017-11-01 03:53:06 +11:00
Geoffrey McRae
bcc2fb1f74 [host] removed obsolete TODO placeholder 2017-11-01 03:52:49 +11:00
Geoffrey McRae
3ec4ff2c8a updated the readme 2017-11-01 03:48:48 +11:00
Geoffrey McRae
01b10b3ee1 [host] converted program to a windows hidden/background user app.
NvFBC will not start when running as a service, likely intentional
security of the API to prevent it from being abused.
2017-11-01 03:23:46 +11:00
Geoffrey McRae
e935a09441 [host] removed nvidia lib path and fixed subsystem type for other builds 2017-11-01 02:19:21 +11:00
Geoffrey McRae
9ac3cadc7d [host] added multithreaded memcopy implementation 2017-11-01 02:15:47 +11:00
Geoffrey McRae
de8403dcd6 [cosmetics] fixed unintentional de-indent of code 2017-11-01 02:03:26 +11:00
Geoffrey McRae
ffbd89fb77 [host] NvFBC is now functional 2017-11-01 01:46:47 +11:00
Geoffrey McRae
85f39b7070 [host] initial NvFBC implementation 2017-11-01 00:51:53 +11:00
Geoffrey McRae
b03254b7c2 [host] no need to create a thread when running directly 2017-10-31 23:30:16 +11:00
Geoffrey McRae
8c719ff01a [host] fixed failure to set m_memory in IVSHMEM 2017-10-31 23:29:54 +11:00
Geoffrey McRae
5f19092e4e [cosmetics] fixed case of filenames and includes 2017-10-31 23:22:55 +11:00
Geoffrey McRae
3dd205bafc [host] initial service framework implemented 2017-10-31 23:21:05 +11:00
Geoffrey McRae
941f0f1c16 [host] added IVSHMEM::CreateVectorEvent 2017-10-31 22:17:27 +11:00
Geoffrey McRae
215d2c7a4b [host] implemented initial IVSHMEM interface class 2017-10-31 22:09:57 +11:00