diff --git a/src/android/app/src/main/jni/config.cpp b/src/android/app/src/main/jni/config.cpp
index 0e86dea9e..785133057 100644
--- a/src/android/app/src/main/jni/config.cpp
+++ b/src/android/app/src/main/jni/config.cpp
@@ -230,6 +230,10 @@ void Config::ReadValues() {
     Settings::values.renderer_force_max_clock =
         config->GetBoolean("Renderer", "force_max_clock", true);
 
+    // Enable asynchronous presentation by default on Android
+    Settings::values.async_presentation =
+        config->GetBoolean("Renderer", "async_presentation", true);
+
     // Audio
     ReadSetting("Audio", Settings::values.sink_id);
     ReadSetting("Audio", Settings::values.audio_output_device_id);
diff --git a/src/android/app/src/main/jni/default_ini.h b/src/android/app/src/main/jni/default_ini.h
index cbbe8e9de..d6bf458a6 100644
--- a/src/android/app/src/main/jni/default_ini.h
+++ b/src/android/app/src/main/jni/default_ini.h
@@ -247,6 +247,10 @@ cpuopt_unsafe_ignore_global_monitor =
 # 0: OpenGL (unsupported), 1 (default): Vulkan, 2: Null
 backend =
 
+# Whether to enable asynchronous presentation (Vulkan only)
+# 0: Off, 1 (default): On
+async_presentation =
+
 # Enable graphics API debugging mode.
 # 0 (default): Disabled, 1: Enabled
 force_max_clock =