GPUI playback hitches during background edits on long recordings
Mantenedores costumam responder em até 1 dia
Um pull request relacionado já foi integrado.
- #2507 de @AksharP5 — integrado
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- Meio dia
- Facilidade para iniciantes
- 45/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- rust
- Domínio
- desktop, performance
Direção de pesquisa
Start in crates/editor/src/playback.rs, in the project-watch branch that unconditionally rebuilds the cursor timelines, and check which inputs the constructor reads (raw mode and effective movement/click spring parameters). Then look at apps/desktop-gpui/src/editor_window.rs::publish_project to see how live updates reach that branch. Done means padding-only updates reuse the existing timelines while spring-parameter changes still rebuild them, verified with the playback benchmark described in the issue.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Description
Changing background padding or other unrelated project settings while GPUI playback runs can interrupt frame delivery on long recordings. The editor watch-update handler reconstructs cursor timelines for every project update, rerunning the movement/click spring simulation across all recording sources even when its inputs have not changed.
Reproduction
- Open a long recording with cursor movement and cursor smoothing enabled in the GPUI editor.
- Start playback and adjust background padding repeatedly.
- Frame delivery can hitch while the cursor simulation is rebuilt. Padding does not change the simulation inputs.
Confirmed with the production playback benchmark using a synthetic one-hour recording, 216,001 mouse moves at 60 Hz, a 480×270 preview at 60 fps, and padding updates at 10 Hz. Three runs each delivered 300 callbacks; median p95 callback gap was 44.77 ms with 55 playback skips per run. Reusing the timelines for unrelated edits reduced it to 17.83 ms and zero skips. Changing a spring parameter still triggers reconstruction.
Additional Context
- Cap version: main
3d19c5cfa5e636107e78adde6d55be78404d4f23, GPUI playback engine. - OS: Arch Linux x86_64.
- Device: Intel i5-14400F; benchmark used llvmpipe software Vulkan, Rust 1.88 and FFmpeg 7.1.
The measurement uses the actual editor playback/render callback path used by GPUI; it does not measure display presentation. Hardware GPU timing is unverified because this machine has mismatched installed and loaded NVIDIA driver versions.
apps/desktop-gpui/src/editor_window.rs::publish_project sends live updates during playback. crates/editor/src/playback.rs unconditionally rebuilds the timelines in its project-watch branch. The constructor depends on raw mode and effective movement/click spring parameters, not background padding.
- Linguagem predominante
- Rust
- Estrelas
- 24.2k
- Forks
- 2.2k
- Merge médio
- 1d 9h
- PRs com merge (30d)
- 731
Preparar o ambiente
- Inclui um Dockerfile ou arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de CapSoftware/Cap
-
Android visitors are offered the Linux .deb on cap.so's homepage and download pageTalvez já em andamento @patrickballard assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
CapSoftware/Cap#3677 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Download, FAQ, privacy and terms pages have no meta descriptionTalvez já em andamento @patrickballard assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
CapSoftware/Cap#3675 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Shortcut recorder rejects ⌘⇧ with a digit or symbol (e.g. ⌘⇧4)Talvez já em andamento @HlaKarki assumiu há 1 dia. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
CapSoftware/Cap#3634 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Web player intercepts ⌘⇧M and blocks Chrome profile-menu shortcutTalvez já em andamento @AatmanAJ assumiu há 18 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 80/100
CapSoftware/Cap#2596 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
CapSoftware/Cap#2384 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
Todas as issues de CapSoftware/Cap
Issues semelhantes
-
docs(metrics): replace stale src/metrics.rs line anchors in dashboard-metrics.md with symbol namesAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 1 dia
-
ci-cd desktop size:low telemetry-improvement telemetry-round-1
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
vfarcic/dot-agent-deck#2079 ·
Mantenedores costumam responder em até 1 dia
-
修改文件名时主键盘上的数字无法输入Abertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 63/100
qingjian-team/qingjian#894 ·
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
rubys/roundhouse#1757 ·
-
enhancement user-priority/P3
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
t8y2/dbx#14196 · 1 comentário ·
Mantenedores costumam responder em até 1 dia