Geoffrey McRae
c96feb1254
[client] windows: use precise math for input validation
2026-11-06 20:50:31 +11:00
Geoffrey McRae
f2eadca4ab
[client] windows: implement file clipboard support
2026-11-06 14:40:26 +11:00
Geoffrey McRae
57f18d7e80
[client] windows: add native clang-cl build
...
Build the Windows client against the MSVC ABI while retaining clang
language support. Use vcpkg for ANGLE and libsamplerate, and build
MsQuic with its bundled static OpenSSL.
2026-11-06 14:40:25 +11:00
Geoffrey McRae
aa064e3fa6
[client] tests: support native Windows builds
...
Use platform-appropriate temporary-file handling and function signatures
when compiling the standalone tests with MSVC-compatible Clang.
2026-11-06 14:40:25 +11:00
Geoffrey McRae
ca0738ec0d
[client] windows: add WASAPI audio support
2026-11-06 14:34:25 +11:00
Geoffrey McRae
eabc56a6de
[common/client] platform: abstract runtime services
2026-11-06 14:34:25 +11:00
Geoffrey McRae
a7d2e4592f
[client] windows: add native display and input
2026-11-06 14:34:25 +11:00
Geoffrey McRae
18541865f0
[client] egl: add portable texture upload fallback
2026-11-06 14:34:25 +11:00
Geoffrey McRae
7ea69f3d1c
[client] input: add platform-neutral keycodes
2026-11-06 14:34:25 +11:00
Geoffrey McRae
382f35e503
[common/client] ivshmem: add portable external frames
2026-11-06 14:34:25 +11:00
Geoffrey McRae
6d367d4ab2
[common/client] platform: make filesystem access portable
2026-11-06 14:34:25 +11:00
Geoffrey McRae
a60da36420
[common] windows: add native path and UTF support
2026-11-06 14:34:25 +11:00
Geoffrey McRae
9c8343df96
[common/client] platform: make timing waits portable
2026-11-06 14:34:25 +11:00
Geoffrey McRae
d045ac6ba7
[client] build: add Windows platform composition
2026-11-06 14:34:25 +11:00
Geoffrey McRae
4c395bb488
[client] audio: minimize LGMP playback latency
...
Scope the legacy latency offset to classic SPICE and use the LGMP
poll bound as its fixed arrival reserve. Keep learned jitter additive.
Select provider clock feedback only when the current remote endpoint
advertises it, avoiding a failed startup attempt on broker v1.
2026-11-06 14:34:25 +11:00
Geoffrey McRae
3cd005ac74
[client] audio: add optional LGMP transport
2026-11-06 14:32:14 +11:00
Geoffrey McRae
8fbe3e7454
[repos] lgprotocol: import shared protocol definitions
...
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
Add LGProtocol as a pinned submodule and consume its KVMFR protocol
definitions throughout the client, host, IDD, OBS, and profiler.
Keep Looking Glass framebuffer helpers local while removing duplicated
protocol headers and migrating users to KVMFR-scoped types.
2026-09-01 20:58:25 +10:00
Geoffrey McRae
8cb6a6873e
[client] audio: recover physical underrun debt
...
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
A stable clock model can request a negative recovery slew while the
unbounded ring is physically underrun. This leaves the reader ahead of
the writer indefinitely and outputs silence until playback is restarted.
Floor active recovery at the physical low-water requirement. Rebase the
device-clock phase by any extra refill so modeled latency remains at the
target without restarting the underrun correction cycle.
Add a deterministic regression for negative physical debt opposing the
stable clock model.
2026-08-22 19:33:27 +10:00
Geoffrey McRae
ebf764ae25
[client] audio: reset playback cleanly on resume
...
Count one underrun per starvation episode and end the sync diagnostics
epoch when a logical source stops.
Resume a compatible backend synchronously so data after a same-wire
restart is accepted immediately. Rebase the first post-idle device tick
without passing a long gap through the short-step clock filter.
Cancel in-flight backlog trims before fresh audio can be queued.
2026-08-22 18:53:22 +10:00
Geoffrey McRae
d8e7966087
[client] audio: fix underrun clock recovery
...
Recover stable local playback in the device clock domain and restart
rate control from the measured feed-forward clock ratio.
Ignore catch-up packet sizing until the normal source cadence returns.
2026-08-22 18:53:22 +10:00
Geoffrey McRae
5b106015de
[client] audio: ignore jitter after underruns
...
Do not learn late delivery from packets that already caused an
underrun and media-clock rebase. Preserve learned jitter only across
continuous playback.
2026-08-22 18:53:22 +10:00
Geoffrey McRae
056be1242a
[client] spice: add fail-fast connection option
2026-08-16 22:35:41 +10:00
Geoffrey McRae
cecd4b6f48
[client] tests: exercise mandatory LGMP streams
...
Replace legacy clipboard grant and queued input fixtures with bound SPSC
stream endpoints. Verify stream-only payload delivery, credit recovery,
release completion, and four 256 KiB records for a 1 MiB response.
Keep queue assertions for status, discovery, ownership, and control.
2026-08-15 14:51:24 +10:00
Geoffrey McRae
42cec4774b
[client] clipboard: expose shared headers
2026-08-14 19:09:11 +10:00
Geoffrey McRae
a841be3515
[client] lgmp: transport clipboard files
2026-08-14 19:09:11 +10:00
Geoffrey McRae
a91343be96
[client] clipboard: add seamless file backends
2026-08-14 19:09:11 +10:00
Geoffrey McRae
608e85fe5d
[client] clipboard: preserve newer Wayland selections
2026-08-14 12:36:43 +10:00
Geoffrey McRae
dc2ab76c36
[client] clipboard: suppress Wayland self-copy feedback
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
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
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
Geoffrey McRae
b146c0168a
[client] tests: cover render source queue
2026-08-12 05:05:26 +10:00