summaryrefslogtreecommitdiff
path: root/Source/Android
diff options
context:
space:
mode:
authormitaclaw <140017135+mitaclaw@users.noreply.github.com>2024-04-17 14:12:41 -0700
committermitaclaw <140017135+mitaclaw@users.noreply.github.com>2024-10-18 23:50:26 -0700
commitff9be97ea1135a238a093a4bbc61342b454921fe (patch)
tree9b92b7336c2a6a5e31724e4b1e58146045eac3fc /Source/Android
parent9b8df48d8401336dab812188419396e57eb6841b (diff)
JitCache: Add WipeBlockProfilingData Function
Accessible from DolphinQt and Android.
Diffstat (limited to 'Source/Android')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java5
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt10
-rw-r--r--Source/Android/app/src/main/res/values/strings.xml2
-rw-r--r--Source/Android/jni/MainAndroid.cpp16
4 files changed, 33 insertions, 0 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java
index 1cdd9fa473..63d40d5a91 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java
@@ -392,6 +392,11 @@ public final class NativeLibrary
public static native boolean IsUninitialized();
/**
+ * Re-initialize software JitBlock profiling data
+ */
+ public static native void WipeJitBlockProfilingData();
+
+ /**
* Writes out the JitBlock Cache log dump
*/
public static native void WriteJitBlockLogDump();
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt
index 7404b396fa..2af2202599 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt
@@ -2016,6 +2016,16 @@ class SettingsFragmentPresenter(
sl.add(
RunRunnable(
context,
+ R.string.debug_jit_wipe_block_profiling_data,
+ 0,
+ R.string.debug_jit_wipe_block_profiling_data_alert,
+ 0,
+ true
+ ) { NativeLibrary.WipeJitBlockProfilingData() }
+ )
+ sl.add(
+ RunRunnable(
+ context,
R.string.debug_jit_write_block_log_dump,
0,
0,
diff --git a/Source/Android/app/src/main/res/values/strings.xml b/Source/Android/app/src/main/res/values/strings.xml
index 8d1f9db297..aacc57a3be 100644
--- a/Source/Android/app/src/main/res/values/strings.xml
+++ b/Source/Android/app/src/main/res/values/strings.xml
@@ -412,6 +412,8 @@
<string name="debug_large_entry_points_map">Disable Large Entry Points Map</string>
<string name="debug_jit_profiling_header">Jit Profiling</string>
<string name="debug_jit_enable_block_profiling">Enable Jit Block Profiling</string>
+ <string name="debug_jit_wipe_block_profiling_data">Wipe Jit Block Profiling Data</string>
+ <string name="debug_jit_wipe_block_profiling_data_alert">Re-initialize JIT block profiling data?</string>
<string name="debug_jit_write_block_log_dump">Write Jit Block Log Dump</string>
<string name="debug_jit_header">Jit</string>
<string name="debug_jitoff">Jit Disabled</string>
diff --git a/Source/Android/jni/MainAndroid.cpp b/Source/Android/jni/MainAndroid.cpp
index 270dad9ed3..f0a74986f6 100644
--- a/Source/Android/jni/MainAndroid.cpp
+++ b/Source/Android/jni/MainAndroid.cpp
@@ -410,6 +410,22 @@ JNIEXPORT jint JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetMaxLogLev
return static_cast<jint>(Common::Log::MAX_LOGLEVEL);
}
+JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_WipeJitBlockProfilingData(
+ JNIEnv* env, jclass native_library_class)
+{
+ HostThreadLock guard;
+ auto& system = Core::System::GetInstance();
+ auto& jit_interface = system.GetJitInterface();
+ const Core::CPUThreadGuard cpu_guard(system);
+ if (jit_interface.GetCore() == nullptr)
+ {
+ env->CallStaticVoidMethod(native_library_class, IDCache::GetDisplayToastMsg(),
+ ToJString(env, Common::GetStringT("JIT is not active")), JNI_FALSE);
+ return;
+ }
+ jit_interface.WipeBlockProfilingData(cpu_guard);
+}
+
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_WriteJitBlockLogDump(
JNIEnv* env, jclass native_library_class)
{