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