TASK 51 slice 4: camera-path hookup — CameraManager renders per-scene effect variants (one segmentation per raw frame on a latest-frame-drop worker, raw path untouched), VM declares/adopts variants per config; separable upsampling cuts Remove 46->3 ms, Blur 80->18 ms (Debug, 720p) (Unit: bg-effects hookup)
This commit is contained in:
@@ -85,7 +85,7 @@ delivery shape changed:
|
||||
## 3. ☐ Test seam (Good Dog — one integration test per unit)
|
||||
|
||||
- ✅ Model-runner interface seam (`IPersonSegmenter`) so tests inject a fake segmenter.
|
||||
- ☐ Assert the **processed frame reaches both consumers** (preview bitmap + compositor frame).
|
||||
- ✅ The **processed frame reaches both consumers** (preview bitmap + compositor frame), raw stays raw (`CameraManagerTests`, slice 4).
|
||||
- ✅ `None` = same-instance passthrough of the raw frame (`BackgroundEffectEngineTests`).
|
||||
- ✅ `Remove` = alpha 0 outside the person, RGB untouched, non-opaque (`BackgroundEffectEngineTests`);
|
||||
✅ `Blur` = background smoothed, person pixel-identical (`BackgroundEffectEngineTests`).
|
||||
@@ -96,14 +96,14 @@ delivery shape changed:
|
||||
- ☐ Engine failure → passthrough + single log, layer never dropped (code path exists; dedicated
|
||||
test lands with the hookup slice).
|
||||
- ☐ Real inference: **manual on the creator's box** (camera + lighting), not in CI.
|
||||
- ☐ **Perf check in the hookup slice:** time `Segment` + `Apply` per 720p frame on the creator's
|
||||
box before wiring it into the 60fps path (expect a few ms; the mask can run at a lower rate
|
||||
than the camera if needed).
|
||||
- ✅ **Perf, synthetic 720p (Debug):** segment 1.6 ms, Remove 3.3 ms, Blur 17.5 ms (after making the
|
||||
upsampling separable — naive was 46/80 ms). Runs on its own worker, off the raw path.
|
||||
☐ **Real numbers on the creator's box:** `startup.log` → "background effects avg … ms/frame".
|
||||
|
||||
## 4. Sequencing
|
||||
|
||||
- ✅ Separate work unit after the zoom build (zoom shipped 2026-10-08).
|
||||
- Slice order: 1 engine ✅ → 2 Blur ✅ → 3 config + persistence ✅ → 4 camera-path hookup (one
|
||||
- Slice order: 1 engine ✅ → 2 Blur ✅ → 3 config + persistence ✅ → 4 camera-path hookup ✅ (one
|
||||
processing point, both consumers) + perf check → 5 properties-panel UI.
|
||||
|
||||
## Related (not duplicated here)
|
||||
|
||||
Reference in New Issue
Block a user