Repository navigation
Conversation
Renders at once (1-4, default 1). One render beside a capture left ~2/3 of a 16-thread CPU idle while takes piled up. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The share is the choice over the Render tab's own number, since each render beside a capture gets one Render tab render's threads. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The new field is a saved setting, settings_manager.rs's one job. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Raised |
|
Live test in a throwaway Studio: all three steps pass Test setup: POST install, HLAE direct-to-video at 2560×1440 and 300 fps, rendered to ProRes 422. Render tab Max Concurrent was 4. Each run captured the same 5 clips (10–11 s each) from
With clips this short, one ProRes render (about 9 min) outlasts the whole capture, so 2 at once didn't finish anything sooner. A longer batch is needed to see renders keep up. The setting does what it says. Found along the way (none of these come from this PR):
CPU logs are in |
Release note: New: "Render while capturing" can run up to 4 renders at once beside the capture (Renders at once), so renders keep up with a long batch.
Why
Measured on a 213-clip WSOD25 batch (Ryzen 7 9800X3D, 16 threads, ProRes 422 at 300 fps): with one render beside the capture, the CPU averaged ~33 % busy. Capture recorded ~15 clips an hour, but only ~2.8 clips an hour were rendered, so takes piled up and the renders set the pace (10 rendered in 3.6 h). After the capture stopped, 4 renders at once ran the CPU at 100 %, each FFmpeg using about as much CPU as the lone one had beside the capture.
What changes
renders_while_capturing; settings saved before it read as 1.render_manager.rs:concurrency_captakes the setting while a capture runs instead of the fixedRENDERS_WHILE_CAPTURING = 1, never more than the Render tab's own number. Each render still gets the threads one of the Render tab's renders would (thread_share), so 2 at once takes about half the CPU at the default 4.capture_room_manager.rsreads the setting when the batch starts, and the activity log's start line says how many renders ran ("up to 2 renders at a time").HLAE records frame by frame, so a busier CPU slows the capture but drops no frames.
Test done
cargo test -p desktop-studio(283 passed), including the new cap cases (setting within the Render tab's number, never 0) and the log line's wording.rendersAtOnceFrom,cpuSharePercentand label unit tests;npm run test:unit(1,434 passed); eslint no errors; clippy and rustfmt with 1.98.1.🤖 Generated with Claude Code