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
2a93e2ed55
[host] removed comments from prior testing
2017-12-19 13:40:59 +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
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
arcnmx
e6c6c16d56
[host] compile NvFBC on mingw
2017-12-17 09:11:25 +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
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
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
jmossman
b89a8fee04
[host] simplify dll loading
2017-12-16 07:01:41 +11:00
Geoffrey McRae
106136afd6
[host] corrections to build with VC++
2017-12-15 09:51:23 +11:00
arcnmx
a01d755ab5
[host] configure/ifdef out nvfbc
2017-12-14 15:39:19 -05:00
arcnmx
9a9d84cd1f
[host] remove ATL, mingw doesn't support it
2017-12-14 15:39:09 -05:00
arcnmx
892a3970ff
[host] remove nonexistent ICapture function
2017-12-14 15:39:03 -05:00
arcnmx
d6fee6bf0b
[host] inline the implementation of min()
2017-12-14 15:38:51 -05:00
arcnmx
7691093121
[host] DEBUG_* string format fixes
2017-12-14 15:38:43 -05:00
arcnmx
524183661d
[host] fix include paths and casing
2017-12-14 15:38:25 -05:00
Geoffrey McRae
c0b67e7cb2
[host] DXGI: copy based on the actual pitch
2017-12-14 20:34:32 +11:00
Geoffrey McRae
f633c63d51
[host] added support for cursor pitch
2017-12-13 04:47:28 +11:00
Geoffrey McRae
4b4aca841c
[host] don't spam the client with mouse updates when nothing has changed
2017-12-13 02:30:19 +11:00
Geoffrey McRae
818164da7f
[host] updated to use new protocol design
2017-12-12 07:56:50 +11:00
Geoffrey McRae
b0f83d7106
[host] dxgi reinit timeout was too short
2017-12-12 05:05:21 +11:00
Geoffrey McRae
219179b375
[misc] added website url to sources
2017-12-12 04:30:47 +11:00
Geoffrey McRae
8c8d0ec7af
[host] fixed DXGI cursor offset
2017-12-12 03:59:58 +11:00
Geoffrey McRae
ad6c2ab544
[host] Cropping is still required on NvFBC... :(
2017-12-12 03:59:58 +11:00
Geoffrey McRae
7f3657e5f0
[host] reversed the cropping logic, likely not needed anymore
2017-12-12 03:59:57 +11:00
Geoffrey McRae
a61293b551
[host] fixed support for high DPI desktops (4K+)
2017-12-12 03:59:57 +11:00
Geoffrey McRae
51bc7631ab
[host] fixed incorrect checking of difference map
2017-12-12 03:59:57 +11:00
Geoffrey McRae
0b290d83d3
[host] Numerous performance improvements and minor bug fixes
2017-12-12 03:59:57 +11:00
Geoffrey McRae
ec13fc161d
[host] rename project to "Looking Glass"
2017-12-12 03:59:57 +11:00
Geoffrey McRae
a54f3000f5
[host] reworked capture to capture at the hosts's frame rate
...
This will help frame delivery to the host arrive on time, as well as
allow lower latency with a higher host refresh rate.
Data offset addresses are now also pre-calculated rather then
updated on every frame.
2017-12-12 03:59:56 +11:00
Geoffrey McRae
d450d792e3
[host] Don't specify D3D11_CREATE_DEVICE_DEBUG in release builds
2017-12-12 03:59:56 +11:00
Geoffrey McRae
5ecf2d36c1
[host] Updated to use the new header format
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
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
fcf0976081
[host] removed MTMemcpy, overheads negate performance gains
2017-12-12 03:59:55 +11:00
Geoffrey McRae
c18e5a13aa
[host] corrected error in DXGI retry logic
2017-11-04 11:15:06 +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
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
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
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
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