Commit Graph

4417 Commits

Author SHA1 Message Date
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
Geoffrey McRae
bdf5fed38d [client/idd] network: implement tiled video transport 2026-11-06 14:37:38 +11:00
Geoffrey McRae
e14d5dd3c9 [idd] audio: support concurrent transport sources
Keep a stable target per transport binding and fan playback and state
notifications out to every active source. Serialize capture and clock
authority while preserving exact BUSY retries and failure cleanup.
2026-11-06 14:37:38 +11:00
Geoffrey McRae
b6e0bd55fc [idd] network: preserve video sessions during reconfigure
A video configuration epoch can advance while client feedback for the
previous epoch is still in flight. Treat structurally valid stale video
control packets as obsolete instead of terminating the QUIC session.
2026-11-06 14:37:38 +11:00
Geoffrey McRae
da5af3d478 [idd] network: recover video after display reconfiguration
Reset reusable D3D12 command queues before rebuilding the encoder.

Treat a committed frame graph as recovery from transient device loss.
2026-11-06 14:37:38 +11:00
Geoffrey McRae
2f981a9a60 [client] network: fix wavelet reconstruction
Decode each subblock from its proper bitplane offset.

Keep reconstructed wavelet levels in separate textures.

This lets inverse transforms safely write the next level.
2026-11-06 14:37:38 +11:00
Geoffrey McRae
abc0ed0654 [idd] network: finish fragmented video frames
Preserve a partially transmitted frame while replacing queued stale
frames. Continuous capture can otherwise discard every frame before the
client receives its final fragment.
2026-11-06 14:37:38 +11:00
Geoffrey McRae
3909a70950 [idd] capture: accept effective texture alignment
Ignore runtime-selected alignment when comparing frame textures.

This allows software-adapter products through publication and routing.

Log the first execution-stage failure per graph.
2026-11-06 14:37:38 +11:00
Geoffrey McRae
0992f695ad [client/idd] network: publish guest information 2026-11-06 14:37:38 +11:00
Geoffrey McRae
b7f36f39a2 [idd] network: support software video capture 2026-11-06 14:37:38 +11:00
Geoffrey McRae
70bbf180be [idd] transport: publish frame routes after ready 2026-11-06 14:37:38 +11:00
Geoffrey McRae
437e19c13b [client] network: defer clipboard offers until claimed 2026-11-06 14:37:38 +11:00
Geoffrey McRae
3b8f051164 [idd] network: accept acknowledged client requests 2026-11-06 14:37:38 +11:00
Geoffrey McRae
5f2e1e116c [client/idd] network: report connection shutdown errors 2026-11-06 14:37:38 +11:00
Geoffrey McRae
746a8d460d [idd] network: default to dual-stack listener 2026-11-06 14:37:38 +11:00
Geoffrey McRae
f47022d592 [idd] network: publish readiness after session setup 2026-11-06 14:37:38 +11:00
Geoffrey McRae
ab6ee5665a [idd] network: correct CNG certificate key metadata 2026-11-06 14:37:38 +11:00
Geoffrey McRae
93c18419cb [idd] transport: avoid redundant frame rebuilds 2026-11-06 14:37:38 +11:00
Geoffrey McRae
d1bbcbcb45 [idd] network: validate server certificate identity 2026-11-06 14:37:38 +11:00
Geoffrey McRae
c497fe00c6 [idd] build: avoid monolithic MsQuic archive 2026-11-06 14:37:38 +11:00
Geoffrey McRae
1cc7145162 [build] msquic: complete MinGW cross-build 2026-11-06 14:37:38 +11:00
Geoffrey McRae
1b9199355b [idd] network: handle invalid delivery values 2026-11-06 14:37:38 +11:00
Geoffrey McRae
9316493738 [idd] network: fix MSVC compilation 2026-11-06 14:37:38 +11:00
Geoffrey McRae
fb0ab64053 [client] windows: correct compatibility GUID 2026-11-06 14:37:38 +11:00
Geoffrey McRae
80031f80e3 [client] network: enable transport by default 2026-11-06 14:37:38 +11:00
Geoffrey McRae
cb884786e7 [idd] build: handle spaces in MsQuic paths 2026-11-06 14:37:38 +11:00
Geoffrey McRae
02accb6c3e [client] network: build MsQuic automatically on Linux 2026-11-06 14:37:38 +11:00
Geoffrey McRae
53c25dd5a9 [client/idd] network: add GPU video transport 2026-11-06 14:37:38 +11:00
Geoffrey McRae
d24d11c3b7 [client/idd] network: add clipboard and bulk transfer 2026-11-06 14:37:38 +11:00
Geoffrey McRae
a43227cba6 [client/idd] network: add bidirectional audio 2026-11-06 14:37:38 +11:00
Geoffrey McRae
ffa7f10085 [client/idd] network: bound pending QUIC sends 2026-11-06 14:37:38 +11:00
Geoffrey McRae
5faf9e05e3 [common] network: add dedicated stream bindings 2026-11-06 14:37:38 +11:00