Commit Graph

4448 Commits

Author SHA1 Message Date
Geoffrey McRae
4753b3a5c6 [build] ci: fix platform build regressions
Correct the clean IDD MsQuic archive lookup and enable XSAVE
for MinGW CPU probing.

Compile audio transports with precise floating-point semantics so
finite-value validation remains valid under Clang. Install the OBS
samplerate development dependency.
2026-11-06 19:46:36 +11:00
Geoffrey McRae
8bbf9c3056 [client/idd] network: allow unencrypted 1-RTT payloads
Expose the insecure MsQuic draft API and add an opt-in setting on both
peers. Query the negotiated state after connection establishment so
one-sided opt-in remains encrypted and is logged accurately.
2026-11-06 19:28:18 +11:00
Geoffrey McRae
ea24c288ad [client] network: bound video decoder backlog
Cap decoded snapshots and queued GPU work so a slow presentation path
cannot accumulate frames indefinitely.

Coalesce deferred damage and retry the latest image when a texture
returns, including while JIT rendering is idle.
2026-11-06 14:40:30 +11:00
Geoffrey McRae
0b0f227c08 [client/idd] network: discard stale audio after stalls
Keep PCM and its clock sample in cancellable datagrams so recovery
cannot replay audio buffered before a Wi-Fi stall.

Drop blocked real-time packets with an explicit discontinuity and make
a newer reconnect supersede stale audio authorities.
2026-11-06 14:40:30 +11:00
Geoffrey McRae
b1dda92f09 [client/idd] input: complete network latency path
Isolate input sends from shared transport accounting and reserve
reliable capacity.

Prioritize QUIC execution and bound stale motion through the Windows
pipe and HID queues.
2026-11-06 14:40:30 +11:00
Geoffrey McRae
1af2f13440 [client/idd] input: reduce network latency
Route input through a dedicated high-priority stream, send pointer
motion as cumulative datagrams, and recover suspected loss reliably.

Reduce downstream input queuing with age-aware coalescing and input
thread scheduling.
2026-11-06 14:40:30 +11:00
Geoffrey McRae
e30afaca2d [client] network: filter stale frame damage 2026-11-06 14:40:30 +11:00
Geoffrey McRae
ccff282cd0 [client/idd] network: preserve exact frame damage 2026-11-06 14:40:30 +11:00
Geoffrey McRae
ae031f6064 [client] egl: clear stale damage diagnostics 2026-11-06 14:40:30 +11:00
Geoffrey McRae
5eca9a687f [client/idd] network: process only damaged PyroWave blocks
Limit GPU encoding and client decoding to damage-derived regions.
Preserve per-level sparse transform state and cover mirrored inverse
edges.

Keep cumulative canonical packets so dropped frames remain recoverable.
2026-11-06 14:40:30 +11:00
Geoffrey McRae
ccdcad14ca [client/idd] network: send cumulative PyroWave updates 2026-11-06 14:40:26 +11:00
Geoffrey McRae
2575f0791a [client] network: cancel abandoned clipboard reads 2026-11-06 14:40:26 +11:00
Geoffrey McRae
420e8fa8fd [idd] msquic: disable nested code analysis 2026-11-06 14:40:26 +11:00
Geoffrey McRae
0fecbe4989 [idd] network: bind clipboard to input authority 2026-11-06 14:40:26 +11:00
Geoffrey McRae
f2eadca4ab [client] windows: implement file clipboard support 2026-11-06 14:40:26 +11:00
Geoffrey McRae
1a4b6049bd [client] windows: implement native clipboard support
Add Win32 clipboard ownership, notifications, and data exchange for
text and image formats. Marshal clipboard access onto the window thread
and reject stale transfers when ownership changes.

Keep file clipboard offers unsupported while clearing stale content from
earlier remote offers.
2026-11-06 14:40:26 +11:00
Geoffrey McRae
7f63dc986e [client] network: fix ANGLE decoder synchronization
The dequant shader returned before workgroup barriers for missing
blocks. Mask those blocks to zero so ANGLE's D3D compiler accepts the
shader while every invocation reaches each barrier.

