vulkan: use Logger in vulkan::api

Use debug report logger for actionable application errors (but not other
errors).

Bug: 28120066
Change-Id: Ia9a3b568e415555bf42c8a76d1df6279835a710c
diff --git a/vulkan/libvulkan/api.cpp b/vulkan/libvulkan/api.cpp
index 28b172d..8053668 100644
--- a/vulkan/libvulkan/api.cpp
+++ b/vulkan/libvulkan/api.cpp
@@ -394,7 +394,9 @@
                                               uint32_t& count);
 
    private:
-    LayerChain(bool is_instance, const VkAllocationCallbacks& allocator);
+    LayerChain(bool is_instance,
+               const driver::DebugReportLogger& logger,
+               const VkAllocationCallbacks& allocator);
     ~LayerChain();
 
     VkResult ActivateLayers(const char* const* layer_names,
@@ -455,6 +457,7 @@
                         void* user_data);
 
     const bool is_instance_;
+    const driver::DebugReportLogger& logger_;
     const VkAllocationCallbacks& allocator_;
 
     OverrideLayerNames override_layers_;
@@ -476,8 +479,11 @@
     std::bitset<driver::ProcHook::EXTENSION_COUNT> enabled_extensions_;
 };
 
-LayerChain::LayerChain(bool is_instance, const VkAllocationCallbacks& allocator)
+LayerChain::LayerChain(bool is_instance,
+                       const driver::DebugReportLogger& logger,
+                       const VkAllocationCallbacks& allocator)
     : is_instance_(is_instance),
+      logger_(logger),
       allocator_(allocator),
       override_layers_(is_instance, allocator),
       override_extensions_(is_instance, allocator),
@@ -562,12 +568,9 @@
         }
 
         if (!exact_match) {
-            ALOGW("Device layers");
-            for (uint32_t i = 0; i < layer_count; i++)
-                ALOGW("  %s", layer_names[i]);
-            ALOGW(
-                "disagree with instance layers and are overridden by "
-                "instance layers");
+            logger_.Warn(physical_dev,
+                         "Device layers disagree with instance layers and are "
+                         "overridden by instance layers");
         }
     }
 
@@ -617,7 +620,7 @@
 VkResult LayerChain::LoadLayer(ActiveLayer& layer, const char* name) {
     const Layer* l = FindLayer(name);
     if (!l) {
-        ALOGW("Failed to find layer %s", name);
+        logger_.Err(VK_NULL_HANDLE, "Failed to find layer %s", name);
         return VK_ERROR_LAYER_NOT_PRESENT;
     }
 
@@ -882,7 +885,8 @@
     for (uint32_t i = 0; i < extension_count; i++) {
         const char* name = extension_names[i];
         if (!IsLayerExtension(name) && !IsDriverExtension(name)) {
-            ALOGE("Failed to enable missing instance extension %s", name);
+            logger_.Err(VK_NULL_HANDLE,
+                        "Failed to enable missing instance extension %s", name);
             return VK_ERROR_EXTENSION_NOT_PRESENT;
         }
 
@@ -919,7 +923,8 @@
     for (uint32_t i = 0; i < extension_count; i++) {
         const char* name = extension_names[i];
         if (!IsLayerExtension(name) && !IsDriverExtension(name)) {
-            ALOGE("Failed to enable missing device extension %s", name);
+            logger_.Err(physical_dev,
+                        "Failed to enable missing device extension %s", name);
             return VK_ERROR_EXTENSION_NOT_PRESENT;
         }
 
@@ -1036,7 +1041,7 @@
 VkResult LayerChain::CreateInstance(const VkInstanceCreateInfo* create_info,
                                     const VkAllocationCallbacks* allocator,
                                     VkInstance* instance_out) {
-    LayerChain chain(true,
+    LayerChain chain(true, driver::DebugReportLogger(*create_info),
                      (allocator) ? *allocator : driver::GetDefaultAllocator());
 
     VkResult result = chain.ActivateLayers(create_info->ppEnabledLayerNames,
@@ -1061,9 +1066,9 @@
                                   const VkDeviceCreateInfo* create_info,
                                   const VkAllocationCallbacks* allocator,
                                   VkDevice* dev_out) {
-    LayerChain chain(false, (allocator)
-                                ? *allocator
-                                : driver::GetData(physical_dev).allocator);
+    LayerChain chain(
+        false, driver::Logger(physical_dev),
+        (allocator) ? *allocator : driver::GetData(physical_dev).allocator);
 
     VkResult result = chain.ActivateLayers(
         physical_dev, create_info->ppEnabledLayerNames,