public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Dmitry R <rdmitry@taktcycles.com>
To: pve-devel@lists.proxmox.com
Subject: Re: [RFC] WebRTC console for VMs via QEMU's D-Bus display
Date: Tue, 27 Oct 2026 06:41:00 +0000	[thread overview]
Message-ID: <179308326004.3823774.17621657443116900285.qsm-exact-ui-exp6-update@taktcycles.com> (raw)
In-Reply-To: <179293981837.3090704.6601261792618612901.qsm-stock4.13-update@taktcycles.com>

Hi Alexandre, hi all,

Following the stock4.13 update, I have an experimental mixed-content path
in the QSM consumer. It uses the same capture surface and does not change
the proposed shared per-VM D-Bus foundation or require new PVE patches.

The existing full-desktop video remains. An optional lossless pixel-tile
layer carries compressible UI regions over a separate reliable WebRTC data
channel. Frequently changing tiles stay in video; settled regions can be
refined. There is no OCR, replacement font rendering or application text
extraction, and this stage needs no additional guest-package functionality.

The implementation bounds geometry, tile payloads, decompression, shared
cache and each viewer's pending state/SCTP queue. The worker and cached
replay reserve a small share of the current bandwidth target; the worker's
UI bytes also debit its video budget. New changes take priority over idle
refinement. Gaps/heartbeat expiry clear stale cache state and request a
snapshot. Epochs and serials invalidate late browser decodes after clears,
geometry changes or disable. Old/new worker and bridge combinations were
checked for video/input compatibility.

I specifically tested a separate text-input window overlapping a playing
clip in a real Wayland LXC/Firefox session, with H.264/NVENC and the existing
TURN/TCP 8006 gateway. In one controlled run, median key-to-visible-marker
response changed from 157 to 59 ms at a 20 Mbit/s downlink, and 176 to 75 ms
at 2 Mbit/s, with 15 keys per case and LAN RTT. The guest checked the full
input string. A 512x128 text crop matched all 65,536 source pixels. Moving,
scrolling, resizing and closing the overlapping window passed the recorded
checks; the uncovered clip continued producing different pictures.

These are small laboratory results, not a comparison with RDP or an
Internet latency guarantee. Large-window refinement still took about 4.5 s
at the narrow target. This stage still video-encodes the whole desktop and
has no CopyRect/scroll protocol, compositor window hints or cropped video
substream. Tile/video presentation is not frame-synchronous. Equivalent
live VM, HEVC, QSV and VA-API mixed-content runs remain outstanding.

The experimental package set is 0.4.0+stock4.14~exp6. It is off by default;
the viewer has an Experimental exact UI checkbox and there is an explicit
node-default override. An explicit browser choice takes precedence. The
installed stock-PVE service path was also checked with H.264/libx264. The
new layer uses DTLS and adds no public port in the existing 8006 gateway.

Source, matching debs, design/installation notes and qualification:
https://github.com/rdmitry0911/qsm-rd/releases/tag/v0.4.0-qsm-direct-20261027-exact-ui-exp6

27 CTest gates and 83 bridge tests pass. The normal signed APT preview
remains stock4.13; this experimental snapshot is distributed separately.
The Debian review source and pending native-integration proposal are not
superseded. Feedback on region classification, occlusion and integrating
future compositor hints with the shared display consumer would be useful.

Project sponsor: Takt, https://taktcycles.com/

Thanks,
Dmitry



  parent reply	other threads:[~2026-10-27  6:44 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-01 15:10 [RFC] WebRTC console for VMs via QEMU's D-Bus display Dmitry R
2026-10-07 14:10 ` SPAM: " Dmitry R
2026-10-14 13:12   ` DERUMIER, Alexandre
2026-10-14 14:19     ` SPAM: " Dmitry R
2026-10-20 15:25 ` Dmitry R
2026-10-24 10:10   ` Dmitry R
2026-10-25 14:50 ` Dmitry R
2026-10-27  6:41 ` Dmitry R [this message]
2026-10-27  6:53 ` Dmitry R
  -- strict thread matches above, loose matches on Subject: below --
2026-10-15  7:53 Dmitry R
2026-10-15  9:52 ` DERUMIER, Alexandre
2026-10-16  6:58   ` Dmitry R

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=179308326004.3823774.17621657443116900285.qsm-exact-ui-exp6-update@taktcycles.com \
    --to=rdmitry@taktcycles.com \
    --cc=pve-devel@lists.proxmox.com \
    --cc=rdmitry0911@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal