From 0360a266127e17f5cf3565571fb5ca7dd918fd52 Mon Sep 17 00:00:00 2001 From: arcattack Date: Wed, 22 Jul 2026 22:20:30 -0500 Subject: [PATCH] Console: local instances get BT_AFFINITY=0xF0 (upper cores) The game self-pins to core 0 by default; on the operator box core 0 is shared with the console/relay/desktop, and the mission load drains frame-paced -- a starved frame rate multiplied the operator's load time to 3-5 min while internet testers loaded in ~20s (live finding, round 2). The local-instance launcher now spreads the game across the upper cores unless BT_AFFINITY is explicitly set. Co-Authored-By: Claude Opus 4.8 (1M context) --- tools/btoperator.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/btoperator.py b/tools/btoperator.py index b4933ab..8329dec 100644 --- a/tools/btoperator.py +++ b/tools/btoperator.py @@ -807,6 +807,14 @@ class Operator(QMainWindow): # profile and the legacy arrow-drive bridge takes the keyboard # (user-reported: "launched with the wrong keymap again"). env.insert("BT_PLATFORM", "glass") + # OPERATOR LOAD SPEED (2026-07-22, live finding): the game pins + # itself to CPU core 0 by default, which on the operator box is + # shared with the console/relay/desktop -- and the mission load + # drains frame-paced, so a starved frame rate multiplies load + # time (testers ~20s, operator 3-5 min). Spread the local + # instance across the UPPER cores instead. + if "BT_AFFINITY" not in os.environ: + env.insert("BT_AFFINITY", "0xF0") if self.f_gauges.isChecked(): env.insert("BT_DEV_GAUGES", "1") if self.f_inside.isChecked():