diff --git a/impeller/renderer/backend/vulkan/context_vk.cc b/impeller/renderer/backend/vulkan/context_vk.cc index 56e06ff165cae..54332291e670d 100644 --- a/impeller/renderer/backend/vulkan/context_vk.cc +++ b/impeller/renderer/backend/vulkan/context_vk.cc @@ -185,28 +185,21 @@ void ContextVK::Setup(Settings settings) { application_info.setPEngineName("Impeller"); application_info.setPApplicationName("Impeller"); + vk::StructureChain + instance_chain; + + if (!caps->AreValidationsEnabled()) { + instance_chain.unlink(); + } + std::vector enabled_validations = { vk::ValidationFeatureEnableEXT::eSynchronizationValidation, }; - vk::ValidationFeaturesEXT validation; + auto validation = instance_chain.get(); validation.setEnabledValidationFeatures(enabled_validations); - vk::InstanceCreateInfo instance_info; - if (caps->AreValidationsEnabled()) { - std::stringstream ss; - ss << "Enabling validation layers, features: ["; - for (const auto& validation : enabled_validations) { - ss << vk::to_string(validation) << " "; - } - ss << "]"; - FML_LOG(ERROR) << ss.str(); -#if !defined(IMPELLER_ENABLE_VULKAN_VALIDATION_LAYERS) && FML_OS_ANDROID - FML_LOG(ERROR) << "Vulkan validation layers turned on but the gn argument " - "`--enable-vulkan-validation-layers` is missing."; -#endif - instance_info.pNext = &validation; - } + auto instance_info = instance_chain.get(); instance_info.setPEnabledLayerNames(enabled_layers_c); instance_info.setPEnabledExtensionNames(enabled_extensions_c); instance_info.setPApplicationInfo(&application_info);