From 6637810fe6c6610f73f0b1b12e56e9b48268d0ee Mon Sep 17 00:00:00 2001 From: MrPurple666 Date: Sun, 1 Feb 2026 02:02:23 +0100 Subject: [android] gpu logs functions (#3389) Since Android is a pain when it comes to checking GPU logs in more depth, this is a better way to see what's going on, especially for testers... This should be expanded to Mali, Xclipse, and Tensor in the future. Since I don't own any of these devices, it's up to developers with similar capabilities to add support for this system. ~~The GPU log sharing button should also be added in the future... For now, they are available in the same location as the traditional logs.~~ Added on 572810e022 Co-authored-by: DraVee Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3389 Reviewed-by: DraVee Reviewed-by: CamilleLaVey Co-authored-by: MrPurple666 Co-committed-by: MrPurple666 --- src/video_core/gpu_logging/freedreno_debug.cpp | 52 ++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/video_core/gpu_logging/freedreno_debug.cpp (limited to 'src/video_core/gpu_logging/freedreno_debug.cpp') diff --git a/src/video_core/gpu_logging/freedreno_debug.cpp b/src/video_core/gpu_logging/freedreno_debug.cpp new file mode 100644 index 0000000000..14ffe04f78 --- /dev/null +++ b/src/video_core/gpu_logging/freedreno_debug.cpp @@ -0,0 +1,52 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifdef ANDROID + +#include "video_core/gpu_logging/freedreno_debug.h" +#include "common/logging/log.h" + +#include + +namespace GPU::Logging::Freedreno { + +bool FreedrenoDebugger::is_initialized = false; + +void FreedrenoDebugger::Initialize() { + if (is_initialized) { + return; + } + + is_initialized = true; + LOG_INFO(Render_Vulkan, "[Freedreno Debug] Initialized"); +} + +void FreedrenoDebugger::SetTUDebugFlags(const std::string& flags) { + if (flags.empty()) { + return; + } + + // Set TU_DEBUG environment variable + // Note: This should be set BEFORE Vulkan driver is loaded + setenv("TU_DEBUG", flags.c_str(), 1); + + LOG_INFO(Render_Vulkan, "[Freedreno Debug] TU_DEBUG set to: {}", flags); +} + +void FreedrenoDebugger::EnableCommandStreamDump(bool frames_only) { + // Enable FD_RD_DUMP for command stream capture + const char* dump_flags = frames_only ? "frames" : "all"; + setenv("FD_RD_DUMP", dump_flags, 1); + + LOG_INFO(Render_Vulkan, "[Freedreno Debug] Command stream dump enabled: {}", dump_flags); +} + +std::string FreedrenoDebugger::GetBreadcrumbs() { + // Breadcrumb reading requires driver-specific implementation + // This is a stub for future implementation + return "Breadcrumb capture not yet implemented"; +} + +} // namespace GPU::Logging::Freedreno + +#endif // ANDROID -- cgit v1.2.3