Skip to content

UI-A4 — High refresh rate enablement and debug overlay #174

Description

@ZhuchkaTriplesix

Epic: #170
Depends on: 0.4.3 shipped (can run parallel with #173#172)

Source: docs/motion-and-high-refresh.md §3

Goal

Unlock native display refresh rate (90/120/144 Hz) where the engine/OS caps at 60, and add diagnostics to prove real Hz on each platform.

Files

  • lib/main.dart — call unlock after WidgetsFlutterBinding.ensureInitialized()
  • lib/core/motion/display_refresh.dart (new wrapper around refresh_rate package)
  • pubspec.yaml — add refresh_rate dependency
  • Optional: debug overlay gated by kDebugMode or hidden flag

Implementation

  • Add refresh_rate package; thin DisplayRefreshService with enable(), queryHz(), disable().
  • Call enable() / preferMax() once in main() on desktop.
  • macOS 14+: primary unlock target (ProMotion/high-Hz).
  • Windows / Linux: query and log active Hz; verify engine follows monitor (no unlock API needed per research).
  • Debug-only FPS/Hz overlay (e.g. refresh_rate showHz()) behind a compile-time or runtime flag — not in release UI.
  • Document measured Hz per OS in issue comment or A6 doc.

Acceptance Criteria

  • App reports actual Hz ≥ monitor rate on macOS 14+ test machine (or logs warning if capped).
  • Windows/Linux: Hz query logged at startup; manual DevTools confirms frame budget at target Hz.
  • No regression in startup time or crash on platforms without high-Hz.
  • flutter analyze clean; tests green.

References


Metadata

Metadata

Labels

enhancementNew feature or requestfrontendTheme parser epic label: frontendmotionAnimation system, transitions, motion tokensperformanceTheme parser epic label: performance

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions