From 6d1155878d2461881f25caba4c5c2540ad18ad24 Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Fri, 21 Jul 2017 13:23:13 -0600 Subject: layers: Move GetSwaphchainImages func in OT Special case function must avoid code generation. Change-Id: I7c03cb2c0b4053f3d2b0579d532f1da82be80bd4 --- layers/object_tracker_utils.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'layers/object_tracker_utils.cpp') diff --git a/layers/object_tracker_utils.cpp b/layers/object_tracker_utils.cpp index f7ac60f6..125ed55d 100644 --- a/layers/object_tracker_utils.cpp +++ b/layers/object_tracker_utils.cpp @@ -614,6 +614,27 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDevice(VkPhysicalDevice physicalDevice, con return result; } +VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t *pSwapchainImageCount, + VkImage *pSwapchainImages) { + bool skip = VK_FALSE; + std::unique_lock lock(global_lock); + skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, VALIDATION_ERROR_30805601, VALIDATION_ERROR_UNDEFINED); + lock.unlock(); + if (skip) { + return VK_ERROR_VALIDATION_FAILED_EXT; + } + VkResult result = get_dispatch_table(ot_device_table_map, device) + ->GetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages); + if (pSwapchainImages != NULL) { + lock.lock(); + for (uint32_t i = 0; i < *pSwapchainImageCount; i++) { + CreateSwapchainImageObject(device, pSwapchainImages[i], swapchain); + } + lock.unlock(); + } + return result; +} + VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, uint32_t *pQueueFamilyPropertyCount, VkQueueFamilyProperties *pQueueFamilyProperties) { -- cgit v1.2.3