diff --git a/AGENTS.md b/AGENTS.md index eabea7e..27af7a8 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,6 +6,7 @@ MoQ Studio is a native, cross-platform streaming studio that composites scenes o # Required - Measure performance by frame time, GPU copies, and encoder load. +- Measure the UI's frame time under a real compositor, such as headless sway (`WLR_BACKENDS=headless sway`), not Xvfb, whose present caps it at 12–25 fps on the NVIDIA test hosts. # Upstream diff --git a/quest/m0/README.md b/quest/m0/README.md index df2f874..2d8b6d0 100644 --- a/quest/m0/README.md +++ b/quest/m0/README.md @@ -100,7 +100,6 @@ repository. - [Web studio](/quest/m0/web.md) - the full studio in wasm on WebGPU and WebCodecs, served from this repository - [Virtual camera](/quest/m0/vcam/README.md) - the program or a published scene exposed as a system camera on Linux, Windows, and macOS - [Browser sources on the GPU under Mesa](/quest/m0/cef-headless.md) - shared-texture pages paint on Intel and AMD under Wayland, and a page that cannot paint fails loudly -- [The UI keeps its frame rate while the program renders](/quest/m0/ui-frame-rate.md) - the editor draws without waiting on the program's render - [The Apple signing identity is available](/quest/m0/signing.md) - the Apple credentials packaging and the macOS camera need; Windows ships unsigned - [Packaging](/quest/m0/packaging.md) - a signed macOS app, a Windows installer, and a Flatpak for Linux - [The persistable portal restore token is pinned](/quest/m0/pin-portal-token.md) - moq-video's restore token, for Wayland sources diff --git a/quest/m0/ui-frame-rate.md b/quest/m0/ui-frame-rate.md deleted file mode 100644 index 101d2ea..0000000 --- a/quest/m0/ui-frame-rate.md +++ /dev/null @@ -1,27 +0,0 @@ -# [M] The UI keeps its frame rate while the program renders - -## Goal - -The studio's UI draws its frames without waiting on the program's render, so -the editor stays as smooth as the display allows while the studio publishes -or records. - -## Plan - -From [moq-dev/studio#85](https://github.com/moq-dev/studio/pull/85), picked -2026-11-07 (maintainer away under /afk, recommended option), m0 by the rule -that fixes join m0. - -#85 measured the UI at about 25 fps (40 ms a frame) with effects Full, -Reduced, and Off alike, while the program rendered in about 19 ms, on -`nixos`'s RTX 3070 Ti under Xvfb at 1440x900. The UI's own CPU work was -under 2 ms. Its unprofiled guess is that the UI waits on `engine.state`'s -lock while the program renders. - -- Profile first, on a real display as well as Xvfb, since Xvfb's - presentation may account for some of it. Report frame time, where the UI - thread waits, and GPU queue contention between the UI and the compositor. -- Fix the cause found, such as holding `engine.state` only to copy what a - frame draws, or keeping the compositor's submit off the UI's path. If the - wait is only Xvfb's, record that in the PR and delete this quest. -- Show the program's render time and encoder load are unchanged.