Commit Graph

671 Commits

Author SHA1 Message Date
Geoffrey McRae
3df4bb3a54 [client] spice: protocol updates for performance and agent support
Note: agent support is not complete at this point due to lack of documentation.
2019-02-22 03:04:06 +11:00
Geoffrey McRae
5bd748680f client: cosmetics 2019-02-22 03:04:06 +11:00
Marius Barbu
e09ff31c09 [client] update viewport size after window is created
Make sure glViewport gets called as soon as we know the window
dimensions, otherwise nothing gets rendered until KVMFR communication is
established (mostly the splash).

Without the fix, './looking-glass-client -s' behaves differently than
'./looking-glass-client -s -F' in that the latter triggers a
SDL_WINDOWEVENT_SIZE_CHANGED and updates the viewport immediately after
window creation while the former doesn't and all rendering is delayed
until the frameThread successfully decodes the first frame.

As all the possible ways of updating the viewport (window creation,
window size change, frame size change) are covered with
updatePositionInfo(), the 'started' state becomes redundant and is
removed.

Note: this might be the wrong way to fix it (possible driver bug?),
glViewport's specification mentions that the default viewport size
matches the window size when the GL context is first attached.

Tested on:

Debian Buster with GNOME 3.30.2 on X.Org 1.20.3
Looking Glass (a12-21-g07e4c1c20f)
Locking Method: Atomic
Using: EGL
Vendor  : Intel Open Source Technology Center
Renderer: Mesa DRI Intel(R) Haswell Desktop
Version : OpenGL ES 3.1 Mesa 18.3.2

