Geoffrey McRae
88dad36449
[client] allow mouse movements to trigger render updates
...
Now EGL is lockless we can allow cursor updates to trigger frame updates
directly.
2020-05-22 18:00:18 +10:00
Geoffrey McRae
075c82b32c
[client] egl: fix context binding enabling a lock free implementation
2020-05-22 17:47:19 +10:00
Geoffrey McRae
ae2ffd0a28
[client] drop the default FPS target to 60 now that the fps is dynamic
2020-05-21 14:59:51 +10:00
Geoffrey McRae
26eea64689
[client] remove microstutter warning when using the fps display
...
This warning was added when it was thought to be the cause of the
microstutters, however this has been disproven with the latest batch of
changes.
2020-05-21 14:16:01 +10:00
Geoffrey McRae
c9ff1e1949
[client] egl: alter warning about low fps as it doesn't apply anymore
2020-05-21 14:09:51 +10:00
Geoffrey McRae
e31f38eadc
[client] allow frame updates to be triggered by a timed event
...
This is a major change to how the LG client performs it's updates. In
the past LG would operate a fixed FPS regardless of incoming update
speed and/or frequency. This change allows LG to dynamically increase
it's FPS in order to better sync with the guest as it's rate changes.
2020-05-21 13:41:59 +10:00
Geoffrey McRae
756b57400b
[client] egl: move context init to lock function
2020-05-21 11:55:35 +10:00
Geoffrey McRae
01bfd2e090
[client] egl: make better use of the second thread for streaming
2020-05-21 11:44:56 +10:00
Geoffrey McRae
dc3e89e65c
[obs] add delay to fix startup
...
this delay is needed to allow the host clock to change so we can
validate the session.
2020-05-21 09:37:20 +10:00
Geoffrey McRae
240d0ff263
[client] add short delay to improve initial startup
2020-05-21 09:32:08 +10:00
Geoffrey McRae
3b47a4113f
[client/obs] update to use new LGMP init api
2020-05-21 09:28:41 +10:00
Geoffrey McRae
a6d6a49f82
[client] egl: use atomic members instead of locking the entire state
2020-05-21 08:20:30 +10:00
Geoffrey McRae
f8ff3faf78
[obs] improvements to help prevent client timeouts
2020-05-21 07:31:12 +10:00
Geoffrey McRae
d899c26617
[client] egl: add low FPS warning when failing to keep up
2020-05-19 22:42:55 +10:00
Geoffrey McRae
73ba325072
[client] egl: reworked the streaming texture pipeline
2020-05-19 22:03:36 +10:00
Geoffrey McRae
aff19e13c7
[profiler] client: updated to use new lgmp API and path
2020-05-19 11:37:44 +10:00
Geoffrey McRae
007122df43
[all] remove github specific unused config file
2020-05-19 11:19:20 +10:00
Geoffrey McRae
06f8911ee1
[all] project cleanup
2020-05-19 11:06:39 +10:00
Geoffrey McRae
f96f0fecda
[client] egl: use proper atomics for pbo counting
2020-05-18 09:06:11 +10:00
Geoffrey McRae
21987cb423
[obs] update to use new LGMP interface
2020-05-17 12:04:41 +10:00
Geoffrey McRae
18cc8d7cab
[client] fix host wait logic and print more useful help
2020-05-17 11:54:07 +10:00
Geoffrey McRae
fc0dbd8782
[c-host] add kvmfr version to host output
2020-05-17 11:26:45 +10:00
Geoffrey McRae
b7ca3d7e37
[client] cleanup debug output
2020-05-17 11:25:27 +10:00
Geoffrey McRae
c4bf992c0c
[client/host] added enforcement of KVMFR versioning
2020-05-17 11:13:08 +10:00
Geoffrey McRae
dcce288a98
[obs] fix another potential deadlock
2020-04-25 02:26:34 +10:00
Geoffrey McRae
cfd8126e5d
[obs] remove debug printf
2020-04-25 02:26:16 +10:00
Geoffrey McRae
7a96642498
[client & host] update the LGMP project to fix timeout issues
2020-04-25 02:25:44 +10:00
Geoffrey McRae
8d5a42c233
[obs] fix potential deadlock
2020-04-24 23:03:40 +10:00
Geoffrey McRae
00a41be413
[obs] use thread to handle frame advance when obs is behind
2020-04-24 21:31:12 +10:00
Geoffrey McRae
fdb9a9cca8
use a timer for the LGMP host instead of a thread
2020-04-24 21:31:12 +10:00
Geoffrey McRae
243efcd51a
[client] fix missing release_key_binds for mouse sensitivity bindings
2020-04-23 18:00:17 +10:00
Geoffrey McRae
b9cdaf8e19
update PureSpice to fix clipboard bug
2020-04-21 13:17:49 +10:00
Geoffrey McRae
4758caa772
updated PureSpice submodule
2020-04-21 11:36:24 +10:00
Geoffrey McRae
4058522f68
update PureSpice submodule
2020-04-20 09:54:12 +10:00
Geoffrey McRae
80437c564d
update PureSpice submodule
2020-04-15 17:55:43 +10:00
Geoffrey McRae
503fc7c312
[spice] updated the submodule to fix a minor shutdown glitch
2020-04-14 16:46:55 +10:00
Geoffrey McRae
f6691a90c0
[client/obs] improve frambuffer_read functions to support copy pitch
...
Fixes #244
2020-04-14 13:27:07 +10:00
Mikko Rasa
ead09ed110
[client] opengl: render frame if config didn't change
2020-04-14 12:19:59 +10:00
Geoffrey McRae
ac1ecd2e7b
[client] update PureSpice submodule to resolve build issue with -O3
2020-04-13 20:07:08 +10:00
Geoffrey McRae
3538e7f6f4
[c-host] dxgi: add more robust error handling on cursor shape failure
...
Closes #264 - Credit to https://github.com/DataBeaver
2020-04-12 14:43:50 +10:00
Geoffrey McRae
75bc038144
[client] removed accidental debug commit
2020-04-12 13:48:59 +10:00
Geoffrey McRae
7018a3e737
[c-host] dxgi: close the desktop on deinit
2020-04-12 13:46:56 +10:00
Geoffrey McRae
d3836d4548
[c-host] Enable secure desktop capture using SetThreadDesktop
...
Closes #263 - Credit to https://github.com/DataBeaver for this gem!
2020-04-12 13:35:40 +10:00
Geoffrey McRae
dbd7db7787
[common] fix framebuffer_prepare to use atomic_store
2020-04-12 13:16:55 +10:00
Geoffrey McRae
1222fd40b7
[common] fix FrameBuffer to use atomics correctly
...
Might Fix #248
2020-04-12 13:14:53 +10:00
Geoffrey McRae
b5f4c639fd
[client] provide better mouse tracking when exiting/entering the window
2020-04-07 14:54:38 +10:00
Geoffrey McRae
cddeeff3fc
[c-host] LGMP: increase the timeouts
2020-04-07 14:54:38 +10:00
Geoffrey McRae
b953b2b807
[module] added missing kvmfr.h, fixes #253
2020-03-22 09:20:09 +11:00
Geoffrey McRae
367a73d033
[spice] updated the submodule, fixes #249
2020-03-22 09:12:54 +11:00
Geoffrey McRae
1ac13658e1
[module] fix compilation for linux 5.6
2020-03-11 00:28:44 +11:00
Geoffrey McRae
582ed6b5d1
[c-host] dxgi: dont send null movements when only the visibility changed
2020-02-12 18:40:28 +11:00
Geoffrey McRae
e2adbaa5c1
[c-host] dxgi: fix failure to provide cursor visibility information
2020-02-12 18:36:11 +11:00
Geoffrey McRae
4acf800ace
[client] updated the PureSpice submodule
2020-02-03 17:31:56 +11:00
Geoffrey McRae
7cc305c2f5
[client] updated spice submodule to fix shutdown bug
2020-02-01 14:31:46 +11:00
Geoffrey McRae
95f5962186
[client] update to properly disconnect from spice
2020-02-01 14:24:23 +11:00
Geoffrey McRae
f4c2996a3a
[repos] updated submodules
2020-02-01 14:22:07 +11:00
Geoffrey McRae
10c4037694
[doc] added new github sponsorship option to README.md
2020-02-01 11:44:51 +11:00
Geoffrey McRae
52be6deccf
[github] updated sponsorship for github sponsors
2020-02-01 11:43:42 +11:00
Geoffrey McRae
9cc21c2a62
[all] updated the main README.md file
2020-01-31 21:43:58 +11:00
Geoffrey McRae
0b7f422d5d
[client] moved spice into a seperate repository
2020-01-31 21:39:57 +11:00
Geoffrey McRae
0ca760fad6
[c-host] revert locking series, this needs more thought
...
Revert "[c-host] make pointer post function thread safe"
This reverts commit 3feed7ba07
.
Revert "[c-hots] fix incorrect unlock timing"
This reverts commit 57f1f2d1fe
.
Revert "[c-host] increase the queue length and remove debug output"
This reverts commit b0f9f15a60
.
Revert "[c-host] dxgi: use low level mouse input by default"
This reverts commit dc4d820666
.
Revert "[c-host] nvfbc: no need for a cursor position event with LGMP"
This reverts commit e30b54ddb2
.
2020-01-29 23:23:31 +11:00
Geoffrey McRae
b0f9f15a60
[c-host] increase the queue length and remove debug output
2020-01-29 22:05:47 +11:00
Geoffrey McRae
939bb07603
[all] cleanup use of atomic locking and switch to C11 stdatomic
2020-01-29 19:06:09 +11:00
Geoffrey McRae
cc2c49644d
[spice] reworked to avoid locking requirements on the input channel
...
POSIX `send` is thread safe, to take advantage of this the code has been
changed to construct a contiguous buffer and perform the send in a
single operation preventing any risk of a race condition.
Only the main channel still requires an interlock as the VD agent
requires multiple sends to transmit a full buffer.
2020-01-29 18:53:33 +11:00
Geoffrey McRae
29f221d547
[spice] improve connection code to use a single buffer
2020-01-29 16:52:23 +11:00
Geoffrey McRae
2e32ceb6e0
[LGMP] update the submodule
2020-01-29 14:03:12 +11:00
Geoffrey McRae
2cbc9b6426
[kvmfr] stop the module building the test application by default
2020-01-29 14:01:52 +11:00
Geoffrey McRae
3f3a8f898d
[common] 1e9
is a floating point notation
2020-01-29 14:01:14 +11:00
Geoffrey McRae
6e62ea5364
[common] fix building on mingw for linux
2020-01-28 05:10:38 +11:00
Geoffrey McRae
5d39b6160a
[lgmp] update module again with actual fix!
2020-01-28 04:28:55 +11:00
Geoffrey McRae
418149c9a6
[LGMP] updated the submodule with the fixed locking mechanics
2020-01-27 22:12:20 +11:00
Geoffrey McRae
60acc3ef44
[obs] update the LGMP module to fix low frame rate capture issue
2020-01-27 15:05:25 +11:00
Geoffrey McRae
8dbc1daaf4
[common] linux: signal should signal all listeners
2020-01-27 14:33:57 +11:00
Geoffrey McRae
5a23d048bd
[LGMP] submodule update again
2020-01-27 13:14:16 +11:00
Geoffrey McRae
b658ea6459
[LGMP] another submodule update
2020-01-27 13:06:46 +11:00
Geoffrey McRae
dc91a0d807
[LGMP] updated the submodule again
2020-01-27 12:49:36 +11:00
Geoffrey McRae
c1fd6552d2
[client] fix hang when trying to terminate an unconnected client
2020-01-27 12:25:47 +11:00
Geoffrey McRae
6b2e78acdf
[all] updated LGMP module, a rebuild of host and client IS required
2020-01-27 11:29:54 +11:00
Geoffrey McRae
7b11ab04c6
[client] always update the renderer cursor state
2020-01-27 02:11:21 +11:00
Geoffrey McRae
bced5f95ff
[all] make cursor visible a flag and send it seperate to position
2020-01-27 02:07:32 +11:00
Geoffrey McRae
9d7f773b9c
[c-host] decrease LGMP polling interval to a sane value and comment
2020-01-27 01:55:14 +11:00
Geoffrey McRae
fea0a98b9e
[c-host] dxgi: invisible cursors do not have position information
2020-01-27 01:47:40 +11:00
Geoffrey McRae
dcc9625803
[client] updated to use new cursor state flags
2020-01-26 17:30:16 +11:00
Geoffrey McRae
b4cf8f76c8
[c-host] mousehook: ignore repeated hook events
2020-01-26 16:23:35 +11:00
Geoffrey McRae
687eddcc63
[kvmfr] fixed incorrect buffer size calculation
2020-01-24 17:07:09 +11:00
Geoffrey McRae
9d6d137b50
[c-host] fix bounds checking on frame index
2020-01-24 16:31:03 +11:00
Geoffrey McRae
a75b95694b
[c-host] actually use the 2nd LGMP frame
2020-01-24 16:06:38 +11:00
Geoffrey McRae
c7aa8871e4
[common] fixed improper comment parsing, fixes #233
2020-01-21 16:35:21 +11:00
Geoffrey McRae
f9d919bdbb
[client] increase the lgmp queue timeouts
2020-01-20 14:18:45 +11:00
Geoffrey McRae
4d0f019ad5
[spice] prepare spice for external usage
2020-01-19 06:51:21 +11:00
Geoffrey McRae
e6154e685f
[client] cosmetics
2020-01-19 06:49:56 +11:00
Geoffrey McRae
2c59b5f557
[client] added checking for invalid arguments to custom string options
2020-01-19 06:48:20 +11:00
Geoffrey McRae
4746c89227
[all] moved time and locking methods to the common library
2020-01-17 14:35:08 +11:00
Geoffrey McRae
278d851c7c
[egl] added fallback for platforms not supporting eglGetPlatformDisplay
2020-01-17 11:50:00 +11:00
Geoffrey McRae
406e22a681
[client] override new behaviour in SDL 2.0.15 and disable xinput2
...
xinput2 is used to get touch interface events with the side effect of
consuming MotionNotify events which we use because of SDL2's inability
to correctly track the window size. Since we are not that intertested in
touch for our usecase, we just turn the events off again.
2020-01-13 22:21:12 +11:00
Geoffrey McRae
17e05c6fd5
[all] expose the FrameBuffer struct for correct sizeof calculations
2020-01-13 19:30:49 +11:00
Geoffrey McRae
9846762991
[all] align the frame data to the page boundary
2020-01-13 19:17:09 +11:00
Geoffrey McRae
ad8a8b52be
[c-host] ensure frames are page aligned
2020-01-13 15:52:54 +11:00
Geoffrey McRae
0d29527758
[common] added agnostic function sysinfo_getPageSize
2020-01-13 15:52:31 +11:00
Geoffrey McRae
7a96c9fe24
[kvmfr] don't recreate the pages for each map
2020-01-13 15:42:45 +11:00