From 7db2b0680eb1fede7cbe19e5ecdc6d735282fec8 Mon Sep 17 00:00:00 2001 From: Tobin Ehlis Date: Thu, 15 Dec 2016 11:34:33 -0700 Subject: [PATCH] layers:Refactor GetDeviceQueue Move the state update for GetDeviceQueue into Post* function. --- layers/core_validation.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index b8b9f50..e83b9b5 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -5259,20 +5259,24 @@ VKAPI_ATTR VkResult VKAPI_CALL GetFenceStatus(VkDevice device, VkFence fence) { return result; } +static void PostCallRecordGetDeviceQueue(layer_data *dev_data, uint32_t q_family_index, VkQueue queue) { + // Add queue to tracking set only if it is new + auto result = dev_data->queues.emplace(queue); + if (result.second == true) { + QUEUE_NODE *queue_state = &dev_data->queueMap[queue]; + queue_state->queue = queue; + queue_state->queueFamilyIndex = q_family_index; + queue_state->seq = 0; + } +} + VKAPI_ATTR void VKAPI_CALL GetDeviceQueue(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue *pQueue) { layer_data *dev_data = get_my_data_ptr(get_dispatch_key(device), layer_data_map); dev_data->dispatch_table.GetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue); std::lock_guard lock(global_lock); - // Add queue to tracking set only if it is new - auto result = dev_data->queues.emplace(*pQueue); - if (result.second == true) { - QUEUE_NODE *pQNode = &dev_data->queueMap[*pQueue]; - pQNode->queue = *pQueue; - pQNode->queueFamilyIndex = queueFamilyIndex; - pQNode->seq = 0; - } + PostCallRecordGetDeviceQueue(dev_data, queueFamilyIndex, *pQueue); } static bool PreCallValidateQueueWaitIdle(layer_data *dev_data, VkQueue queue, QUEUE_NODE **queue_state) { -- 2.7.4