Efficiency batch 2

D2 — update() in starpilot_onroad.cc now only fires when at least one overlay (showBlindspot, showSignal, showSteering, showFPS) is active. ~30–60 wasted repaints/sec eliminated when all overlays are off.

E4 — Holiday theme check reordered so current_holiday_theme != "stock" (cheapest) is first. Default is stock, so the rest of the chain never evaluates on a normal non-holiday drive.

E7 — paintSteeringTorqueBorder no longer rebuilds the QLinearGradient and computes lighter(120)/setAlpha/5 setColorAt calls every frame. The gradient is now built once in resizeEvent and reused. The per-frame work is now just the two geometry calculations and fillRect.

E5/E6/E8 — Audited clean: all remaining params_memory.put calls are event-driven (button presses, random events), no hot-path logging exists in the UI code, and all QTimers are event-driven or single-shot offroad dialogs.
This commit is contained in:
whoisdomi
2026-05-05 17:09:57 -05:00
committed by firestar5683
parent c1d3e4540b
commit 78d5f71fed
3 changed files with 15 additions and 12 deletions
+1 -1
View File
@@ -75,7 +75,7 @@ class StarPilotEvents:
else:
self.stopped_for_light = False
if "holidayActive" not in self.played_events and self.startup_seen and alerts_empty and len(self.events) == 0 and starpilot_toggles.current_holiday_theme != "stock":
if starpilot_toggles.current_holiday_theme != "stock" and "holidayActive" not in self.played_events and self.startup_seen and alerts_empty and len(self.events) == 0:
self.events.add(StarPilotEventName.holidayActive)
if self.starpilot_planner.tracking_lead and sm["carState"].standstill and sm["carState"].gearShifter not in NON_DRIVING_GEARS:
+13 -11
View File
@@ -10,6 +10,15 @@ StarPilotOnroadWindow::StarPilotOnroadWindow(QWidget *parent) : QWidget(parent)
void StarPilotOnroadWindow::resizeEvent(QResizeEvent *event) {
rect = QWidget::rect();
marginRegion = QRegion(rect) - QRegion(rect.marginsRemoved(QMargins(UI_BORDER_SIZE, UI_BORDER_SIZE, UI_BORDER_SIZE, UI_BORDER_SIZE)));
steeringGradient = QLinearGradient(rect.topLeft(), rect.bottomLeft());
QColor bottomGreen = bg_colors[STATUS_ENGAGED].lighter(120);
bottomGreen.setAlpha(bg_colors[STATUS_ENGAGED].alpha());
steeringGradient.setColorAt(0.0, bg_colors[STATUS_TRAFFIC_MODE_ENABLED]);
steeringGradient.setColorAt(0.25, bg_colors[STATUS_EXPERIMENTAL_MODE_ENABLED]);
steeringGradient.setColorAt(0.5, bg_colors[STATUS_CEM_DISABLED]);
steeringGradient.setColorAt(0.75, bg_colors[STATUS_ENGAGED]);
steeringGradient.setColorAt(1.0, bottomGreen);
}
void StarPilotOnroadWindow::updateState(const UIState &s, const StarPilotUIState &fs) {
@@ -86,7 +95,9 @@ void StarPilotOnroadWindow::updateState(const UIState &s, const StarPilotUIState
.arg(qRound(avgFPS));
}
update();
if (showBlindspot || showSignal || showSteering || showFPS) {
update();
}
}
void StarPilotOnroadWindow::paintEvent(QPaintEvent *event) {
@@ -125,20 +136,11 @@ void StarPilotOnroadWindow::paintFPS(QPainter &p) {
void StarPilotOnroadWindow::paintSteeringTorqueBorder(QPainter &p) {
p.save();
QLinearGradient gradient(rect.topLeft(), rect.bottomLeft());
QColor bottomGreen = bg_colors[STATUS_ENGAGED].lighter(120);
bottomGreen.setAlpha(bg_colors[STATUS_ENGAGED].alpha());
gradient.setColorAt(0.0, bg_colors[STATUS_TRAFFIC_MODE_ENABLED]);
gradient.setColorAt(0.25, bg_colors[STATUS_EXPERIMENTAL_MODE_ENABLED]);
gradient.setColorAt(0.5, bg_colors[STATUS_CEM_DISABLED]);
gradient.setColorAt(0.75, bg_colors[STATUS_ENGAGED]);
gradient.setColorAt(1.0, bottomGreen);
int visibleHeight = rect.height() * smoothedSteer;
int xPos = (torque < 0) ? rect.x() : (rect.x() + rect.width() - UI_BORDER_SIZE);
int yPos = rect.y() + rect.height() - visibleHeight;
p.fillRect(QRect(xPos, yPos, UI_BORDER_SIZE, visibleHeight), gradient);
p.fillRect(QRect(xPos, yPos, UI_BORDER_SIZE, visibleHeight), steeringGradient);
p.restore();
}
@@ -42,6 +42,7 @@ private:
QColor rightBorderColor;
QRect rect;
QLinearGradient steeringGradient;
QRegion marginRegion;