Commit Graph

121 Commits

Author SHA1 Message Date
Geoffrey McRae
f6ad9e29d1 [client] spice: updated PureSpice to fix validation regressions 2026-07-30 15:53:12 +10:00
Geoffrey McRae
d956dd8fd3 [client] audio: rework synchronization for low latency
Drive playback timing from audio sample positions instead of packet
arrival cadence. Use SPICE multimedia timestamps to anchor streams,
detect discontinuities, and estimate the long-term source rate. Ignore
their coarse phase corrections when steering the playback buffer.

Measure the device clock independently and wait for it to stabilize
before enabling a bounded, slew-limited phase controller. Align startup
buffering from logical producer and consumer positions so backend
startup reserves do not become persistent latency.

Size the buffer from the backend period, measured delivery jitter, and
resampler delay. Update PipeWire and PulseAudio to report their actual
startup requirements and presentation latency. Default to a 10 ms
device period with 4 ms of additional buffering, and make detailed
synchronization diagnostics opt-in through audio:debug.

This reduces startup and steady-state latency while compensating for
physical and virtual device clock drift without reacting to transport
jitter or SPICE timestamp quantization.
2026-07-28 21:07:02 +10:00
Geoffrey McRae
e09a3f7715 [repos] purespice: update submodule
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-07-28 07:17:02 +10:00
Geoffrey McRae
11b3ac00a8 [client/obs] update LGMP to detect version missmatch since struct change
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-07-15 17:25:52 +10:00
Quantum
79784fa44d [repos] wayland-protocols: bump to latest version 2026-06-06 02:32:23 +10:00
Nikko Renn
dba2d23eb2 [repo] update PureSpice submodule 2026-05-31 12:48:02 +10:00
Geoffrey McRae
870eb8c670 [repos] lgmp: update to fix queue empty state bug 2025-09-14 00:14:37 +10:00
Geoffrey McRae
7c2e0ec4e9 [repo] lgmp: update to fix packing to align with MSVC properly 2025-08-30 05:14:07 +10:00
Geoffrey McRae
33600682cf [repos] lgmp: fix msvc build (take 5) 2025-08-30 03:57:02 +10:00
Geoffrey McRae
60bda2befc [repos] lgmp: fix msvc build (take 4) 2025-08-30 03:00:25 +10:00
Geoffrey McRae
04a55e1419 [repos] lgmp: fix MSVC build (take 3) 2025-08-30 02:35:55 +10:00
Geoffrey McRae
ca98b5b1fd [repos] lgmp: fix client build under MSVC 2025-08-30 01:30:27 +10:00
Geoffrey McRae
c156044423 [repos] lgmp: update to fix MSVC build 2025-08-30 01:26:18 +10:00
Geoffrey McRae
85ceae91bf [repos] lgmp: update to latest version
The queue size for the cursor needed to be increased to a power of two
with the new design for messages queues in LGMP.
2025-08-30 01:16:26 +10:00
Geoffrey McRae
6396ff1e9c [repos] lgmp: update for the new wdk version 2025-03-29 22:42:49 +00:00
Geoffrey McRae
8b198091ce [idd] rewrite to support DirectX12 copy 2025-03-16 12:32:52 +00:00
Geoffrey McRae
bea198735a [repos] LGMP: update to the latest version
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 / obs (clang) (push) Has been cancelled
build / obs (gcc) (push) Has been cancelled
build / docs (push) Has been cancelled
2025-03-09 02:57:38 +11:00
Geoffrey McRae
d9f2df361d [client] cimgui: update to 1.91.8 2025-03-05 15:16:31 +11:00
Geoffrey McRae
be52a86a9a [all] repos: update LGMP and PureSpice submodules 2025-03-05 12:44:58 +11:00
Geoffrey McRae
a0fd03d328 [repo] update LGMP submodule 2023-11-13 14:03:19 +11:00
Geoffrey McRae
75e10688d4 [repo] update PureSpice submodule 2023-11-11 15:51:37 +11:00
Geoffrey McRae
eaaef65791 [repo] update PureSpice and nanosvg 2023-11-10 06:28:06 +11:00
Geoffrey McRae
11542d7ace [repos] update LGMP submodule 2023-11-10 06:28:06 +11:00
Geoffrey McRae
6b65c7e339 [all] lgmp: update to fix memory leak on shutdown 2023-10-21 22:02:33 +11:00
Geoffrey McRae
844a37a276 [all] update LGMP to fix invalid index access bug 2023-10-20 14:21:11 +11:00
Geoffrey McRae
0c176acf94 [idd] updated to a VS2022 project with Windows 10 support 2023-04-14 12:14:17 +10:00
Geoffrey McRae
b13682a9ef [lgmp] update library to fix issues with MSVC builds 2023-04-11 16:51:02 +10:00
Geoffrey McRae
642634293d [lgmp] update to fix compilation under MSVC 2023-04-10 10:24:53 +10:00
Geoffrey McRae
01f9c2bfb5 [lgmp] update to fix alignment with MSVC compiled code 2023-04-10 10:21:39 +10:00
Geoffrey McRae
9385b2de7a [submodule] update LGMP to the latest version for incoming Idd support 2023-04-10 03:07:07 +10:00
Geoffrey McRae
20b5957999 [client] update LGMP to fix buffer overflow bug 2022-11-07 21:57:10 +11:00
Geoffrey McRae
6cd88a70ad [host/client] lgmp: update to fix possible race issue 2022-11-07 14:44:26 +11:00
Geoffrey McRae
50e856f823 [host] lgmp: update LGMP again to fix bug in last update 2022-11-07 13:20:24 +11:00
Geoffrey McRae
6359bb9acd [host] lgmp: update to fix failure to randomize the session ID 2022-11-07 13:12:51 +11:00
Quantum
ba64a2d400 [repos] nanosvg: convert to submodule
This is fine now that nanosvg can be compiled with -Wstrict-prototypes
without warning.
2022-11-01 08:01:08 +11:00
Geoffrey McRae
5b6095ad05 [repo] update PureSpice to fix cursor visibillity issue 2022-09-21 12:17:20 +10:00
Geoffrey McRae
7446fe8c99 [doc] install: cleanup ivshmem forumla formatting 2022-09-19 22:15:40 +10:00
Quantum
0f1eb0fa7f [doc] usage: fix command name bolding
Note that **``looking-glass-client``** is not valid syntax.
2022-09-19 14:59:01 +10:00
Quantum
1dacf7b2de [repos] update PureSpice to fix none cursor handling 2022-09-19 11:24:42 +10:00
Quantum
ce342029d8 [repos] update PureSpice to include cursor channel 2022-09-19 11:13:53 +10:00
Geoffrey McRae
8974ae4fb5 [client] add SVG loading support and use icons for status display
This brings nanosvg into the project for SVG loading and rendering.
Unfortunatly we can not at this time use a submodule for this project
until https://github.com/memononen/nanosvg/pull/214 is merged.
2022-05-26 04:11:31 +10:00
Geoffrey McRae
c737b12a3b [client] update PureSpice submodule for uncompressed video support 2022-05-25 05:15:21 +10:00
Geoffrey McRae
d1e421f8a8 [client] spice: delay showing the spice display until spice is ready 2022-05-24 09:48:54 +10:00
Geoffrey McRae
c0da28247d [client] spice: update PureSpice to fix display disconnection issue 2022-05-24 07:24:20 +10:00
Geoffrey McRae
b2221b114e [client] spice: more fixes to video source transition 2022-05-24 00:05:22 +10:00
Geoffrey McRae
ffd27ac82c [client] update PureSpice submodule 2022-05-22 11:14:48 +10:00
Geoffrey McRae
7ad3610276 [client] spice: update submodule to apply new socket handling changes 2022-05-20 02:10:17 +10:00
Tudor Brindus
d1da0d62ed [client] update cimgui submodule 2022-02-28 11:56:26 +11:00
Geoffrey McRae
7387a4a8e1 [all] update submodules 2022-02-14 15:14:36 +11:00
Chris Spencer
5e1b8f2abe [client] spice: update submodule to disable audio draining 2022-02-10 07:50:01 +11:00