Skip to content

Pin Analysis above Roll and refresh it live while dragging - #1371

Merged
marcinz606 merged 2 commits into
mainfrom
mz/anroll
Oct 12, 2026
Merged

marcinz606 merged 2 commits into
mainfrom
mz/anroll

Conversation

@marcinz606

@marcinz606 marcinz606 commented Oct 12, 2026 •

Copy link
Copy Markdown
Owner

Fixes #1370

Summary

  • Analysis on the Roll tab. The Analysis section moves out of the Frame page into a splitter above the outer tab stack. It shows on Roll and Frame, is hidden on Metadata / Gear / Export / Scan, and keeps the saved splitter size. Black/White Point and the other Roll cards can now be judged against the histogram without switching tabs.
  • Live refresh while dragging. A drag render of the edit reads metrics back from the interactive proxy, and _update_analysis no longer skips interactive frames. The histogram, waveform, vectorscope, stats and the small slider histograms track the slider instead of waiting for release. Config-override renders (Flat peek, zone-placement preview) and the splash still skip readback, so they never replace the edit's histograms.

Cost

Headless drag (20 steps, DSC00448.ARW, offscreen, this machine's GPU):

before after
Chart refreshes during drag 0/20 20/20
Worker frame time (median) 1.7 ms 20 ms
_update_analysis on UI thread — 2.3 ms/frame

Most of the added time is the metrics map_sync waiting for the GPU to finish the frame (about 11 ms). The old 1.7 ms only covered submission. Expect a longer wait on integrated GPUs. If that becomes a problem, throttle the drag readback to every Nth frame.

Test plan

  • make all
  • New: a drag reads metrics back and an override render does not (test_controller.py)
  • New: Analysis visible only on Roll and Frame (test_right_panel_wiring.py)
  • Headless app run: visibility per tab, and live histogram refresh during drag
  • Manual: drag White Point on Roll on a real display, and check the drag still feels smooth on an integrated GPU

🤖 Generated with Claude Code

Analysis moves out of the Frame page into a splitter above the outer
tab stack, shown on Roll and Frame and hidden elsewhere. Black/White
Point and the other Roll cards can now be judged against the histogram
without switching tabs.

Refs #1370
A drag render of the edit now reads metrics back from the interactive
proxy, and the Analysis panel no longer skips interactive frames, so the
histogram, waveform and stats track the slider instead of waiting for
release. Config-override renders (flat peek, zone preview) and the
splash still skip readback so they never replace the edit's histograms.

Headless drag on DSC00448.ARW: 20/20 frames refresh the chart; worker
frame time 1.7 -> 20 ms median (the metrics map waits on the GPU, about
11 ms of it), _update_analysis 2.3 ms per frame on the UI thread.

Fixes #1370
@marcinz606
marcinz606 merged commit 0b38ddc into main Oct 12, 2026
1 check passed
thetalkingdrum added a commit to thetalkingdrum/NegPy that referenced this pull request Oct 12, 2026
Analysis now refreshes on drag frames (marcinz606#1371). The crossover readout reads
the print back and measures it on the UI thread, about 16-19 ms a frame,
so a drag frame keeps the last plot and the release frame redraws it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Option to pin a live histogram above the Roll and Frame tool panels

1 participant