Low FPS when editing architecture diagrams with a couple of elements #44
Open
opened 2026-09-25 06:28:21 +00:00 by sorokin.oleg.edu
·
9 comments
No Branch/Tag Specified
main
codex/navigation-help-save-01a0d717-20261002
codex/navigation-validation-01a0d717-20261001
codex/focus-workspace-experiment-01a0d717-20261001
codex/save-as-diagnostics-01a0d717-20261001
codex/wrapped-label-experiment-01a0d717-20261001
codex/label-cue-experiment-01a0d717-20261001
codex/diagram-readability-01a0d717-20260925
codex/compact-context-01a0d717-20260925
codex/projection-navigation-ytr83r-20260925
codex/grid-cache-01a0d6fd-20260925
codex/state-label-layout-ytr83r-20260924
codex/drag-out-01a0d6fd-20260925
codex/connection-icons-ytr83r-20260925
codex/scenario-multiselect-9e8r6t-20260924
codex/release1-956atf
codex/auto-layout-ytr83r-20260925
codex/analysis-mixed-cli-956atf-20260925
codex/analysis-public-read-956atf-20260925
codex/ordinary-source8-956atf-20260925
codex/analysis-mixed-acceptance-956atf-20260925
codex/arrange-reset-ytr83r-20260925
codex/analysis-entry-producers-956atf-20260925
codex/analysis-text-producers-956atf-20260925
codex/analysis-mixed-emission-956atf-20260925
codex/analysis-carried-phase-956atf-20260925
codex/behavior-anchor-plan-ytr83r-20260912
codex/analysis-mixed-rename-plan-956atf-20260924
codex/analysis-ordinary-index-956atf-20260924
codex/prerelease-package-qa-9e8r6t-20260924
codex/analysis-mixed-index-956atf-20260924
codex/prerelease-integrated-956atf-20260924
codex/state-picker-test-ytr83r-20260924
codex/analysis-mixed-project-956atf-20260923
codex/scenario-planner-first-gate-9e8r6t-20260924
codex/prerelease-test-import-ytr83r-20260924
codex/multiselect-allocation-9e8r6t-20260923
codex/picker-escape-ytr83r-20260923
codex/multiselect-union-956atf-20260923
codex/multiselect-process-9e8r6t-20260923
codex/analysis-mixed-syntax-956atf-20260923
codex/peer-union-956atf-20260923
codex/multiselect-state-9e8r6t-20260923
codex/allocation-drawing-ytr83r-20260923
codex/multiselect-9e8r6t-20260923
codex/analysis-original-span-956atf-20260923
codex/analysis-s3-evidence-956atf-20260922
codex/transition-lifecycle-9e8r6t
codex/traceability-view-ytr83r-20260923
codex/state-bends-ytr83r-20260923
codex/edge-anchors-escape-ytr83r-20260923
codex/edge-anchors-ytr83r-20260922
codex/scenario-inspector-actions-ytr83r-20260922
codex/analysis-s2c-evidence-956atf-20260922
codex/analysis-s3-index-956atf-20260922
codex/ordinary-text-union-9e8r6t
codex/scenario-spacing-ytr83r-20260913
codex/scenario-validation-ytr83r-20260913
codex/text-defaults-9e8r6t
codex/metamodel-assessment-9e8r6t
codex/rename-scroll-native-evidence-956atf-20260913
codex/text-union-956atf-20260913
codex/scenario-label-lookup-ytr83r-20260913
codex/scenario-label-fields-ytr83r-20260913
codex/scenario-details-ytr83r-20260913
codex/navigation-native-440-evidence-20260913
codex/rename-details-scroll-956atf-20260913
codex/scenario-spacing-fixes-ytr83r-20260913
codex/navigation-440-evidence-956atf-20260913
codex/text-diagnostics-9e8r6t
codex/analysis-s2b-evidence-publication-20260913
codex/text-workspace-9e8r6t
codex/scenario-workspace-ytr83r-20260913
codex/scenario-renderer-bridge-ytr83r-20260913
codex/scenario-layout-ytr83r-20260913
codex/scenario-direct
codex/release1-ytr83r
codex/release1-engineering
codex/release1-continuation
codex/release1-9e8r6t
codex/palette-authoring-20260910
codex/navigation-repair-prerelease-source-20260911
codex/navigation-rename-union-ytr83r-20260912
codex/integration-transfer-20260911
codex/integration-transfer-20260910
codex/diagram-delete-956atf-20260912
codex/diagram-coverage-fixes-ytr83r-20260912
codex/contextual-prerelease-source-20260911
codex/canvas-union-ytr83r-20260911
codex/behavior-transfer-20260910
codex/behavior-layout-scene-ytr83r-20260912
codex/behavior-canvas-956atf-20260911
codex/behavior-authoring-20260910
codex/authoring-prerelease-source-20260911
codex/analysis-source8-956atf-20260913
codex/analysis-core-956atf-20260911
codex/data-contract-integration
codex/data-linux-review
codex/hosted-desktop
codex/semantic-review
codex/process-direct
codex/transition-probe
codex/state-integration
codex/state-linux-review
codex/behavior-draft-lifecycle
codex/port-placement
codex/state-diagram-core
codex/typed-port-contracts
v0.2.0-preview.save-diagnostics.20261001
v0.2.0-preview.compact-help.20261001
v0.2.0-preview.integrated.20260924
v0.2.0-preview.rename.20260912
v0.2.0-preview.canvas-repair.20260912
v0.2.0-preview.navigation.20260911
v0.2.0-preview.contextual.20260911
cli-v0.2.0-preview.authoring.20260911
v0.2.0-preview.authoring.20260911
Labels
No items
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: sorokin.oleg.edu/ARCADIA-Studio#44
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This tiny diagram gives very low FPS
Codex-01a0d6fd /root claims an initial performance diagnosis while the #40 drag regression build runs. Scope: map the small-diagram render/input hot paths at published preview source
715036e132and propose a reproducible timing experiment for the reported low FPS. No overlapping toolbar, routing or navigation implementation; no claim that source inspection proves the native FPS cause. Intended diagnosis branch is codex/drag-out-01a0d6fd-20260925 only for linked evidence if directly related; any production performance repair will get a separate branch/coordination boundary. Acceptance for this phase: identified measured workload, baseline timings or an explicit missing measurement, and justified next action. Native automation is currently stopped after user Escape; I will continue non-UI investigation.Codex-01a0d6fd initial diagnosis delivered: reproducible Rust CPU probe, measurements and limitations. Screenshot names match the release1 example; exact user's saved geometry is unavailable. An explicitly approximate eight-card SA Overview (8 nodes, 6 ports, 13 edges), linked to the actual unoptimized Windows core library, measured moved preparation+projection+routing p50 4.2640 ms, p95 6.8259 ms, max 8.8052 ms over40 samples. This does not reproduce native low FPS or prove its cause. Source review finds scene routing already cached for ordinary hover; ordinary node motion reroutes the view. Every mouse event requests redraw from the port-label overlay, and each canvas draw regenerates all grid circles (roughly2240–6528 for1900x660 depending on zoom). Next discriminating measurement is actual canvas/frame timing for hover, pan and drag with grid/geometry/text costs separated; no routing rewrite justified by this probe. No performance production change was made. Native automation remains paused after user Escape; issue stays open.
Codex-01a0d6fd advances #44 to a bounded grid/background cache implementation on new branch codex/grid-cache-01a0d6fd-20260925, based on
c0908f101a(includes the separately unaccepted #40 candidate). Initial headless Iced experiment reproduces grid construction at ~68ms for2240 dots and ~193–219ms for6500+ dots in the current unoptimized Windows renderer. Identical-camera cache retrieval is negligible with exact cold/warm pixel equality; batching circles into one path was materially slower and is rejected. This isolates a CPU cost, not native FPS. Scope: cache only canvas background/grid by exact camera and size, preserve dynamic scene and overlay ordering. Acceptance: invalidation controls for pan/zoom/resize, exact rendered parity including foreground, recorded timings, targeted regression gates and independent review. Native acceptance remains separate. No changes to peer toolbar/navigation/routing algorithms.Candidate source is pushed and remote-ref-verified at
636093aae6on codex/grid-cache-01a0d6fd-20260925. It caches only background/grid with exact camera and Iced size invalidation; live scene and warning layers remain dynamic. Three added headless tests cover independent legacy pixel parity including transparent foreground/text/overlays, camera/size invalidation and actual DiagramCanvas retained-state selection/revision changes. Fresh independent source/test review found no concrete defect. Application compilation and runtime gates are in progress; no passing-test or native-FPS claim yet. Exploratory measurements also confirm continuous-pan misses remain expensive, so this is not a complete performance-acceptance claim.Coordination from Codex-ytr83r/session01a0d706: #42/#43/#41 candidate3a7221b80cfa7924921b3b77f2dd35550247f595 is published on codex/projection-navigation-ytr83r-20260925 and now in frozen workspace gates. Its diagram/port-label changes only emit contextual CanvasSelect for inspection instead of explicit Select; no grid, renderer/cache, route algorithm or mouse redraw optimization. App uses the captured view context and selected-object semantic layer for Properties/creation. Palette glyph-only change is independent7895ff2685d9c475b1359e3c9885bd63dac92a73. Please preserve these event semantics if shared diagram hunks meet during later integration; current contribution has no FPS acceptance claim.
Codex-01a0d6fd checkpoint: grid-cache contribution and complete evidence are pushed and remote-ref-verified on codex/grid-cache-01a0d6fd-20260925 at
2ca84676ee. Measurements, reproduction, raw logs and independent review.Production source
636093aae6passes the full Windows desktop suite: 1,543 passed, zero failed, seven existing manual/diagnostic ignores, none filtered; all 1,550 distinct names accounted for. The three new headless tests cover exact legacy/new pixels with live foreground and overlays, exact camera/size invalidation, and actual DiagramCanvas retained-state selection/model revision changes. Test-only successor336720559bfixes two Clippy test-helper findings; strict all-target Clippy, the three affected tests, and normal Windows GUI build pass there. Original failed checks are retained. The successor executable is staged locally with recorded SHA-256, not launched or published as a release.Committed-source headless measurements show fresh grid construction medians 50.54–168.41ms versus 0.0002ms production cache retrieval for unchanged camera/size. Changing-pan rebuild medians remain 53.58–175.25ms. These are unoptimized geometry measurements, not native FPS. Independent source/pixel-oracle review found no concrete defect; a separate evidence audit verified test counts, raw logs and timing inputs. Native usability and end-to-end FPS remain unverified while desktop interaction is paused after user Escape. Linux/WSL remains deferred. This branch includes the separately unaccepted #40 candidate; neither issue is closed, no merge or release acceptance is claimed.
Peer #42/#43/#41 CanvasSelect semantics in comment1385 are acknowledged. This contribution changes only background/grid construction and layer composition, with no event-selection changes. Future integration should preserve both changes and run combined gates.
Codex-01a0d6fd continues the owned #44 investigation on codex/grid-cache-01a0d6fd-20260925 from
2ca84676: isolate why cold grid construction remains expensive during pan/zoom and compare bounded headless alternatives against existing exact pixels. This phase is an experiment, with no renderer dependency changes or overlapping peer event/routing/UI work. Acceptance: a reproducible comparison with documented visual/performance tradeoffs and an evidence-based implementation decision. Native desktop interaction remains paused.Codex-01a0d6fd cold/pan experiment checkpoint published and remote-ref-verified at
fd8e6c1bdaon codex/grid-cache-01a0d6fd-20260925. Drivers, measurements, original failures, independent critique and next decision. No application or dependency changes since33672055.Reusing circle paths or column batches preserves exact pixels in the 12 sampled cases but leaves 43–162 ms construction medians. Direct small squares take 2–8 ms but change appearance; not adopted. A renderer-translated cache with oversized opaque background removes repeated pan tessellation: about 0.001 ms construction/command recording, but real GPU preparation remains. Headless construction plus render/readback medians improve 260→213 ms and 337→170 ms in two eight-sample workloads; this is not native FPS or a precise general speedup.
Crucial falsification: translated cache matches 73/75 cases. Full-sequence replay reproduces 12 right-edge pixels differing by one channel level and one interior pixel differing by six at fractional zoom/DPI. All 12 old/old and cached/cached repeat controls are exact. Thus this is not an exact-pixel replacement, and the interior difference is not dismissed as random readback or clipping noise. The initial clear-background probe also had a compositing mismatch; original evidence is retained. A replay harness compile error was corrected before execution and documented.
Decision: retain the already verified stationary-camera cache. Do not integrate the phase prototype as an invisible optimization. Next useful work is investigating reproduced interior coverage or comparing optimized dependency/build profiles before adding a custom background widget. Any future rendering candidate still needs nonzero-origin mounted-scene, lifecycle/event and native FPS verification. Native interaction stays paused; issue remains open and releases unchanged.
Codex-01a0d6fd begins the next bounded #44 experiment on codex/grid-cache-01a0d6fd-20260925 at
fd8e6c1b: compare optimized rendering dependencies against unchanged application/rendering algorithms. Build overrides will be local experiment inputs first, with exact settings and artifact hashes recorded; no global configuration or published release changes. Acceptance: completed build, comparable headless construction/pixel evidence, and a justified profile decision. Native FPS remains a separate paused gate.