The vcpkg ANGLE build also omitted upstream shared-context locking.
Enable both locking definitions so decode dispatches cannot race the
render thread through ANGLE's shared D3D11 state manager.
2026-11-06 14:40:26 +11:00
Geoffrey McRae
f6c32c2c1e [client] network: request ES 3.1 decoder context 2026-11-06 14:40:26 +11:00
Geoffrey McRae
c2aa8de32b [client] windows: bind inherited output streams 2026-11-06 14:40:25 +11:00
Geoffrey McRae
a8365716af [client] windows: prevent duplicate application manifest 2026-11-06 14:40:25 +11:00
Geoffrey McRae
8c4793ed8c [client] wasapi: define Core Audio interface GUIDs 2026-11-06 14:40:25 +11:00
Geoffrey McRae
d13c40e09d [client] windows: enable CRT math constants 2026-11-06 14:40:25 +11:00
Geoffrey McRae
8bba06dbf0 [client] windows: rebuild clean MsQuic archives 2026-11-06 14:40:25 +11:00
Geoffrey McRae
2021874ca9 [common/client] windows: avoid deprecated CRT calls 2026-11-06 14:40:25 +11:00
Geoffrey McRae
08b68ff740 [client] egl: avoid deprecated preset string copy 2026-11-06 14:40:25 +11:00
Geoffrey McRae
f9fa437c20 [client] egl: use compiler stack allocation builtin 2026-11-06 14:40:25 +11:00
Geoffrey McRae
1ff31304cd [client] windows: compile DirectWrite font support as C++ 2026-11-06 14:40:25 +11:00
Geoffrey McRae
faa078f069 [client] windows: disable MsQuic code analysis 2026-11-06 14:40:25 +11:00
Geoffrey McRae
47f59cd4d0 [client] network: refresh nested MsQuic configuration 2026-11-06 14:40:25 +11:00
Geoffrey McRae
34adfddb8c [client] gui: suppress third-party warnings 2026-11-06 14:40:25 +11:00
Geoffrey McRae
e7d6834f87 [client] lgmp: support native Windows builds
Update LGMP for MSVC-compatible Clang and portable static assertions.
2026-11-06 14:40:25 +11:00
Geoffrey McRae
37f7bbad77 [common] cpuinfo: move feature queries to platform code 2026-11-06 14:40:25 +11:00
Geoffrey McRae
05fcc64c57 [common] option: use portable tokenizer 2026-11-06 14:40:25 +11:00
Geoffrey McRae
52462d29c9 [client] windows: document PowerShell policy override 2026-11-06 14:40:25 +11:00
Geoffrey McRae
78b6a31e7d [client/common] windows: fix native clang-cl build 2026-11-06 14:40:25 +11:00
Geoffrey McRae
ad0207afc5 [client] windows: use vcpkg OpenSSL for MsQuic 2026-11-06 14:40:25 +11:00
Geoffrey McRae
1995edc1e6 [client] windows: pin vcpkg baseline 2026-11-06 14:40:25 +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
c456596bd7 [client] network: report detailed transport failures
Report the exact MsQuic status and initialization stage when network
transport construction or connection fails.

Diagnose certificate, stream, protocol, and peer shutdown failures
instead of returning only the generic transport error.
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
7530943446 [build] msquic: fix MinGW static OpenSSL linking
Build MsQuic's component archives instead of flattening Windows import
libraries into the monolithic archive. Use the static OpenSSL archives
supplied by the active MinGW toolchain while retaining Schannel for MSVC
and QuicTLS for Linux.

Let the active compiler locate its target root and use the restricted
ntdll import library. Provide GCC-compatible byte interlocked
operations, expose native XDP calls, and suppress expected compatibility
warnings.
2026-11-06 14:40:25 +11:00
Geoffrey McRae
8ca2edbcc6 [idd] network: retain and replay the latest frame
Keep one pending source frame before the first subscriber connects.
Replay completed encodes with fresh delivery timing and frame IDs.
2026-11-06 14:37:38 +11:00
Geoffrey McRae
f44570f039 [client] network: restore clipboard after reconnect 2026-11-06 14:37:38 +11:00
Geoffrey McRae
cbb7835158 [idd] clipboard: arbitrate ownership by active client 2026-11-06 14:37:38 +11:00
Geoffrey McRae
450d20c8d8 [client/idd] network: tolerate transient wireless stalls 2026-11-06 14:37:38 +11:00
Geoffrey McRae
50177afe79 [idd] network: enforce configurable video bitrate 2026-11-06 14:37:38 +11:00
Geoffrey McRae
6aea2496f0 [idd] network: make video chroma configurable 2026-11-06 14:37:38 +11:00
Geoffrey McRae
967b43f4a8 [idd] network: preserve desktop chroma detail 2026-11-06 14:37:38 +11:00
Geoffrey McRae
ead2b8adf0 [client] network: crop aligned video planes 2026-11-06 14:37:38 +11:00
Geoffrey McRae
d345b5c31e [client] network: use bulk delivery for video 2026-11-06 14:37:38 +11:00