diff options
| author | MrPurple666 <antoniosacramento666usa@gmail.com> | 2026-02-01 02:02:23 +0100 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2026-02-01 02:02:23 +0100 |
| commit | 6637810fe6c6610f73f0b1b12e56e9b48268d0ee (patch) | |
| tree | 294b8dd7efc3df043b7502634ac14d6170c911eb /src/video_core/renderer_vulkan/vk_scheduler.cpp | |
| parent | 8118557c17480d2eb5f1510de841f88cde13f2be (diff) | |
[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 <dravee@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3389
Reviewed-by: DraVee <dravee@eden-emu.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Co-authored-by: MrPurple666 <antoniosacramento666usa@gmail.com>
Co-committed-by: MrPurple666 <antoniosacramento666usa@gmail.com>
Diffstat (limited to 'src/video_core/renderer_vulkan/vk_scheduler.cpp')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_scheduler.cpp | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/video_core/renderer_vulkan/vk_scheduler.cpp b/src/video_core/renderer_vulkan/vk_scheduler.cpp index e19029812b..e526d606dc 100644 --- a/src/video_core/renderer_vulkan/vk_scheduler.cpp +++ b/src/video_core/renderer_vulkan/vk_scheduler.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project @@ -9,9 +9,13 @@ #include <thread> #include <utility> +#include <fmt/format.h> + #include "video_core/renderer_vulkan/vk_query_cache.h" +#include "common/settings.h" #include "common/thread.h" +#include "video_core/gpu_logging/gpu_logging.h" #include "video_core/renderer_vulkan/vk_command_pool.h" #include "video_core/renderer_vulkan/vk_graphics_pipeline.h" #include "video_core/renderer_vulkan/vk_master_semaphore.h" @@ -114,6 +118,15 @@ void Scheduler::RequestRenderpass(const Framebuffer* framebuffer) { state.framebuffer = framebuffer_handle; state.render_area = render_area; + // Log render pass begin + if (Settings::values.gpu_logging_enabled.GetValue() && + Settings::values.gpu_log_vulkan_calls.GetValue()) { + const std::string render_pass_info = fmt::format( + "renderArea={}x{}, numImages={}", + render_area.width, render_area.height, framebuffer->NumImages()); + GPU::Logging::GPULogger::GetInstance().LogRenderPassBegin(render_pass_info); + } + Record([renderpass, framebuffer_handle, render_area](vk::CommandBuffer cmdbuf) { const VkRenderPassBeginInfo renderpass_bi{ .sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO, @@ -270,6 +283,12 @@ u64 Scheduler::SubmitExecution(VkSemaphore signal_semaphore, VkSemaphore wait_se switch (const VkResult result = master_semaphore->SubmitQueue( cmdbuf, upload_cmdbuf, signal_semaphore, wait_semaphore, signal_value)) { case VK_SUCCESS: + // Log successful queue submission + if (Settings::values.gpu_logging_enabled.GetValue() && + Settings::values.gpu_log_vulkan_calls.GetValue()) { + GPU::Logging::GPULogger::GetInstance().LogVulkanCall( + "vkQueueSubmit", "", VK_SUCCESS); + } break; case VK_ERROR_DEVICE_LOST: device.ReportLoss(); @@ -305,6 +324,12 @@ void Scheduler::EndRenderPass() return; } + // Log render pass end + if (Settings::values.gpu_logging_enabled.GetValue() && + Settings::values.gpu_log_vulkan_calls.GetValue()) { + GPU::Logging::GPULogger::GetInstance().LogRenderPassEnd(); + } + query_cache->CounterEnable(VideoCommon::QueryType::ZPassPixelCount64, false); query_cache->NotifySegment(false); |
