chore(conductor): Add new track 'investigate and fix heavy frametime performance issues'

This commit is contained in:
2026-02-23 15:20:32 -05:00
parent f1f3ed9925
commit 0535e436d5
5 changed files with 70 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
# Track gui_performance_20260223 Context
- [Specification](./spec.md)
- [Implementation Plan](./plan.md)
- [Metadata](./metadata.json)

View File

@@ -0,0 +1,8 @@
{
"track_id": "gui_performance_20260223",
"type": "bug",
"status": "new",
"created_at": "2026-02-23T15:10:00Z",
"updated_at": "2026-02-23T15:10:00Z",
"description": "investigate and fix heavy frametime performance issues with the gui"
}

View File

@@ -0,0 +1,25 @@
# Implementation Plan: GUI Performance Fix
## Phase 1: Instrumented Profiling and Regression Analysis
- [ ] Task: Baseline Profiling Run
- [ ] Sub-task: Launch app with `--enable-test-hooks` and capture `get_ui_performance` snapshot on idle startup.
- [ ] Sub-task: Identify which component (Dialogs, History, GUI_Tasks, Blinking, Comms, Telemetry) exceeds 1ms.
- [ ] Task: Regression Analysis (Commit `8aa70e2` to HEAD)
- [ ] Sub-task: Review `git diff` for `gui.py` and `ai_client.py` across the suspected range.
- [ ] Sub-task: Identify any code added to the `while dpg.is_dearpygui_running()` loop that lacks throttling.
- [ ] Task: Conductor - User Manual Verification 'Phase 1: Instrumented Profiling and Regression Analysis' (Protocol in workflow.md)
## Phase 2: Bottleneck Remediation
- [ ] Task: Implement Performance Fixes
- [ ] Sub-task: Write Tests (Performance regression test - verify no new heavy loops introduced)
- [ ] Sub-task: Implement Feature (Refactor/Throttle identified bottlenecks)
- [ ] Task: Verify Idle FPS Stability
- [ ] Sub-task: Write Tests (Verify frametimes are < 16.6ms via API hooks)
- [ ] Sub-task: Implement Feature (Final tuning of update frequencies)
- [ ] Task: Conductor - User Manual Verification 'Phase 2: Bottleneck Remediation' (Protocol in workflow.md)
## Phase 3: Final Validation
- [ ] Task: Stress Test Verification
- [ ] Sub-task: Write Tests (Simulate high volume of comms entries and verify FPS remains stable)
- [ ] Sub-task: Implement Feature (Ensure optimizations scale with history size)
- [ ] Task: Conductor - User Manual Verification 'Phase 3: Final Validation' (Protocol in workflow.md)

View File

@@ -0,0 +1,27 @@
# Specification: GUI Performance Investigation and Fix
## Overview
This track focuses on identifying and resolving severe frametime performance issues in the Manual Slop GUI. Current observations indicate massive frametime bloat even on idle startup, with performance significantly regressing (target 60 FPS / <16.6ms) since commit `8aa70e287fbf93e669276f9757965d5a56e89b10`.
## Functional Requirements
- **Deep Profiling:**
- Use the high-resolution component timing (implemented in previous tracks) to pinpoint the exact main loop component causing bloat.
- Verify if the issue is in DPG rendering, theme binding, telemetry gathering, or thread synchronization.
- **Regression Analysis:**
- Examine changes since commit `8aa70e287fbf93e669276f9757965d5a56e89b10` to identify potentially expensive operations introduced to the main loop.
- **Optimization:**
- Refactor or throttle any identified bottlenecks.
- Ensure that UI initialization or data aggregation does not block the main thread unnecessarily.
## Non-Functional Requirements
- **Target Performance:** Consistent 60 FPS (<16.6ms per frame) during idle operation.
- **Stability:** Zero frames exceeding 33ms (spike threshold) during normal idle use.
## Acceptance Criteria
- [ ] Manual Slop GUI launches and maintains a stable <16.6ms frametime on idle.
- [ ] Performance Diagnostics panel confirms the absence of >16.6ms spikes on idle.
- [ ] The root cause of the regression is identified and verified through empirical testing.
## Out of Scope
- Optimizing AI response times (latency of the provider API).
- GPU-side optimizations (shaders/VRAM management).