MCPcopy Create free account
hub / github.com/LunarG/VulkanTools / GetDeviceQueue

Function GetDeviceQueue

layersvt/screenshot.cpp:1429–1452  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1427}
1428
1429VKAPI_ATTR void VKAPI_CALL GetDeviceQueue(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue *pQueue) {
1430 DispatchMapStruct *dispMap = get_dispatch_info(device);
1431 assert(dispMap);
1432 VkuDeviceDispatchTable *pDisp = dispMap->device_dispatch_table;
1433 pDisp->GetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue);
1434
1435 // Save the device queue in a map if we are taking screenshots.
1436 std::lock_guard<std::mutex> lg(globalLock);
1437
1438 // Add this queue to deviceMap[device].queues, and queueFamilyIndex to deviceMap[device].queueIndexMap
1439 if (deviceMap.find(device) != deviceMap.end()) {
1440 deviceMap[device]->queues.emplace(*pQueue);
1441
1442 if (deviceMap[device]->queueIndexMap.find(*pQueue) != deviceMap[device]->queueIndexMap.end())
1443 deviceMap[device]->queueIndexMap.erase(*pQueue);
1444 deviceMap[device]->queueIndexMap.emplace(*pQueue, queueFamilyIndex);
1445 }
1446
1447 // queues are dispatchable objects.
1448 // Create dispatchMap entry with this queue as its key.
1449 // Copy the device dispatch table to the new dispatch table.
1450 VkDevice que = static_cast<VkDevice>(static_cast<void *>(*pQueue));
1451 dispatchMap[que] = dispMap;
1452}
1453
1454VKAPI_ATTR void VKAPI_CALL GetDeviceQueue2(VkDevice device, const VkDeviceQueueInfo2 *pQueueInfo, VkQueue *pQueue) {
1455 if (pQueueInfo) GetDeviceQueue(device, pQueueInfo->queueFamilyIndex, pQueueInfo->queueIndex, pQueue);

Callers 1

GetDeviceQueue2Function · 0.85

Calls 1

get_dispatch_infoFunction · 0.85

Tested by

no test coverage detected