Signed-off-by: Marius Barbu <msb@avengis.com>
2019-02-21 07:56:25 +11:00
Geoffrey McRae
07e4c1c20f [client] spice: correct issue with new channel list support 2019-02-21 05:31:51 +11:00
Geoffrey McRae
daf854c692 [client] spice: initial agent support 2019-02-21 05:06:13 +11:00
Geoffrey McRae
65c1e0391c [client] spice: minor fixes, don't assume inputs channel exists 2019-02-21 03:43:11 +11:00
Geoffrey McRae
769edba1a5 [client] spice: remove useless mouse queue, this is not needed
When this was first developed the official spice client was used as an example refrence, however upon inspecting the source of spice-server it has been determined that there is no server side queueing going on, and acks are simply sent after every 4 to reduce bandwidth.
2019-02-19 14:50:30 +11:00
Frediano Ziglio
2567447b24 [client] spice: use correct enumeration for SpiceLinkReply
SPICEC_ERROR_CODE_xxx constants are supposed to be used by old
client (obsoleted years ago).
SpiceLinkReply error field uses SPICE_LINK_ERR_xxx enumeration
constants.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
2019-02-10 09:06:07 +11:00
Geoffrey McRae
263b412fdf [host] dxgi: fixed reversed logic for fallback 2019-02-07 15:13:07 +11:00
Geoffrey McRae
037ea5b1fc [host] fix compiler warnings 2019-02-07 14:43:18 +11:00
Geoffrey McRae
18634fa805 [host] fallback to IDXGIOutput1 if IDXGIOutput5 is not available 2019-02-07 14:43:18 +11:00
Geoffrey McRae
473e4716fc [client] spice: debug print unsigned int re #127 2019-01-25 14:17:06 +11:00
Dominik Csapak
59cac9c0cc change spice port type to unsigned short
so that ports >32767 get displayed correctly,
also signed overflow is undefined behaviour

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2019-01-25 14:15:22 +11:00
Geoffrey McRae
92d87d983b [client] spice: fix incorrect cursor button state being sent 2019-01-17 02:45:46 +11:00
Geoffrey McRae
bfc4a1bc16 [client] update client to handle new cursor move code 2019-01-12 00:00:21 +11:00
Geoffrey McRae
1ef61f6cd3 [host] use a global hook to obtain cursor move pos 2019-01-11 23:58:50 +11:00
Geoffrey McRae
5518ccb795 [host] NvFBC: user specified privateData for debug 2019-01-09 16:10:46 +11:00
Luke Brown
027b27dda1 updated links to latest accurate urls.
added trello board url.
2019-01-08 10:33:16 +11:00
Geoffrey McRae
6e1180ce06 [host] nvfbc: initial updates to re-enable support 2019-01-03 17:08:05 +11:00
Geoffrey McRae
e4ae9134ae [client] egl: fix graphical glitch with splash 2019-01-02 10:36:17 +11:00
Geoffrey McRae
640bc03c6b [client] [Patch 2/2] fixes #106 2019-01-02 10:30:55 +11:00
Geoffrey McRae
2a86339b1d [host] [Patch 1/2] fix copy of padded resolutions 2019-01-02 10:29:46 +11:00
Geoffrey McRae
667aed635d [client] egl: added untested support for wayland 2019-01-02 00:04:40 +11:00
Alexander Olofsson
1d3a23e051 Store the initial window size in the state
Fixes #107
2018-12-17 16:07:21 +11:00
Geoffrey McRae
507732587e [client] egl: fixed uninitialized variable bug 2018-12-16 12:17:12 +11:00
Geoffrey McRae
d1e3508d55 [client] fix early render issue 2018-12-16 11:02:51 +11:00
Geoffrey McRae
3a8998f1f9 [client] make EGL the default renderer 2018-12-16 11:02:40 +11:00
Geoffrey McRae
de5795e368 [client] egl: implemented alerts and some minor fixes to fps 2018-12-16 10:57:01 +11:00
Geoffrey McRae
fca71e2b95 [client] egl: slight correction to splash 2018-12-16 00:56:35 +11:00
Geoffrey McRae
0e2b371e59 [client] egl: added splash screen rendering 2018-12-16 00:54:37 +11:00
Geoffrey McRae
e1fa6b4057 [client] egl: fix cursor regression 2018-12-13 02:11:37 +11:00
Geoffrey McRae
b6c8d3fae5 [client] egl: fix mono cursor double height regression 2018-12-13 01:39:52 +11:00
Geoffrey McRae
eb1c61f335 [client] warn about poor FPS display performance 2018-12-13 01:34:23 +11:00
Geoffrey McRae
5842ce23a3 [client] pre-calculate the frame time 2018-12-13 01:34:14 +11:00
Geoffrey McRae
692d48df87 [client] don't calculate FPS if we are not showing it 2018-12-13 01:28:00 +11:00
Geoffrey McRae
49bd091359 [client] use clock_nanosleep for more accurate frame timing 2018-12-13 01:22:57 +11:00
Geoffrey McRae
5fe2db7e56 [client] rename fps variables to be more correct 2018-12-12 23:59:22 +11:00
Geoffrey McRae
b927f991d6 Revert "[client] improve fps target accuracy"
This reverts commit 4d7e1054bd.
This causes FPS runaway after a time
2018-12-12 23:40:29 +11:00
Geoffrey McRae
4d7e1054bd [client] improve fps target accuracy 2018-12-12 23:33:35 +11:00
Geoffrey McRae
42fa0e1d1f [client] egl: corrected fps alpha blending 2018-12-12 22:38:08 +11:00
Geoffrey McRae
abfe3a9b4d [client] egl: moved desktop rendering into seperate unit 2018-12-12 21:41:51 +11:00
Geoffrey McRae
b9f8f1a0ad [client] egl: add and use default quad helper for models 2018-12-12 20:08:52 +11:00
Geoffrey McRae
608b67af77 [client] egl: moved fps code into seperate unit 2018-12-12 20:04:43 +11:00
Geoffrey McRae
2a65e39848 [client] egl: added missing files from last commit 2018-12-12 18:57:31 +11:00
Geoffrey McRae
c23bf6a0c4 [client] egl: migrate cursor code into seperate unit 2018-12-12 18:53:55 +11:00
Geoffrey McRae
50c460df5a [client] define GL_GLEXT_PROTOTYPES globally 2018-12-12 16:53:30 +11:00
Geoffrey McRae
61f0577ab2 [client] egl: costmetics 2018-12-12 16:41:29 +11:00
Geoffrey McRae
a9aab3c1ee [client] egl: moved egl sources into subdirectory 2018-12-12 16:39:04 +11:00
Geoffrey McRae
73da86ac0e [client] egl: add checking to egl_shader_get_uniform_location 2018-12-12 16:32:16 +11:00
Geoffrey McRae
43d08df6b3 [client] egl: rename "shader" to "this" for consistancy 2018-12-12 16:31:25 +11:00