diff --git a/docs/steamframe/PROGRESS.md b/docs/steamframe/PROGRESS.md index e55b719..7c557ee 100644 --- a/docs/steamframe/PROGRESS.md +++ b/docs/steamframe/PROGRESS.md @@ -234,6 +234,38 @@ (`steam://` URL) → own app key needed (option 2); our working directory and binary → enough. +**Result on the Frame (2026-10-07, deploy with `ec82b5f`):** SteamVR accepts our manifest +(no error) but keeps using Steam's entry for the key: +`source: "steam" launch type: "url" working dir: PropertyNotSet binary: PropertyNotSet +URL: "steam://launch/1009850/openvroverlay" auto-launch: true`. +- **Consequence:** the native build needs its own app key (option 2, DESIGN.md 2a, + follow-up). Design pending. +- **Side effect:** `--force-install-manifest` switched auto-launch on for Steam's key. At the + next SteamVR start, SteamVR may launch `steam://launch/1009850` (the uninstalled Steam + version). To be switched off again. +- OVRAS itself was started by `install.sh` and keeps running (not yet checked in the + dashboard, T2). + +### Fix: debug output only with debugSymbolsAndLogs (2026-10-07) + +- **Problem:** the log filled with `[D] updateAllPulseData done.` about every 11 ms (8399 + lines in 6 s). `AudioTabController::eventLoopTick()` reads the microphone's mute state on + every tick, and every read calls `updateAllPulseData()` + (`AudioManagerPulse_internal.h:312`). +- **Cause (regression in `qt6`):** on `master` the message was easylogging's `LOG(DEBUG)`, + and the Debug level was disabled unless built with `debugSymbolsAndLogs` + (`ENABLE_DEBUG_LOGGING`). `qt6` switched to `qDebug()` and lost that; the constant + `debugLoggingEnabled` in `setup.cpp` was left unused, so all 46 `qDebug()` calls were + always active. +- **Fix (`setup.cpp`, `setUpLogging()`):** without `ENABLE_DEBUG_LOGGING`, + `QLoggingCategory::setFilterRules("*.debug=false")`. `QT_LOGGING_RULES="*.debug=true"` + takes precedence and turns debug output on again without a rebuild. +- **Result:** cross build and package succeed, `Qt_6_PRIVATE_API` without `QVulkan*`: 0. +- **Not tested yet:** on the Frame (log without `[D]` lines; with `QT_LOGGING_RULES` with + them). +- **Open for R6/T10:** each tick makes three synchronous PulseAudio queries (server info, + all sinks, all sources) for the mute state. Not changed now. + ### Test checklist on the Frame (step 5) Deploy: `build_scripts/steamframe/deploy-to-frame.sh @` (SteamVR running). diff --git a/src/utils/setup.cpp b/src/utils/setup.cpp index f1b7dd6..25504cc 100644 --- a/src/utils/setup.cpp +++ b/src/utils/setup.cpp @@ -1,6 +1,7 @@ #include "setup.h" #include #include +#include #ifdef ENABLE_DEBUG_LOGGING constexpr auto debugLoggingEnabled = true; #else @@ -382,4 +383,13 @@ void setUpLogging() f = fopen( "AdvancedSettings.log", "a" ); qSetMessagePattern("[%{if-debug}D%{endif}%{if-info}I%{endif}%{if-warning}W%{endif}%{if-critical}C%{endif}%{if-fatal}F%{endif}] %{time process}: %{message}"); originalMessageHandler = qInstallMessageHandler( mainQtMessageHandler ); + // Debug output only in builds with debugSymbolsAndLogs, as on master + // (easylogging's Debug level was disabled otherwise). Some qDebug() calls + // run on every tick (e.g. "updateAllPulseData done."). The environment + // variable QT_LOGGING_RULES="*.debug=true" takes precedence over this and + // turns them on again without a rebuild. + if constexpr ( !debugLoggingEnabled ) + { + QLoggingCategory::setFilterRules( "*.debug=false" ); + } }