From fdd0c2ad1323babd4eeaa7318d826be1eb90643a Mon Sep 17 00:00:00 2001 From: Yiwei Zhang Date: Wed, 30 Jan 2019 20:16:37 -0800 Subject: Vulkan: add atrace support Test: build, flash and take traces Change-Id: Idab6d748519c4f5bc6aac3d51efd26cad28c94ec --- vulkan/libvulkan/api.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'vulkan/libvulkan/api.cpp') diff --git a/vulkan/libvulkan/api.cpp b/vulkan/libvulkan/api.cpp index 673a066182..71048db920 100644 --- a/vulkan/libvulkan/api.cpp +++ b/vulkan/libvulkan/api.cpp @@ -21,6 +21,8 @@ // There are a few of them requiring manual code for things such as layer // discovery or chaining. They call into functions defined in this file. +#define ATRACE_TAG ATRACE_TAG_GRAPHICS + #include #include @@ -32,6 +34,7 @@ #include #include #include +#include #include #include @@ -1176,6 +1179,8 @@ bool EnsureInitialized() { VkResult CreateInstance(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance) { + ATRACE_CALL(); + if (!EnsureInitialized()) return VK_ERROR_INITIALIZATION_FAILED; @@ -1184,6 +1189,8 @@ VkResult CreateInstance(const VkInstanceCreateInfo* pCreateInfo, void DestroyInstance(VkInstance instance, const VkAllocationCallbacks* pAllocator) { + ATRACE_CALL(); + if (instance != VK_NULL_HANDLE) LayerChain::DestroyInstance(instance, pAllocator); } @@ -1192,17 +1199,23 @@ VkResult CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice) { + ATRACE_CALL(); + return LayerChain::CreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice); } void DestroyDevice(VkDevice device, const VkAllocationCallbacks* pAllocator) { + ATRACE_CALL(); + if (device != VK_NULL_HANDLE) LayerChain::DestroyDevice(device, pAllocator); } VkResult EnumerateInstanceLayerProperties(uint32_t* pPropertyCount, VkLayerProperties* pProperties) { + ATRACE_CALL(); + if (!EnsureInitialized()) return VK_ERROR_INITIALIZATION_FAILED; @@ -1225,6 +1238,8 @@ VkResult EnumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) { + ATRACE_CALL(); + if (!EnsureInitialized()) return VK_ERROR_INITIALIZATION_FAILED; @@ -1253,6 +1268,8 @@ VkResult EnumerateInstanceExtensionProperties( VkResult EnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties) { + ATRACE_CALL(); + uint32_t count; const LayerChain::ActiveLayer* layers = LayerChain::GetActiveLayers(physicalDevice, count); @@ -1275,6 +1292,8 @@ VkResult EnumerateDeviceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) { + ATRACE_CALL(); + if (pLayerName) { // EnumerateDeviceLayerProperties enumerates active layers for // backward compatibility. The extension query here should work for @@ -1302,6 +1321,8 @@ VkResult EnumerateDeviceExtensionProperties( } VkResult EnumerateInstanceVersion(uint32_t* pApiVersion) { + ATRACE_CALL(); + *pApiVersion = VK_API_VERSION_1_1; return VK_SUCCESS; } -- cgit v1.2.3-59-g8ed1b