aboutsummaryrefslogtreecommitdiff
path: root/layers/core_validation.cpp
diff options
context:
space:
mode:
authorTobin Ehlis <tobine@google.com>2016-12-15 11:34:33 -0700
committerTobin Ehlis <tobine@google.com>2016-12-19 14:31:33 -0700
commit7db2b0680eb1fede7cbe19e5ecdc6d735282fec8 (patch)
tree1ade10aed00e485640e128ed6886b25e69483f8b /layers/core_validation.cpp
parent840a6eed81ed80210e9be8776e31f9b46c579afc (diff)
downloadusermoji-7db2b0680eb1fede7cbe19e5ecdc6d735282fec8.tar.xz
layers:Refactor GetDeviceQueue
Move the state update for GetDeviceQueue into Post* function.
Diffstat (limited to 'layers/core_validation.cpp')
-rw-r--r--layers/core_validation.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp
index b8b9f50d..e83b9b50 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<std::mutex> 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) {