feat(scene): PERF frame-budget HUD for wire re-tessellation cost
Phase 5.3 (CPU tessellation slice). Add a `PERF` command that toggles an overlay on the active viewport showing the cost of the most recent wire re-tessellation: ms, wire count, geometry epoch. Anchored top-left via position_canvas_overlay. Timing is captured at the wire-cache miss paths (model_tile_wires_arc, paper_sheet_wires_arc) and stored in Cells on Scene, read directly by the UI view (Scene is single-threaded / Rc-based, so build_primitive and view share a thread). Reads ~0 ms on a warm cache, so it isolates the exact work a miss costs — the slice 2.2 / 3.1 / 3.3 each move, making them PR-to-PR comparable. GPU upload/draw/GPU-wait spans (need wgpu timestamp queries) remain open. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
7111922852
commit
9b112ce12c
5 changed files with 83 additions and 3 deletions
|
|
@ -186,6 +186,9 @@ pub(super) struct OpenCADStudio {
|
|||
/// Selection cycling: clicking where objects overlap opens a list box
|
||||
/// to pick which one; the pick is added to the current selection.
|
||||
selection_cycling: bool,
|
||||
/// Frame-budget HUD (Phase 5.3): overlays the last wire re-tessellation
|
||||
/// cost on the active viewport. Toggled by the `PERF` command.
|
||||
perf_hud: bool,
|
||||
/// When set, the cycling list box is open: (canvas point, candidates).
|
||||
cycle_candidates: Option<(iced::Point, Vec<acadrust::Handle>)>,
|
||||
/// Which status-bar pills the user has chosen to show (persisted).
|
||||
|
|
@ -1254,6 +1257,7 @@ impl OpenCADStudio {
|
|||
clean_screen: false,
|
||||
quick_properties: false,
|
||||
selection_cycling: false,
|
||||
perf_hud: false,
|
||||
cycle_candidates: None,
|
||||
pre_cmd_tangent: None,
|
||||
ortho_mode: false,
|
||||
|
|
|
|||
Loading…
Reference in a new issue