aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_vulkan/vk_scheduler.cpp
diff options
context:
space:
mode:
authorMrPurple666 <antoniosacramento666usa@gmail.com>2026-02-01 02:02:23 +0100
committercrueter <crueter@eden-emu.dev>2026-02-01 02:02:23 +0100
commit6637810fe6c6610f73f0b1b12e56e9b48268d0ee (patch)
tree294b8dd7efc3df043b7502634ac14d6170c911eb /src/video_core/renderer_vulkan/vk_scheduler.cpp
parent8118557c17480d2eb5f1510de841f88cde13f2be (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.cpp27
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);