diff options
| author | xbzk <xbzk@eden-emu.dev> | 2026-06-27 02:52:13 +0200 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2026-06-27 02:52:13 +0200 |
| commit | 09b6b3b71e74a47ae8b8ffe64b1803fc34bae6a2 (patch) | |
| tree | 7949d8522bafb1565b98c3821db07c2b96867f89 /src/android | |
| parent | 629ebf1bdee023d3d3ecc96c3276cf3285f8f727 (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')
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> |
