aboutsummaryrefslogtreecommitdiff
path: root/src/android
diff options
context:
space:
mode:
authorxbzk <xbzk@eden-emu.dev>2026-06-27 02:52:13 +0200
committercrueter <crueter@eden-emu.dev>2026-06-27 02:52:13 +0200
commit09b6b3b71e74a47ae8b8ffe64b1803fc34bae6a2 (patch)
tree7949d8522bafb1565b98c3821db07c2b96867f89 /src/android
parent629ebf1bdee023d3d3ecc96c3276cf3285f8f727 (diff)
xbzk/gpu-logging_qt-controls_android-fix (#4018)
5af7771f83-Bugfix: Made gpu_log_level global-only (was per-game switchable). Fixed Android non-determinism where a per-game profile silently overrode the global to Off and trapped GPULogger::Initialize() in a dead state, making shader dumps fail invisibly. Android per-game UI now hides the whole GPU logging block; Qt UI is untouched (global-only anyway). bf4aabe8ab-Refactor/Cleanup: Removed gpu_logging_enabled master toggle as redundant with gpu_log_level == Off. Introduced GPU::Logging::IsActive() helper, replaced 14 call sites across vk_*.cpp. Refactored LogShaderCompilation() to be text-only and extracted SPIR-V dumping into a standalone GPU::Logging::DumpSpirvShader() free function. No singleton dependency, gated only by gpu_log_shader_dumps. Now gpu_log_level and gpu_log_shader_dumps are fully orthogonal. Cleaned up Android (BooleanSetting, SettingsItem, presenter, 7 locale string files). 865a1c5027-Refactor: Renamed dump_shaders → dump_guest_shaders to disambiguate from gpu_log_shader_dumps. Updated Qt label to "Dump Guest (Maxwell) Shaders" and rewrote the tooltip to mention .ash, the DumpDir/shaders/ location, and nvdisasm. 7cab456fdf-Feature: Added Qt UI control for GPU log level in the Logging session. Added gpu_log_shader_dumps checkbox to the Graphics column right below dump_guest_shaders. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4018 Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Diffstat (limited to 'src/android')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt3
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt21
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt19
-rw-r--r--src/android/app/src/main/res/values-ar/strings.xml2
-rw-r--r--src/android/app/src/main/res/values-es/strings.xml2
-rw-r--r--src/android/app/src/main/res/values-fr/strings.xml1
-rw-r--r--src/android/app/src/main/res/values-ru/strings.xml2
-rw-r--r--src/android/app/src/main/res/values-uk/strings.xml2
-rw-r--r--src/android/app/src/main/res/values-zh-rCN/strings.xml2
-rw-r--r--src/android/app/src/main/res/values/strings.xml10
10 files changed, 33 insertions, 31 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 a412a80a2e..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
@@ -83,9 +83,10 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
ENABLE_OVERLAY("enable_overlay"),
// GPU Logging
- GPU_LOGGING_ENABLED("gpu_logging_enabled"),
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 e3cd458a39..d8caa2828d 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
@@ -932,13 +932,6 @@ abstract class SettingsItem(
// GPU Logging settings
put(
- SwitchSetting(
- BooleanSetting.GPU_LOGGING_ENABLED,
- titleId = R.string.gpu_logging_enabled,
- descriptionId = R.string.gpu_logging_enabled_description
- )
- )
- put(
SingleChoiceSetting(
ByteSetting.GPU_LOG_LEVEL,
titleId = R.string.gpu_log_level,
@@ -956,6 +949,13 @@ abstract class SettingsItem(
)
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,
titleId = R.string.gpu_log_shader_dumps,
descriptionId = R.string.gpu_log_shader_dumps_description
@@ -963,6 +963,13 @@ abstract class SettingsItem(
)
put(
SwitchSetting(
+ BooleanSetting.DUMP_MACROS,
+ titleId = R.string.dump_macros,
+ descriptionId = R.string.dump_macros_description
+ )
+ )
+ put(
+ SwitchSetting(
BooleanSetting.GPU_LOG_MEMORY_TRACKING,
titleId = R.string.gpu_log_memory_tracking,
descriptionId = R.string.gpu_log_memory_tracking_description
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 e2d70f1670..07dd987f1d 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
@@ -1288,14 +1288,17 @@ class SettingsFragmentPresenter(
add(ShortSetting.DEBUG_KNOBS.key)
add(StringSetting.PROGRAM_ARGS.key)
- add(HeaderSetting(R.string.gpu_logging_header))
- add(BooleanSetting.GPU_LOGGING_ENABLED.key)
- add(ByteSetting.GPU_LOG_LEVEL.key)
- add(BooleanSetting.GPU_LOG_VULKAN_CALLS.key)
- add(BooleanSetting.GPU_LOG_SHADER_DUMPS.key)
- add(BooleanSetting.GPU_LOG_MEMORY_TRACKING.key)
- add(BooleanSetting.GPU_LOG_DRIVER_DEBUG.key)
- add(IntSetting.GPU_LOG_RING_BUFFER_SIZE.key)
+ if (!NativeConfig.isPerGameConfigLoaded()) {
+ 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-ar/strings.xml b/src/android/app/src/main/res/values-ar/strings.xml
index 044930eacc..c66c20d66a 100644
--- a/src/android/app/src/main/res/values-ar/strings.xml
+++ b/src/android/app/src/main/res/values-ar/strings.xml
@@ -569,8 +569,6 @@
<!-- GPU Logging strings -->
<string name="gpu_logging_header">تسجيل وحدة معالجة الرسومات</string>
- <string name="gpu_logging_enabled">تمكين تسجيل وحدة معالجة الرسومات</string>
- <string name="gpu_logging_enabled_description">تسجيل عمليات وحدة معالجة الرسومات في ملف eden_gpu.log لتصحيح أخطاء برامج تشغيل Adreno</string>
<string name="gpu_log_level">مستوى السجل</string>
<string name="gpu_log_level_description">مستوى التفاصيل لسجلات وحدة معالجة الرسومات (كلما زاد المستوى، زادت التفاصيل وزادت التكاليف الإضافية)</string>
<string name="gpu_log_vulkan_calls">تسجيل استدعاءات واجهة برمجة تطبيقات Vulkan</string>
diff --git a/src/android/app/src/main/res/values-es/strings.xml b/src/android/app/src/main/res/values-es/strings.xml
index 6e12baa4a1..8b505df846 100644
--- a/src/android/app/src/main/res/values-es/strings.xml
+++ b/src/android/app/src/main/res/values-es/strings.xml
@@ -563,8 +563,6 @@
<!-- GPU Logging strings -->
<string name="gpu_logging_header">Registros de la GPU</string>
- <string name="gpu_logging_enabled">Activar los registros de la GPU</string>
- <string name="gpu_logging_enabled_description">Registra las operaciones de la GPU en eden_gpu.log para la depuración de los controladores de Adreno</string>
<string name="gpu_log_level">Nivel de registros</string>
<string name="gpu_log_level_description">Nivel de detalle de los registros de la GPU (más alto = más detalles, más sobrecarga)</string>
<string name="gpu_log_vulkan_calls">Registros de llamadas del API de Vulkan</string>
diff --git a/src/android/app/src/main/res/values-fr/strings.xml b/src/android/app/src/main/res/values-fr/strings.xml
index 30f73fea84..328141d70c 100644
--- a/src/android/app/src/main/res/values-fr/strings.xml
+++ b/src/android/app/src/main/res/values-fr/strings.xml
@@ -525,7 +525,6 @@
<!-- GPU Logging strings -->
<string name="gpu_logging_header">Journalisation GPU</string>
- <string name="gpu_logging_enabled">Activer la journalisation GPU</string>
<string name="gpu_log_level">Niveau de journalisation</string>
<string name="gpu_log_vulkan_calls">Journaliser les appels API Vulkan</string>
<string name="gpu_log_shader_dumps">Extraire les shaders</string>
diff --git a/src/android/app/src/main/res/values-ru/strings.xml b/src/android/app/src/main/res/values-ru/strings.xml
index d1a9857469..badb24bc09 100644
--- a/src/android/app/src/main/res/values-ru/strings.xml
+++ b/src/android/app/src/main/res/values-ru/strings.xml
@@ -562,8 +562,6 @@
<!-- GPU Logging strings -->
<string name="gpu_logging_header">Ведение журнала ГПУ</string>
- <string name="gpu_logging_enabled">Включить ведение журнала ГПУ</string>
- <string name="gpu_logging_enabled_description">Записывать операции ГПУ в файл eden_gpu.log для отладки драйверов Adreno</string>
<string name="gpu_log_level">Уровень журналирования</string>
<string name="gpu_log_level_description">Уровень детализации логов ГПУ (больше значение = больше деталей, выше нагрузка)</string>
<string name="gpu_log_vulkan_calls">Записывать вызовы Vulkan API</string>
diff --git a/src/android/app/src/main/res/values-uk/strings.xml b/src/android/app/src/main/res/values-uk/strings.xml
index bef629def3..284cd5ba2e 100644
--- a/src/android/app/src/main/res/values-uk/strings.xml
+++ b/src/android/app/src/main/res/values-uk/strings.xml
@@ -565,8 +565,6 @@
<!-- GPU Logging strings -->
<string name="gpu_logging_header">Журналювання ГП</string>
- <string name="gpu_logging_enabled">Увімкнути журналювання ГП</string>
- <string name="gpu_logging_enabled_description">Журналювати операції ГП до eden_gpu.log для зневадження драйверів Adreno</string>
<string name="gpu_log_level">Рівень журналювання</string>
<string name="gpu_log_level_description">Рівень подробиць у журналі ГП (вищий = більше подробиць, більший вплив на швидкодію)</string>
<string name="gpu_log_vulkan_calls">Записувати виклики API Vulkan</string>
diff --git a/src/android/app/src/main/res/values-zh-rCN/strings.xml b/src/android/app/src/main/res/values-zh-rCN/strings.xml
index 1e203a4d2a..8a669986e6 100644
--- a/src/android/app/src/main/res/values-zh-rCN/strings.xml
+++ b/src/android/app/src/main/res/values-zh-rCN/strings.xml
@@ -559,8 +559,6 @@
<!-- GPU Logging strings -->
<string name="gpu_logging_header">GPU 日志</string>
- <string name="gpu_logging_enabled">启用 GPU 日志</string>
- <string name="gpu_logging_enabled_description">将 GPU 操作记录至 eden_gpu.log 以供调试 Adreno 驱动</string>
<string name="gpu_log_level">日志等级</string>
<string name="gpu_log_level_description">GPU 日志的详细级别(数值越高 = 细节越多,开销越大)</string>
<string name="gpu_log_vulkan_calls">记录 Vulkan API 调用</string>
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml
index a425ce36ef..133ac4ff06 100644
--- a/src/android/app/src/main/res/values/strings.xml
+++ b/src/android/app/src/main/res/values/strings.xml
@@ -575,14 +575,16 @@
<!-- GPU Logging strings -->
<string name="gpu_logging_header">GPU Logging</string>
- <string name="gpu_logging_enabled">Enable GPU Logging</string>
- <string name="gpu_logging_enabled_description">Log GPU operations to eden_gpu.log for debugging Adreno drivers</string>
<string name="gpu_log_level">Log Level</string>
<string name="gpu_log_level_description">Detail level for GPU logs (higher = more detail, more overhead)</string>
<string name="gpu_log_vulkan_calls">Log Vulkan API Calls</string>
<string name="gpu_log_vulkan_calls_description">Track all Vulkan API calls in ring buffer</string>
- <string name="gpu_log_shader_dumps">Dump Shaders</string>
- <string name="gpu_log_shader_dumps_description">Save compiled shader SPIR-V to files</string>
+ <string name="gpu_log_shader_dumps">Dump SPIR-V Shaders</string>
+ <string name="gpu_log_shader_dumps_description">Save recompiled SPIR-V binaries (.spv) to dump folder. Inspect with spirv-dis/spirv-cross/spirv-val.</string>
+ <string name="dump_guest_shaders">Dump Guest (Maxwell) Shaders</string>
+ <string name="dump_guest_shaders_description">Save Maxwell guest shader bytecode files (*.ash) to dump folder. Inspect with nvdisasm.</string>
+ <string name="dump_macros">Dump Maxwell Macros</string>
+ <string name="dump_macros_description">Save Maxwell macro program files (*.macro) to dump folder. Inspect with envydis.</string>
<string name="gpu_log_memory_tracking">Track GPU Memory</string>
<string name="gpu_log_memory_tracking_description">Monitor GPU memory allocations and deallocations</string>
<string name="gpu_log_driver_debug">Driver Debug Info</string>