Geoffrey McRae
056be1242a
[client] spice: add fail-fast connection option
2026-08-16 22:35:41 +10:00
Geoffrey McRae
209ac4d749
[client] spice: gate USB reconnect on MAIN health
2026-08-16 22:09:15 +10:00
Geoffrey McRae
eaafc52f10
[lgmp] client: cancel queue waits after session loss
2026-08-16 21:42:36 +10:00
Geoffrey McRae
b353b5ef06
[lgmp] core: add adaptive stream polling
...
Advance LGMP to the stream polling fallback implementation.
The new API combines short spins with bounded exponential backoff and
resets on observed progress. Notification callbacks remain advisory, so
plain shared-memory transports keep making progress without doorbells.
2026-08-15 14:38:32 +10:00
Geoffrey McRae
ca5593b139
[lgmp] core: add fixed-slot SPSC streams
...
Advance LGMP to the new separately versioned stream transport. This
provides fixed-slot, epoch-bound SPSC lanes without changing the
existing broadcast queue ABI.
Use reliable draining for clipboard and input payloads, and retain
transport-neutral notification hooks for a later doorbell backend.
2026-08-15 14:38:06 +10:00
Geoffrey McRae
df9a34d6d0
[lgmp] protocol: support a sixth queue
2026-08-14 09:40:38 +10:00
Geoffrey McRae
4768396180
[client] transport: track video component availability
2026-08-13 04:28:09 +10:00
Geoffrey McRae
173316a5a9
[client] audio: handle USB transport backpressure
2026-08-12 14:36:50 +10:00
Geoffrey McRae
9469c087c9
[repos] purespice: update to fix protocol bug and disconnect bug
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 05:56:21 +10:00
Geoffrey McRae
802c8b5803
[client] PureSpice: avoid blocking record writes
...
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
Update PureSpice so microphone delivery cannot hold audio backend
shutdown behind a busy socket. Record packets now use a bounded
nonblocking write with framing-safe failure handling.
2026-08-10 16:36:36 +10:00
Geoffrey McRae
4c53f5b9f8
[client] clipboard: add transport provider interface
...
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
Route clipboard exchange through a provider interface. Connected
transports take priority while SPICE remains the fallback.
Track asynchronous X11 and Wayland transfers by request, preserving
clipboard ownership across provider changes.
Use PureSpice clipboard status notifications for capability and
lifecycle updates.
2026-08-09 20:10:46 +10:00
Geoffrey McRae
27a938e741
[client] input: send reports over LGMP
...
Use the LGMP input queue when the host advertises transport input,
while preserving SPICE fallback through the existing input abstraction.
Claim input lazily, publish ordered full-state keyboard and mouse
reports without blocking rendering, and keep the owner lease alive.
Reserve queue capacity for discrete transitions, coalesce only motion
under pressure, and release ownership safely during idle and disconnect.
Keep the Linux-to-HID map in the client and update LGMP to the
nonblocking data-send API required by the input worker.
2026-08-09 01:03:41 +10:00
Geoffrey McRae
c7ed04412e
[client/idd/obs] scheduler: isolate timing owner delivery
2026-08-05 15:45:30 +10:00
Geoffrey McRae
99b4c1c3da
[repos] cimplot: update to fix oob buffer access
2026-08-04 11:01:58 +10:00
Geoffrey McRae
2bb5c2e8c8
[client] tolerate generated GUI wrapper warnings
...
Keep warnings fatal for the GUI dependencies except for two known
issues in generated wrapper sources: an unused cimgui conversion helper
and cimplot's invalid internal FormatSpec conversion.
Scope the exceptions to their respective generated translation units so
warnings in ImGui, ImPlot, and the remaining wrappers stay fatal.
2026-08-04 00:08:21 +10:00
Geoffrey McRae
ff4ca7d786
[idd] serialize framebuffer copies on one queue
...
Replace the rotating D3D12 copy queues with two framebuffer-bound
recording slots on one physical COPY queue. Keep allocator, command
list, query range, callback state, and fence target independent per
slot.
Submit source waits, execution, and signaling on the shared timeline.
Track framebuffer ownership through completion and serialize LGMP
publication around the last successfully published frame.
2026-08-03 23:53:33 +10:00
Geoffrey McRae
4f39270736
[client] add ImPlot and rework latency graphs
2026-08-03 23:53:33 +10:00
Geoffrey McRae
47905ec65e
[client] spice: update to properly support all cursor types
2026-08-01 15:43:30 +10:00
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
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
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
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