diff --git a/src/xenia/gpu/command_processor.cc b/src/xenia/gpu/command_processor.cc index cac3a14a2..1d2afb53b 100644 --- a/src/xenia/gpu/command_processor.cc +++ b/src/xenia/gpu/command_processor.cc @@ -92,7 +92,9 @@ DEFINE_bool( DEFINE_bool( log_ui_draws, false, - "Reverse-engineering aid: arm a UI DRAW-ORDER capture with F10. Writes " + "OBSOLETE — the UI draw-order capture is armed by F10 unconditionally now, " + "so this flag is no longer needed and is kept only so old command lines " + "still parse. Reverse-engineering aid: F10 writes " "every draw of the next few swapped frames to xenia_re_ui_draws_NN.log in " "SUBMISSION ORDER and undeduplicated, with each draw's bound texture base " "and dimensions. For recovering the paint order of a 2D screen, which " @@ -194,9 +196,14 @@ void NoteUiDrawCaptureSwap() { } void RequestUiDrawCapture() { - if (!cvars::log_ui_draws) { - return; - } + // No cvar gate. It used to require `log_ui_draws`, which meant a run that + // wanted a UI capture had to pass the flag at LAUNCH — and launching with it + // correlates, across 12 runs, with the title screen refusing (A) (0 of 7 with + // the flag, 4 of 5 without). No mechanism was found for that and boot time + // does not explain it either, so rather than keep an unexplained variable in + // every navigation run, the arming is now unconditional: F10 arms it, exactly + // as it arms the ship capture next to it. The cost when nobody presses F10 is + // one relaxed atomic load per draw. uint32_t gen = g_ui_capture_gen.fetch_add(1, std::memory_order_relaxed) + 1; g_ui_swap_count.store(0, std::memory_order_relaxed); g_ui_capture_armed.store(true, std::memory_order_relaxed);