diff --git a/DEPS b/DEPS index 6e43f2c3d43b3..01c63ccc0fea7 100644 --- a/DEPS +++ b/DEPS @@ -261,7 +261,7 @@ allowed_hosts = [ ] deps = { - 'src': 'https://github.com/flutter/buildroot.git' + '@' + '6b0243e97d94836767ea8b94a477d7d15ee3bb91', + 'src': 'https://github.com/flutter/buildroot.git' + '@' + 'b615dd6af4c2e95a388060151c7fd1e429e34d61', # Fuchsia compatibility # diff --git a/shell/platform/android/BUILD.gn b/shell/platform/android/BUILD.gn index 18562b0ae24c4..ec965a4c0a53f 100644 --- a/shell/platform/android/BUILD.gn +++ b/shell/platform/android/BUILD.gn @@ -490,14 +490,19 @@ action("android_jar") { ":pom_libflutter", ] - if (enable_vulkan_validation_layers) { + if (enable_vulkan_validation_layers || + (impeller_enable_vulkan && current_cpu == "arm64" && + flutter_runtime_mode == "debug")) { assert(impeller_enable_vulkan) - deps += [ "//third_party/vulkan_validation_layers" ] + apilevel26_toolchain = "//build/toolchain/android:clang_arm64_apilevel26" + validation_layer_target = + "//third_party/vulkan_validation_layers($apilevel26_toolchain)" + validation_layer_out_dir = + get_label_info(validation_layer_target, "root_out_dir") + deps += [ validation_layer_target ] args += [ "--native_lib", - rebase_path("libVkLayer_khronos_validation.so", - root_build_dir, - root_build_dir), + rebase_path("$validation_layer_out_dir/libVkLayer_khronos_validation.so"), ] if (current_cpu == "arm64") { args += [ diff --git a/shell/platform/android/io/flutter/embedding/engine/loader/FlutterLoader.java b/shell/platform/android/io/flutter/embedding/engine/loader/FlutterLoader.java index 8265cd46a8858..01f940b95b7c3 100644 --- a/shell/platform/android/io/flutter/embedding/engine/loader/FlutterLoader.java +++ b/shell/platform/android/io/flutter/embedding/engine/loader/FlutterLoader.java @@ -214,6 +214,13 @@ public InitResult call() { } } + private static boolean areValidationLayersOnByDefault() { + if (BuildConfig.DEBUG && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + return Build.SUPPORTED_ABIS[0].equals("arm64-v8a"); + } + return false; + } + /** * Blocks until initialization of the native system has completed. * @@ -324,7 +331,8 @@ public void ensureInitializationComplete( if (metaData.getBoolean(ENABLE_IMPELLER_META_DATA_KEY, false)) { shellArgs.add("--enable-impeller"); } - if (metaData.getBoolean(ENABLE_VULKAN_VALIDATION_META_DATA_KEY, false)) { + if (metaData.getBoolean( + ENABLE_VULKAN_VALIDATION_META_DATA_KEY, areValidationLayersOnByDefault())) { shellArgs.add("--enable-vulkan-validation"); } String backend = metaData.getString(IMPELLER_BACKEND_META_DATA_KEY);