diff options
author | Chia-I Wu <olv@google.com> | 2016-05-05 11:57:23 +0800 |
---|---|---|
committer | Chia-I Wu <olv@google.com> | 2016-05-06 09:46:03 +0800 |
commit | a4a0555a168efd2e93f6d8b63de7cdc7aeb61a11 (patch) | |
tree | f73368f95d9f01cd08bb03bc42bbb8afb7a2aa3d /vulkan/libvulkan/api.cpp | |
parent | 5beb2ac5e0b676e55be9f0b768ba3fd3697f3216 (diff) |
vulkan: use Logger in vulkan::api
Use debug report logger for actionable application errors (but not other
errors).
Bug: 28120066
Change-Id: Ia9a3b568e415555bf42c8a76d1df6279835a710c
Diffstat (limited to 'vulkan/libvulkan/api.cpp')
-rw-r--r-- | vulkan/libvulkan/api.cpp | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/vulkan/libvulkan/api.cpp b/vulkan/libvulkan/api.cpp index 28b172d4fe..805366820f 100644 --- a/vulkan/libvulkan/api.cpp +++ b/vulkan/libvulkan/api.cpp @@ -394,7 +394,9 @@ class LayerChain { 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 @@ class LayerChain { void* user_data); const bool is_instance_; + const driver::DebugReportLogger& logger_; const VkAllocationCallbacks& allocator_; OverrideLayerNames override_layers_; @@ -476,8 +479,11 @@ class LayerChain { 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 @@ VkResult LayerChain::ActivateLayers(VkPhysicalDevice physical_dev, } 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 @@ LayerChain::ActiveLayer* LayerChain::AllocateLayerArray(uint32_t count) const { 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 @@ VkResult LayerChain::ValidateExtensions(const char* const* extension_names, 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 @@ VkResult LayerChain::ValidateExtensions(VkPhysicalDevice physical_dev, 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 @@ VkBool32 LayerChain::DebugReportCallback(VkDebugReportFlagsEXT flags, 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 @@ VkResult LayerChain::CreateDevice(VkPhysicalDevice physical_dev, 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, |