Geoffrey McRae
13f55011c0
[client] don't draw the cursor if it leaves the frame
2020-01-11 12:56:46 +11:00
Geoffrey McRae
05dc713dac
[client] more cursor tweaks for better integration with the WM
2020-01-11 06:03:16 +11:00
Geoffrey McRae
80f3c7934a
[client] more cursor tweaks and some cleanup
2020-01-11 05:22:12 +11:00
Geoffrey McRae
1341bf8fbd
[client] fix mouse acceleration when in capture mode
...
SDL2 really doesn't do this well, instead I have implemented our own
capture method that allows us to maintain better client/server cursor
sync.
2020-01-11 04:53:46 +11:00
Geoffrey McRae
5b163063c3
[client] improved sync with guest cursor position
2020-01-11 03:41:44 +11:00
Geoffrey McRae
c2a15ad89d
[c-host] updated to use new LGMP API to increase the timeout
2020-01-10 20:04:46 +11:00
Geoffrey McRae
c92312a6c6
[obs] implemented intial OBS Looking Glass Client plugin
...
Yes, it works! but no cursor support yet
2020-01-10 18:14:08 +11:00
Geoffrey McRae
3253e7fd10
[all] updated LGMP submodule
2020-01-10 18:12:42 +11:00
Geoffrey McRae
e5178793b3
[client] don't fail on invalid magic at startup
2020-01-10 18:07:18 +11:00
Geoffrey McRae
bec4f83778
[profiler] updated to use LGMP
2020-01-10 18:04:22 +11:00
Geoffrey McRae
22f04a926f
[common] numerious bad usage bug fixes
2020-01-10 18:04:22 +11:00
Geoffrey McRae
1ef406bbaf
[lgmp] updated submodule
2020-01-10 11:19:34 +11:00
Geoffrey McRae
0aa8711796
[lgmp] updated submodule
2020-01-10 11:04:16 +11:00
Geoffrey McRae
bea7c94cae
[client/c-host] updated to use new LGMP naming conventions
2020-01-10 11:01:35 +11:00
Geoffrey McRae
6f551c770c
[client] handle pointer visibility properly
2020-01-09 21:18:35 +11:00
Geoffrey McRae
2d755a45e0
[client] added support for LGMP
2020-01-09 20:32:42 +11:00
Geoffrey McRae
0b8f1a18b2
[LGMP] start of c-host conversion to use LGMP
2020-01-09 15:42:32 +11:00
Geoffrey McRae
8caa220ad5
[common] link setupapi for ivshmem windows implementation
2020-01-06 20:59:34 +11:00
Geoffrey McRae
b8203bec53
[common] properly detect all versions of Windows 8
2020-01-06 20:55:21 +11:00
Geoffrey McRae
5db4c32035
[c-host] dont use DX12 feature levels on Windows8
...
Fixes #218
2020-01-06 20:53:15 +11:00
Geoffrey McRae
9282ed19b2
[client] check for clock drift and correct for it
...
Fixes #224
2020-01-06 20:38:01 +11:00
Geoffrey McRae
45ee79014d
[common] added back support for shared memory files
2020-01-06 00:20:30 +11:00
Geoffrey McRae
0dc0e6490c
[c-host] dxgi: check for failure of getDesc1
2020-01-03 17:29:07 +11:00
Geoffrey McRae
127113a59b
[client] fixed strange resize effect due to loss of precision
2020-01-03 17:23:48 +11:00
Geoffrey McRae
49bf115c84
[client] fix issue with windowmanager forcing the window size (i3wm)
2020-01-03 16:51:24 +11:00
Geoffrey McRae
2196516e2b
[client] added new win:forceAspect
option
...
Fixes #225
2020-01-03 15:53:44 +11:00
Geoffrey McRae
899dbff7e9
[client] use the event data instead of calling SDL_GetWindowSize
2020-01-03 15:26:07 +11:00
Geoffrey McRae
4345d94d68
[client] update client to use the common ivshmem* methods
2020-01-03 15:17:14 +11:00
Geoffrey McRae
074af5d16c
[c-host] init platform app struct
2020-01-03 14:56:13 +11:00
Geoffrey McRae
89d6ea0b5d
[common] move ivshmem code into the common library
2020-01-03 14:53:56 +11:00
Geoffrey McRae
c5baf212c8
[client] switch from SDL_Cond to LGEvent
2020-01-03 00:09:07 +11:00
Geoffrey McRae
ba31c78412
[client] switch from SDL_Thread to lgThread
2020-01-02 23:59:06 +11:00
Geoffrey McRae
1c1d2a0568
[common] moved linux agnostic code into the common library
2020-01-02 23:34:35 +11:00
Geoffrey McRae
0c6ff6822d
[common/c-host] move agnostic code into common
library
2020-01-02 22:21:42 +11:00
Jonathan (JJRcop) Rubenstein
491ffc3576
Fix client not building on void linux
...
Thanks to
SharkWipf#8539,
Aiber#4888,
and Hadet#6969 on the VFIO discord
2019-12-28 00:07:39 +11:00
Geoffrey McRae
85d46ed2b0
[profile] added a tool to help profile the host capture perf
2019-12-14 16:20:17 +11:00
Geoffrey McRae
a6f23f00b4
[client] opengl: handle configuration failure properly
2019-12-12 23:32:31 +11:00
Geoffrey McRae
30e3a43311
[client] opengl: fixed failure to render full frame
2019-12-12 23:04:58 +11:00
Geoffrey McRae
dce6aaefea
[client] fix rare race condition when renderer is not ready
2019-12-10 03:30:04 +11:00
Geoffrey McRae
0e7e918e2c
[client] cleanup and re-order startup/shutdown code
2019-10-26 12:03:10 +11:00
Geoffrey McRae
7d6e061ade
[client] properly shutdown on failure to connect to the spice server
2019-10-26 11:27:05 +11:00
Geoffrey McRae
66891aa536
[client] don't require wayland-egl, fixes #204
2019-10-26 11:23:04 +11:00
Geoffrey McRae
1d7a2ccf82
[c-host] windows: update ivshmem driver header and usage
2019-10-24 19:46:09 +11:00
Geoffrey McRae
e1bfb1234b
[common] obey the destination buffer size
2019-10-14 18:08:06 +11:00
Geoffrey McRae
9377fdfc37
[all] bump KVMFR version due to incompatible changes
2019-10-14 17:19:19 +11:00
Geoffrey McRae
5f1d17ba1f
[host] cosmetics
2019-10-09 19:52:31 +11:00
Geoffrey McRae
4c0ca1c8e7
[client] fix xor support for masked color cursors
...
fixes #200
2019-10-09 19:48:42 +11:00
Geoffrey McRae
8ef1aee35c
[common] fix bug in framebuffer_read
2019-10-09 14:11:45 +11:00
Geoffrey McRae
4168cc8d78
[all] fix the version
2019-10-09 14:04:36 +11:00
Geoffrey McRae
bca54ab1f6
[client/host] added new asyncronous memory copy
...
This changes the method of the memory copy from the host application to
the guest. Instead of performing a full copy from the capture device
into shared memory, and then flagging the new frame, we instead set a
write pointer, flag the client that there is a new frame and then copy
in chunks of 1024 bytes until the entire frame is copied. The client
upon seeing the new frame flag begins to poll at high frequency the
write pointer and upon each update copies as much as it can into the
texture.
This should improve latency but also slightly increase CPU usage on the
client due to the high frequency polling.
2019-10-09 13:53:02 +11:00
Geoffrey McRae
6d2c464436
[client] egl: improved streaming texture syncronization
2019-08-30 12:09:05 +10:00
Geoffrey McRae
e93bd7a3bf
[client] fix shutdown race condition with the frame thread
2019-08-30 11:54:26 +10:00
Geoffrey McRae
da94075e7b
[client] egl: more verbose error on texture egl failures
2019-08-30 11:40:38 +10:00
Geoffrey McRae
69522495de
[client] fix invalid shutdown of renderer outside of it's thread
2019-08-30 11:36:28 +10:00
Geoffrey McRae
fce88fc72c
[EGL] add debug printf helper
2019-08-30 11:33:43 +10:00
Geoffrey McRae
163a2e5d0a
[client] fix failure to build due to broken symlink, fixes #173
2019-07-23 11:06:51 +10:00
Geoffrey McRae
b979752989
[client] added missing include
2019-07-15 18:30:39 +10:00
Geoffrey McRae
4cf6dec592
[all] allow disable of backtrace support during build
2019-06-19 09:13:03 +10:00
Geoffrey McRae
d7fa0aeff9
[client] fix typo in SDL_VIDEODRIVER from prior patch, whoops :)
2019-06-19 09:03:15 +10:00
Geoffrey McRae
2def6346e6
[client] don't override SDL_VIDEODRIVER if it is already set
2019-06-19 09:01:28 +10:00
Geoffrey McRae
607539a2af
[client] improve streaming texture performance
2019-06-13 08:54:51 +10:00
Geoffrey McRae
6d24dd52d6
[c-host] not all versions of mingw support wcstombs_s
...
While the _s functions are for security as they avoid exceeding the
supplied buffer, in our case they are not really required as we are
allocating a buffer large enough to store the entire result.
Fixes #171
2019-06-12 15:31:18 +10:00
Geoffrey McRae
2b4f8091f9
[client] README.md cosmetics
2019-05-31 16:45:55 +10:00
Geoffrey McRae
113da121e9
[client] updated documentation for new keybinds
2019-05-31 16:44:08 +10:00
Geoffrey McRae
dd7413f973
[client] added keybinds to send Ctrl+Alt+Fn
...
Fixes #165
2019-05-31 16:39:55 +10:00
Geoffrey McRae
0851fd13e6
[all] made a nicer icon, hopefully just a placeholder for now
2019-05-30 22:21:53 +10:00
Geoffrey McRae
97024041f3
[client] allow the screensaver to run
2019-05-30 20:54:39 +10:00
Geoffrey McRae
22238c3200
[client] fix invalid access on early termination
2019-05-30 20:24:51 +10:00
Geoffrey McRae
780bb248f7
[c-host] dxgi: fix invalid cursor type define
2019-05-28 15:17:11 +10:00
Geoffrey McRae
026bdb00f2
[c-host] take just the ivshmem headers and omit the kvm-guest submodule
2019-05-28 14:51:47 +10:00
Geoffrey McRae
373d4ac932
[host] removed old host application from the project, see c-host
2019-05-28 14:47:09 +10:00
Geoffrey McRae
7d26027752
[c-host] resend the last on client reconnect if a timeout occurs
2019-05-28 14:24:48 +10:00
Geoffrey McRae
3d426ccef8
[all] fix missing cursor when client reconnects
2019-05-28 14:06:15 +10:00
Geoffrey McRae
b31e8e1cee
[client] egl: remove accidental commit of debug code
2019-05-27 18:46:05 +10:00
Geoffrey McRae
f0923c4ed7
[client] egl: expose a few new tuneables
2019-05-27 18:42:46 +10:00
Geoffrey McRae
aabf19e63b
[client] main: properly shutdown if renderer fails to init
2019-05-27 18:40:36 +10:00
Geoffrey McRae
5e201a32ca
[c-host] dxgi: allow out of order frame mapping
2019-05-27 15:26:58 +10:00
Geoffrey McRae
438e9e0969
[common] option: fixed missing null terminator
2019-05-27 01:56:55 +10:00
Geoffrey McRae
9554e82c47
[common] fix failure to initialize structure
2019-05-27 01:50:38 +10:00
Geoffrey McRae
4cf2c7a350
[client] check for failure to map pbo memory
2019-05-27 01:39:01 +10:00
Geoffrey McRae
664d7dccdb
[client] fix the binary path when debugging
2019-05-27 01:38:50 +10:00
Geoffrey McRae
21b02efb4d
[c-host] dxgi: don't stall the GPU pipeline to map textures to ram
...
ID3D11DeviceContext_Map by default will force a CPU sync if the prior call to
CopyResource has not completed, this change defers the mapping and sets the
D3D11_MAP_FLAG_DO_NOT_WAIT when attempting to map the texture allowing the
capture to continue without incurring an expensive CPU/GPU sync.
A new tuneable has also been added
* dxgi:maxTextures
2019-05-26 23:36:17 +10:00
Jonathan (JJRcop) Rubenstein
d07aa4b29e
[client] Add win:maximize to maximize on startup
2019-05-26 20:47:59 +10:00
Geoffrey McRae
2e6301fca1
[common] fixed issue with building for windows (typo)
2019-05-24 21:39:51 +10:00
Geoffrey McRae
83c5df2c47
[client] main: add + sign to mouse sensitivit alerts
2019-05-24 05:35:16 +10:00
Geoffrey McRae
759b4ef811
[client] fix typo
2019-05-24 05:31:16 +10:00
Geoffrey McRae
437ebf6265
[client] main: new feature to increase/decrease mouse sensitivity
2019-05-24 05:29:38 +10:00
Geoffrey McRae
bffd02b8c7
[client] main: better UX with the escape key combinations
2019-05-23 20:31:01 +10:00
Geoffrey McRae
196b27ee9c
[doc] client: document defaults instead of my preconfigured values
2019-05-23 20:26:37 +10:00
Geoffrey McRae
ff08540fd3
[doc] fixed another formatting snafu
2019-05-23 20:20:18 +10:00
Geoffrey McRae
07be380f34
[doc] fix formatting a bit
2019-05-23 20:19:37 +10:00
Geoffrey McRae
76d58deefa
[doc] Updated project documentation in leu of Beta 1 release
2019-05-23 20:13:41 +10:00
Geoffrey McRae
dba9764c5e
[egl] alert: fix fuzzy font bug and make alerts a little more plesant
2019-05-23 19:58:12 +10:00
Geoffrey McRae
ee5d6c7c3e
[module] update instructions and add dkms.conf
...
Fixes #148
2019-05-23 18:46:27 +10:00
Geoffrey McRae
1492196bbf
[client] shutdown application on window close even if ignoreQuit is set
...
Fixes #138
2019-05-23 18:27:21 +10:00
Geoffrey McRae
9378f69653
[all] corrected NV keybinding information in README.md
2019-05-23 17:00:00 +10:00
Geoffrey McRae
d2d427b533
[client] egl: query maximum multisample support for MSAA context
...
Based on @rLink234's work in 4ac781b4516678b6c59d9ecf4a61df64a01ec8c1
Fixes #128
2019-05-23 16:56:50 +10:00
Geoffrey McRae
78a6af8dae
[common] added new sysinfo unit and multisample query support
...
Based on @rLink234's work in 4ac781b4516678b6c59d9ecf4a61df64a01ec8c1
2019-05-23 16:54:50 +10:00
Geoffrey McRae
3585e02993
[client] egl: add options for maximum NV level and initial level
...
Adds options:
* egl:nvGain
* egl:nvGainMax
Fixes #153
2019-05-23 16:33:40 +10:00
Geoffrey McRae
f946117dac
[all] futher tweaks to the readme.md
2019-05-23 16:15:42 +10:00
Geoffrey McRae
666a6a218f
[all] updated the main readme in preperation of beta 1
2019-05-23 16:08:22 +10:00
Geoffrey McRae
1b031582a4
[c-host] nvfbc: expose option to disable cursor decoupling
2019-05-23 15:12:28 +10:00
Geoffrey McRae
afe072adf1
[c-host] nvfbc: print out the SDK version and enable NvFBC
2019-05-23 14:49:38 +10:00
Geoffrey McRae
09d4fea9e2
[c-host] correct NvFBC information in the README.md
2019-05-23 14:31:05 +10:00
Geoffrey McRae
58c3fba6b9
[c-host] just another minor readme update
2019-05-23 13:42:51 +10:00
Geoffrey McRae
773dd7773b
[c-host] try to be more compatible with mingw headers
2019-05-22 19:46:18 +10:00
Geoffrey McRae
732ce05866
[c-host] minor readme updates
2019-05-22 18:33:04 +10:00
Geoffrey McRae
108c7d3aaa
[c-host] fixed project for cross compliation for Win on Linux
...
Thanks @fatalis for your guidance on this
2019-05-22 14:59:19 +10:00
Geoffrey McRae
86f4256b5a
[client] egl: fix streaming texture re-init crash
2019-05-22 12:19:03 +10:00
Geoffrey McRae
84b2917706
[client] app: new options to reduce CPU usage
...
This patch increases the default cursor and frame polling interval from
1us to 1000us which for most use cases should be more then fast enough.
It also adds two new configuration options to adjust these should it be
required:
* app:cursorPollInterval
* app:framePollInterval
2019-05-22 12:00:06 +10:00
Geoffrey McRae
fc66a4a19c
[client] egl: use persistant mapped texture buffers
...
While it is recommended to use memory barriers when updating a buffer
like we are, since we double buffer it is unlikely we will corrupt a
prior frame, and even if we do since it's just texture data at worst
we might see a tear.
2019-05-22 11:37:27 +10:00
Geoffrey McRae
3f404905d2
[c-host] added tray icon and context menu
2019-05-21 17:52:58 +10:00
Geoffrey McRae
67595d6deb
[client] added missing semi-colon (not sure how that happened)
2019-05-21 15:51:45 +10:00
Geoffrey McRae
77f942711a
[client] fixed typo in option description
2019-05-21 15:51:14 +10:00
Geoffrey McRae
e3c98ddc35
[client] port all configuration parsing to use the new option helper
2019-05-21 15:03:59 +10:00
Geoffrey McRae
db0d966102
[common] option: add debug errors for invalid options
2019-05-21 14:58:11 +10:00
Geoffrey McRae
a29639fceb
[common] option: fix another invalid usage of an unset variable
2019-05-21 13:24:28 +10:00
Geoffrey McRae
0605b7df8c
[common] option: allow short options to toggle boolean values
2019-05-21 12:58:53 +10:00
Geoffrey McRae
51ca08719e
[common] option: trim whitespace from option names and values
2019-05-21 12:34:41 +10:00
Geoffrey McRae
ce9b94e93d
[common] option: fix crash on failure to parse invalid config file
2019-05-21 12:28:13 +10:00
Geoffrey McRae
7cc0f7cb99
[common] option: fix incorrect column header padding
2019-05-21 11:38:40 +10:00
Geoffrey McRae
06c229dfd4
[common] option: fix invalid access of null/invalid options
2019-05-21 11:34:50 +10:00
Geoffrey McRae
2d5f6d65ce
[common] option: added shortopt support and pretty help print
2019-05-21 11:31:31 +10:00
Geoffrey McRae
b9841351b4
[common] added stringutils with alloc_sprintf helper
2019-05-21 11:31:19 +10:00
Geoffrey McRae
d9b6d115d1
[common] fix stringlist const free bug
2019-05-21 11:30:05 +10:00
Geoffrey McRae
cc6dd58778
[c-host] windows: fix dxgi option struct syntax
2019-05-17 09:27:04 +10:00
Geoffrey McRae
0ba931cbed
[c-host] windows: add log file output option
2019-05-17 09:26:42 +10:00
Geoffrey McRae
a7daeb2a12
[c-host] option: fix memory corruption due to usage of old pointers
2019-05-17 09:25:57 +10:00
Geoffrey McRae
2fe9dc7ca1
[common] track if option set failed and print help if so
2019-05-12 16:51:37 +10:00
Geoffrey McRae
b662128708
[c-host] linux: implemented getValues
support for shmDevice option
2019-05-12 16:14:25 +10:00
Geoffrey McRae
e22f33a44b
[common] add getValues callback for options
2019-05-12 16:13:50 +10:00
Geoffrey McRae
5d69d2aba9
[common] added new StringList helper module
2019-05-12 16:12:12 +10:00
Geoffrey McRae
0090580a64
[c-host] be compatible with new option ABI
2019-05-11 20:59:31 +10:00
Geoffrey McRae
538a6dc08e
[common] rework option API to allow for custom types
2019-05-11 20:58:49 +10:00
Geoffrey McRae
5b199d8f25
[common] make local struct local
2019-05-11 19:07:10 +10:00
Geoffrey McRae
51ddb62126
[c-host] load config from looking-glass-host.ini if available
2019-05-11 18:23:06 +10:00
Geoffrey McRae
785bc33192
[common] added config file loading capability
2019-05-11 18:22:01 +10:00
Geoffrey McRae
522bacb1f0
[c-host] linux: remove extra shm device name validation
...
This is now validated by the option validator callback
2019-05-11 11:59:26 +10:00
Geoffrey McRae
cf030f6f0c
[common] remove "Option" from the option help output
2019-05-11 11:51:29 +10:00
Geoffrey McRae
823164a924
[common] further option help cleanup
2019-05-11 11:50:26 +10:00
Geoffrey McRae
2ddae623b8
[c-host] update to use new option validator and tidy up output
2019-05-11 11:35:42 +10:00
Geoffrey McRae
86c7286aad
[common] seperate validator and clean up output
2019-05-11 11:35:17 +10:00
Geoffrey McRae
9886316e07
[c-host] linux: fix shmDevice file size check
2019-05-11 11:23:27 +10:00
Geoffrey McRae
53ade56b4e
[common] fix option parser memory leak
2019-05-09 23:05:33 +10:00
Geoffrey McRae
5677117c0d
[c-host] nvfbc: remove debug line from prior commit
2019-05-09 22:53:02 +10:00
Geoffrey McRae
558ae5dc45
[c-host] dxgi: initialize option to NULL for consistancy
2019-05-09 22:51:12 +10:00
Geoffrey McRae
83f63f4c42
[c-host] dxgi: add the ability to specify the adapter and/or output.
...
Fixes #132
2019-05-09 22:48:39 +10:00
Geoffrey McRae
247e92937c
[common] match the correct option
2019-05-09 22:47:48 +10:00
Geoffrey McRae
63314941f6
[c-host] fix build under windows
2019-05-09 22:13:31 +10:00
Geoffrey McRae
e7345b9711
[c-host] initial agnostic option api and parser
2019-05-09 22:06:58 +10:00