Skip to content

perf: complete macOS render, decoder, and capacity controls - #81

Merged
tcconnally merged 1 commit into
mainfrom
perf/macos-m5-capacity
Aug 29, 2026
Merged

perf: complete macOS render, decoder, and capacity controls#81
tcconnally merged 1 commit into
mainfrom
perf/macos-m5-capacity

Conversation

@tcconnally

Copy link
Copy Markdown
Owner

Summary

This is the coordinated follow-up for the macOS performance roadmap:

  • Add an explicit macOS-only HYPERWALL_RENDER_PROFILE=low-cost tier without changing Windows/Linux defaults.
  • Export per-resource decoder attempts, activations, software fallbacks, exhausted recovery, and quarantine.
  • Parse p95 loop lag and active stalls at or above 100 ms.
  • Add a fail-closed 4/6/8-cell capacity evaluator with duration, responsiveness, render-gap, CPU, decoder, audio, A/V, and transport evidence.
  • Make the profile CLI accept normalized profiles or analyze_run() reports and select the highest passing mode.
  • Update operator documentation and the roadmap to describe the usable workflow.

Operational intent

The goal is to make the wall behave predictably under pressure: reduce avoidable GUI queue work, keep one bad resource from changing wall-wide decoder policy, and avoid silently promoting an unsupported cell count. The default HQ render path remains unchanged until a fixed-corpus comparison proves the cheaper tier is acceptable.

Validation

  • python3 tests/run_all.py: all suites green.
  • Focused platform, decoder, diagnostics, profile, and capacity tests pass.
  • Python compilation and git diff --check pass.

Hardware boundary

This PR provides the controls and reporting needed for the M5 run. It does not claim that 8-cell playback is production-ready, does not make VideoToolbox a global default, and does not use the rejected 30 fps / 25 Mbps live-transcode shaping. The physical 4/6/8-cell M5 matrix and fixed-corpus visual comparison remain qualification work.

Tracking

Refs #75
Refs #76
Refs #77
Refs #78
Refs #79

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.

1 participant