From 07de7a8dc7b2570c9c4806f04c1a31cd43aba560 Mon Sep 17 00:00:00 2001 From: xbzk Date: Wed, 27 May 2026 18:41:36 -0300 Subject: [PATCH] [settings,android] surfaced dump guest shaders and dump macro controls --- .../features/settings/model/BooleanSetting.kt | 2 ++ .../features/settings/model/view/SettingsItem.kt | 14 ++++++++++++++ .../settings/ui/SettingsFragmentPresenter.kt | 2 ++ src/android/app/src/main/res/values/strings.xml | 8 ++++++-- 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt index e3fa9ce428..bfa9820939 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt @@ -85,6 +85,8 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting { // GPU Logging GPU_LOG_VULKAN_CALLS("gpu_log_vulkan_calls"), GPU_LOG_SHADER_DUMPS("gpu_log_shader_dumps"), + DUMP_GUEST_SHADERS("dump_guest_shaders"), + DUMP_MACROS("dump_macros"), GPU_LOG_MEMORY_TRACKING("gpu_log_memory_tracking"), GPU_LOG_DRIVER_DEBUG("gpu_log_driver_debug"), diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt index 4c13996954..f8653032d2 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt @@ -940,6 +940,13 @@ abstract class SettingsItem( descriptionId = R.string.gpu_log_vulkan_calls_description ) ) + put( + SwitchSetting( + BooleanSetting.DUMP_GUEST_SHADERS, + titleId = R.string.dump_guest_shaders, + descriptionId = R.string.dump_guest_shaders_description + ) + ) put( SwitchSetting( BooleanSetting.GPU_LOG_SHADER_DUMPS, @@ -947,6 +954,13 @@ abstract class SettingsItem( descriptionId = R.string.gpu_log_shader_dumps_description ) ) + put( + SwitchSetting( + BooleanSetting.DUMP_MACROS, + titleId = R.string.dump_macros, + descriptionId = R.string.dump_macros_description + ) + ) put( SwitchSetting( BooleanSetting.GPU_LOG_MEMORY_TRACKING, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt index ad81b494bf..0fcb4b4456 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt @@ -1291,7 +1291,9 @@ class SettingsFragmentPresenter( add(HeaderSetting(R.string.gpu_logging_header)) add(ByteSetting.GPU_LOG_LEVEL.key) add(BooleanSetting.GPU_LOG_VULKAN_CALLS.key) + add(BooleanSetting.DUMP_GUEST_SHADERS.key) add(BooleanSetting.GPU_LOG_SHADER_DUMPS.key) + add(BooleanSetting.DUMP_MACROS.key) add(BooleanSetting.GPU_LOG_MEMORY_TRACKING.key) add(BooleanSetting.GPU_LOG_DRIVER_DEBUG.key) add(IntSetting.GPU_LOG_RING_BUFFER_SIZE.key) diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 16cb1460d2..1ff1033c35 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -576,8 +576,12 @@ Detail level for GPU logs (higher = more detail, more overhead) Log Vulkan API Calls Track all Vulkan API calls in ring buffer - Dump Shaders - Save compiled shader SPIR-V to files + Dump SPIR-V Shaders + Save recompiled SPIR-V binaries (.spv) to dump folder. Inspect with spirv-dis/spirv-cross/spirv-val. + Dump Guest (Maxwell) Shaders + Save Maxwell guest shader bytecode files (*.ash) to dump folder. Inspect with nvdisasm. + Dump Maxwell Macros + Save Maxwell macro program files (*.macro) to dump folder. Inspect with envydis. Track GPU Memory Monitor GPU memory allocations and deallocations Driver Debug Info