From 32d876ded1aefc52f839d65570e3e3c43ec04415 Mon Sep 17 00:00:00 2001 From: Takoroka <137927095+Takoroka@users.noreply.github.com> Date: Wed, 28 Oct 2026 07:47:45 -0400 Subject: nx2: read debug switches once; key scripts from a file Several debug switches were read with std::getenv on every macro call, QMD, semaphore write or draw. The UCRT getenv locks and scans the environment, thousands of times a frame; a long EDEN_NX2_KEY_SCRIPT made title 4 crawl at 2 fps. Each is now read once. EDEN_NX2_KEY_SCRIPT=@ reads the script from a file. gdbrsp.py gains 'hits' (log registers, frame chain and object words at breakpoints, following the stopped thread). --- src/video_core/renderer_vulkan/vk_rasterizer.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/video_core/renderer_vulkan/vk_rasterizer.cpp') diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index 1b0493c4b5..609ac12fb4 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp @@ -288,7 +288,10 @@ void RasterizerVulkan::PrepareDraw(bool is_indexed, Func&& draw_func) { submitted = true; static u32 native_capture_count{}; if (maxwell3d->GetNativeMacroEngine().native_turing && - std::getenv("EDEN_NATIVE_DRAW_CAPTURE") && native_capture_count < 16) { + native_capture_count < 16 && [] { + static const bool capture = std::getenv("EDEN_NATIVE_DRAW_CAPTURE") != nullptr; + return capture; + }()) { const u32 capture = native_capture_count++; const auto prefix = fmt::format("native-draw-{}", capture); const auto dump = [&](const std::string& name, GPUVAddr address, size_t size) { @@ -1252,7 +1255,8 @@ std::optional RasterizerVulkan::AccelerateDisplay( const auto [image_view, scaled] = texture_cache.TryFindFramebufferImageView(config, framebuffer_addr); static u32 display_trace_count{}; - if (std::getenv("EDEN_NATIVE_FRAME_CAPTURE") && display_trace_count++ < 64) { + static const bool frame_capture = std::getenv("EDEN_NATIVE_FRAME_CAPTURE") != nullptr; + if (frame_capture && display_trace_count++ < 64) { LOG_INFO(HW_GPU, "Native display source: address={:#x}, offset={:#x}, dimensions={}x{}, stride={}, accelerated={}, mask={:#x}", framebuffer_addr, config.offset, config.width, config.height, pixel_stride, image_view != nullptr, config.layer_stack_mask); -- cgit v1.2.3