@@ -239,8 +239,32 @@ protected override void InitialiseDefaults()
239239
240240 SetDefault ( OsuSetting . DashboardSortMode , UserSortCriteria . LastVisit ) ;
241241 SetDefault ( OsuSetting . DashboardDisplayStyle , OverlayPanelDisplayStyle . Card ) ;
242- SetDefault ( OsuSetting . AndroidPerformanceMode , false ) ;
243- SetDefault ( OsuSetting . AndroidLowLatencyAudio , false ) ;
242+ // Android performance defaults — both ON for fresh installs.
243+ //
244+ // - AndroidPerformanceMode = true:
245+ // Begins a high-performance GC session (GCLatencyMode.SustainedLowLatency
246+ // while in foreground) for the entire app lifetime, eliminating the
247+ // Gen1/Gen2 STW pauses that are the largest source of >1ms frame spikes
248+ // on the Update/Draw threads. Sustained Performance Mode + immersive
249+ // fullscreen + highest-refresh-rate are layered on top from
250+ // OsuGameAndroid. The setting was historically default-off because the
251+ // mitigations layered on it (refresh-rate switch, surface mode change)
252+ // could race the cold-start swapchain bring-up; the deferred-by-5s
253+ // scheduler in OsuGameAndroid.LoadComplete now handles that, and
254+ // AndroidStartupSafeMode catches any device-specific regression on the
255+ // next launch — so default-on is finally safe.
256+ // - AndroidLowLatencyAudio = true:
257+ // Routes BASS through Oboe (AAudio Exclusive + MMAP + StabilizedCallback)
258+ // instead of BASS's default OpenSL ES path. Cuts output latency from
259+ // ~80-120ms to ~5-15ms on devices that support MMAP, and makes the audio
260+ // callback eligible for ADPF priority hints. Initial bind is also
261+ // deferred under AndroidDeferStartupNativeInit, so default-on does not
262+ // widen the cold-start window.
263+ // - AndroidVulkanProbe stays default-off — it's a pure diagnostic that
264+ // constructs a transient VkInstance and adds startup time without
265+ // affecting steady-state performance. Power users opt in.
266+ SetDefault ( OsuSetting . AndroidPerformanceMode , true ) ;
267+ SetDefault ( OsuSetting . AndroidLowLatencyAudio , true ) ;
244268 SetDefault ( OsuSetting . AndroidVulkanProbe , false ) ;
245269 SetDefault ( OsuSetting . AndroidStartupFrameSyncMigrationApplied , false ) ;
246270
0 commit comments