Files

2.2 KiB

Specification: UI Performance Metrics and AI Diagnostics

Overview

This track aims to resolve subpar UI performance (currently perceived below 60 FPS) by implementing a robust performance monitoring system. This system will collect high-resolution telemetry (Frame Time, Input Lag, Thread Usage) and expose it to both the user (via a Diagnostics Panel) and the AI (via API hooks). This ensures that performance degradation is caught early during development and testing.

Functional Requirements

  • Metric Collection Engine:
    • Track Frame Time (ms) for every frame rendered by Dear PyGui.
    • Measure Input Lag (estimated delay between input events and UI state updates).
    • Monitor CPU/Thread Usage, specifically identifying blocks in the main UI thread.
  • Diagnostics Panel:
    • A new dedicated panel in the GUI to display real-time performance graphs and stats.
    • Historical trend visualization for frame times to identify spikes.
  • AI API Hooks:
    • Polling Tool: A tool (e.g., get_ui_performance) that allows the AI to request a snapshot of current telemetry.
    • Event-Driven Alerts: A mechanism to notify the AI (or append to history) when performance metrics cross a "degradation" threshold (e.g., frame time > 33ms).
  • Performance Optimization:
    • Identify the "heavy" process currently running in the main UI thread loop.
    • Refactor identified bottlenecks to utilize background workers or optimized logic.

Non-Functional Requirements

  • Low Overhead: The monitoring system itself must not significantly impact UI performance (target <1% CPU overhead).
  • Accuracy: Frame timings must be accurate to sub-millisecond resolution.

Acceptance Criteria

  • UI consistently maintains "Smooth Frame Timing" (minimized spikes) under normal load.
  • Main thread load is reduced, evidenced by metrics showing less than 50% busy time during idle/light use.
  • AI can successfully retrieve performance data using the get_ui_performance tool.
  • AI is alerted when a simulated performance drop occurs.
  • The Diagnostics Panel displays live, accurate data.

Out of Scope

  • GPU-specific profiling (e.g., VRAM usage, shader timings).
  • Remote telemetry/analytics (data stays local).