Commit Graph

2214 Commits

Author SHA1 Message Date
Geoffrey McRae
c868082a7f [client/idd] fix copyright headers 2026-08-14 12:36:43 +10:00
Geoffrey McRae
be2f79a412 [client] clipboard: add direct LGMP synchronization 2026-08-14 10:22:37 +10:00
Geoffrey McRae
a8d531b797 [client] clipboard: introduce streamed transfers 2026-08-14 10:09:10 +10:00
Geoffrey McRae
4768396180 [client] transport: track video component availability 2026-08-13 04:28:09 +10:00
Geoffrey McRae
656b0995f6 [client] transport: make video waits cancellable 2026-08-13 04:08:49 +10:00
Amit Mendapara
13b6e04256 [client] wayland: apply the surface scale before the first commit
The buffer scale and viewport were only set from the resize handling in
the swap path, which runs after the buffer has been committed. The first
commit therefore carried a buffer of scale x the window size with no
scale declared, so the compositor sized the window from the raw buffer.
On a scaled output that is larger than the work area GNOME maximizes it,
after which libdecor drops every resize as the frame is no longer
floating, leaving the window stuck at the size of the display.

Split the scaling out of the swap path and apply it when the EGL window
is created, so it is in place for the first commit.
2026-08-12 14:55:42 +10:00
Geoffrey McRae
52f7c3a896 [client] audio: adapt buffer to network jitter
Some checks failed
build / client (Debug, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / module (push) Has been cancelled
build / host-linux (push) Has been cancelled
build / host-windows-cross (push) Has been cancelled
build / host-windows-native (push) Has been cancelled
build / idd (push) Has been cancelled
build / obs (clang) (push) Has been cancelled
build / obs (gcc) (push) Has been cancelled
build / docs (push) Has been cancelled
2026-08-12 14:36:57 +10:00
Geoffrey McRae
173316a5a9 [client] audio: handle USB transport backpressure 2026-08-12 14:36:50 +10:00
Geoffrey McRae
573204d44e [client] audio: discard stale playback backlog 2026-08-12 13:43:07 +10:00
Geoffrey McRae
88b9bc32d1 [client] audio: learn underrun delivery jitter 2026-08-12 13:10:11 +10:00
Geoffrey McRae
b30ef31f34 [client] audio: conceal failed USB packets 2026-08-12 13:08:06 +10:00
Geoffrey McRae
a4d38ccb98 [client] audio: schedule USB feedback independently 2026-08-12 13:02:58 +10:00
Geoffrey McRae
8fb3c4d9f6 [client] transport: stop after guest sessions end
Track unexpected loss of an admitted fallback independently from normal
stop and UUID revocation. Terminate once both primary and fallback
sessions have disappeared, regardless of notification order.

Make shutdown terminal so concurrent disconnect handling cannot replace
it with restart or running state.
2026-08-12 12:24:25 +10:00
Geoffrey McRae
2d96ec401c [client] app: clear display server state before teardown 2026-08-12 12:24:25 +10:00
Amit Mendapara
ada355e429 [client] app: free the frame event after display server teardown
Some checks failed
build / client (Debug, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / module (push) Has been cancelled
build / host-linux (push) Has been cancelled
build / host-windows-cross (push) Has been cancelled
build / host-windows-native (push) Has been cancelled
build / idd (push) Has been cancelled
build / obs (clang) (push) Has been cancelled
build / obs (gcc) (push) Has been cancelled
build / docs (push) Has been cancelled
Display server and overlay teardown can still call app_invalidateWindow,
which signals the frame event; the Wayland presentation module does so
when it unregisters its graph. Freeing the event beforehand asserted in
lgSignalEvent while closing the client.
2026-08-12 11:57:56 +10:00
Geoffrey McRae
81be5a388a [client] render: bind invalidation to queue batches 2026-08-12 05:31:45 +10:00
Geoffrey McRae
9c0caca3fa [client] render: bound software surface update backlog 2026-08-12 05:31:45 +10:00
Geoffrey McRae
f68bf8f0d5 [client] render: reduce software surface queue overhead 2026-08-12 05:31:45 +10:00
Geoffrey McRae
f9a60bd2d1 [client] opengl: optimize software surface uploads 2026-08-12 05:31:45 +10:00
Geoffrey McRae
0c21577e9e [client] render: optimize software surface fills 2026-08-12 05:31:45 +10:00
Geoffrey McRae
5e8066609a [client] egl: track software surface damage 2026-08-12 05:20:56 +10:00
Geoffrey McRae
1a236c5e3a [client] egl: upload software surface damage only 2026-08-12 05:20:56 +10:00
Geoffrey McRae
bd5d07fa4f [client] render: reject empty cursor images 2026-08-12 05:05:27 +10:00
Geoffrey McRae
fbcf71e777 [client] config: reject malformed window geometry 2026-08-12 05:05:27 +10:00
Geoffrey McRae
db1c8bf671 [client] message: reset resize debounce state 2026-08-12 05:05:27 +10:00
Geoffrey McRae
51006f9f76 [client] scheduler: retain pending control flags 2026-08-12 05:05:27 +10:00
Geoffrey McRae
f8cf0740e3 [client] keybind: validate and consume chord events 2026-08-12 05:05:27 +10:00
Geoffrey McRae
7b5936574c [client] keybind: release guest chords in reverse 2026-08-12 05:05:27 +10:00
Geoffrey McRae
9cbf24690b [client] x11: reject null clipboard payloads 2026-08-12 05:05:26 +10:00
Geoffrey McRae
1c7664dc5c [client] wayland: release ignored clipboard offers 2026-08-12 05:05:26 +10:00
Geoffrey McRae
6525c3a759 [client] lgmp: restore held mouse mode 2026-08-12 05:05:26 +10:00
Geoffrey McRae
53dd7c8116 [client] keybind: test app dispatch lifecycle 2026-08-12 05:05:26 +10:00
Geoffrey McRae
469e0c5f02 [client] x11: test clipboard protocol lifecycle 2026-08-12 05:05:26 +10:00
Geoffrey McRae
eb8b46eac9 [client] keybind: test built-in actions and ordering 2026-08-12 05:05:26 +10:00
Geoffrey McRae
fc7c8e9cae [client] render: test X11 display paths 2026-08-12 05:05:26 +10:00
Geoffrey McRae
1f5aaa0fc3 [client] wayland: test clipboard protocol lifecycle 2026-08-12 05:05:26 +10:00
Geoffrey McRae
c68007ccd6 [client] render: test scaling and OpenGL paths 2026-08-12 05:05:26 +10:00
Geoffrey McRae
8399c38bab [client] egl: test DMA snapshot lifecycle 2026-08-12 05:05:26 +10:00
Geoffrey McRae
c6752237d9 [client] timing: test frame completion ordering 2026-08-12 05:05:26 +10:00
Geoffrey McRae
a12abedd60 [client] wayland: test presentation feedback lifecycle 2026-08-12 05:05:26 +10:00
Geoffrey McRae
6c0f8d8a28 [client] control: test config and resize messages 2026-08-12 05:05:26 +10:00
Geoffrey McRae
7dc6bc8527 [client] lgmp: test input ownership lifecycle 2026-08-12 05:05:26 +10:00
Geoffrey McRae
ff47bf6128 [client] spice: test session and surface lifecycle 2026-08-12 05:05:26 +10:00
Geoffrey McRae
0d870146b5 [client] clipboard: test provider lifecycle 2026-08-12 05:05:26 +10:00
Geoffrey McRae
28df55e51c [client] egl: test desktop damage geometry 2026-08-12 05:05:26 +10:00
Geoffrey McRae
dea5706667 [client] input: test provider handoff and rollback 2026-08-12 05:05:26 +10:00
Geoffrey McRae
223bb6fd58 [client] scheduler: test frame control lifecycle 2026-08-12 05:05:26 +10:00
Geoffrey McRae
8bf7c5b49e [client] audio: test streams and microphone consent 2026-08-12 05:05:26 +10:00
Geoffrey McRae
49fa27b573 [client] lgmp: test frame validation and leases 2026-08-12 05:05:26 +10:00
Geoffrey McRae
c0ea0368c6 [client] transport: test fallback lifecycle 2026-08-12 05:05:26 +10:00