Skip to content

Perf(debug): measure and trim remaining DebugPanel paint cost #116

Description

@ysdede

Summary

A lot of the first-round DebugPanel work is already in place on master:

  • LayeredBufferVisualizer.tsx caches canvas dimensions via ResizeObserver.
  • DPR changes are handled outside the hot draw path.
  • Spectrogram rendering reuses cached ImageData and lookup buffers.
  • Hidden / idle draw and fetch cadences are already lower than the foreground path.

This issue should now focus on the measured remaining paint cost, not the older pre-hardening implementation.

Goal

Profile the current DebugPanel path and trim the remaining spectrogram / waveform paint overhead that still shows up with the panel open.

Actions

  • Measure the current panel-open delta against panel-closed behavior.
  • Skip spectrogram uploads when nothing new needs to be painted.
  • Only redraw waveform / timeline layers when their inputs changed enough to matter.
  • If profiling still justifies it, evaluate lower-resolution or off-main-thread rendering for the spectrogram.

Acceptance

  • With DebugPanel open, the remaining paint cost is measurably lower than today.
  • No new long-task or frame-jank regressions are introduced while reducing panel work.
  • Any further optimization is driven by current profiling, not the older trace assumptions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is neededperformancePerformance optimization and profilingpriority:highImportant next work, impacts stability/performance/usability

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions