Geoffrey McRae
3302d353cf
[client] always use spice mouse host mode
...
Since we only ever use offset movements as SPICE doesn't properly
support absolute x/y positional information without a virtual tablet
device (which breaks relative mode needed for capture), just always run
in this mode. This fixes an issue when the spice guest tools are
installed and the mouse fails to work when not captured.
2020-08-09 16:17:08 +10:00
Geoffrey McRae
1899d9f1da
[client] reset the frame time when we get a frame signal
...
This stops a duplicate frame rendering bug due to failure to discipline
based on the signal timing.
2020-08-09 15:55:12 +10:00
Geoffrey McRae
fb9b772db0
[client] we are getting the clock anyway, just reset the time
2020-08-09 15:54:45 +10:00
Geoffrey McRae
302b988524
[client] use atomics to track frame counts and avoid extra signals
2020-08-09 15:14:17 +10:00
Geoffrey McRae
19c2fe9b5e
Revert "[common] linux: improve event mechanics"
...
The logic here is wrong, this should be done externally as multiple
waiters will cause issues
2020-08-09 14:44:00 +10:00
Geoffrey McRae
88d25ee98c
[common] linux: improve event mechanics
2020-08-09 13:26:55 +10:00
Geoffrey McRae
0f2ecdf5f1
[obs] cosmetic
2020-08-09 12:31:56 +10:00
Geoffrey McRae
3511fb8d59
[obs] microsttuer fix, be sure to always grab the latest frame
2020-08-09 12:29:52 +10:00
Geoffrey McRae
1d6d640b6e
[host] dxgi: default to using the acquire lock
2020-08-07 20:31:46 +10:00
Geoffrey McRae
977d7b277d
[host] dxgi: boost GPU thread priority if possible
2020-08-07 19:44:00 +10:00
Geoffrey McRae
be7820303f
[common] fixed debug formatting across platforms
2020-08-03 15:05:35 +10:00
Geoffrey McRae
43503222c7
[common] framebuffer: fixed incorrect streaming usage
2020-08-03 14:41:57 +10:00
Geoffrey McRae
85b8c12abf
[common] adjust framebuffer read/write strategy for better cache usage
2020-08-03 12:33:08 +10:00
Geoffrey McRae
7af053497e
[common] unroll the framebuffer write loop and increase the chunk size
2020-08-03 12:24:17 +10:00
Geoffrey McRae
9e3a42cb62
[host] don't stop the timer when restarting capture
2020-08-03 12:04:50 +10:00
Geoffrey McRae
aa32c5ffad
[common] framebuffer: added missing header include
2020-08-03 11:58:38 +10:00
Geoffrey McRae
62d1bd1ea2
[common] framebuffer: use stream load instead of plain load
2020-08-03 11:55:38 +10:00
Geoffrey McRae
2329e993ee
[common] fixed framebuffer write SIMD code performance
2020-08-03 11:44:24 +10:00
Geoffrey McRae
da655b86c3
[common] improve frambuffer copy to avoid cache pollution (SIMD)
2020-08-03 11:16:30 +10:00
Max Sistemich
c5ff8bd4ce
[common] linux: implement timers
2020-07-25 00:38:15 +10:00
Geoffrey McRae
06aee158de
[client] egl: make better use of atomics and fix modulus bug
2020-07-24 17:39:16 +10:00
Samuel Bowman
bd42445ea7
[client] add option to capture input on start
2020-07-17 08:39:32 +10:00
Geoffrey McRae
ede96fa486
[client] egl: don't map the texture until it's needed
...
The texture buffer may still be in use if we try to re-map it
immediately, instead only map when we need it mapped, and unmap
immediately after advancing the offset allowing the render thread to
continue while the unmap operation occurs
2020-05-30 16:50:27 +10:00
Geoffrey McRae
67dec216d2
[host] search the applications local directory for the config
2020-05-30 12:31:26 +10:00
Geoffrey McRae
fcbdf7ba4f
[client] egl: fix non-streaming texture updates
2020-05-29 16:54:25 +10:00
Geoffrey McRae
e8c949c1e7
[client] egl: dont re-setup the fps texture on each update
2020-05-29 16:47:21 +10:00
Geoffrey McRae
28c93ef5ac
[client] egl: don't unmap/map all buffers for each frame
2020-05-29 15:48:59 +10:00
Geoffrey McRae
d7921c5d5f
[client] report the host version on mismatch if possible
2020-05-29 14:24:06 +10:00
Geoffrey McRae
6d296f2b44
[client] stop people running the client as root
2020-05-29 14:18:02 +10:00
Geoffrey McRae
553e2830bb
[client/host] share the host version with the client for diagnostics
2020-05-29 14:14:31 +10:00
Geoffrey McRae
667ab981ba
[host] send the latest cusror information when a new client connects
2020-05-25 14:37:02 +10:00
Geoffrey McRae
bc7871f630
[c-host] renamed finall to just plain host
2020-05-25 13:42:43 +10:00
Geoffrey McRae
d579705b10
[misc] minor readme update
2020-05-22 22:53:21 +10:00
Geoffrey McRae
94d383a8c1
[obs] remove useless advance operation
2020-05-22 22:51:41 +10:00
Geoffrey McRae
08062e3fc3
[client] check for underflow when checking frame time
2020-05-22 22:02:44 +10:00
Geoffrey McRae
4441427943
[client] implemented better clock drift correction
2020-05-22 20:45:59 +10:00
Geoffrey McRae
f5da432d38
[client] put back the fps correction from drift/skew
2020-05-22 18:39:19 +10:00
Geoffrey McRae
60f665a65c
[client] more fps limiter fixes
2020-05-22 18:28:16 +10:00
Geoffrey McRae
9b6174793a
[client] revert cusror update render trigger
...
While it makes the mouse a bit nicer it causes frame skips during cursor
movement.
2020-05-22 18:16:48 +10:00
Geoffrey McRae
dedab38b99
[client] rename fpsLimit
to fpsMin
2020-05-22 18:15:17 +10:00
Geoffrey McRae
4580b18b04
[client] fix the fps limiter
2020-05-22 18:06:29 +10:00
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