diff options
| author | Ian Elliott <ian@lunarg.com> | 2015-08-07 14:11:14 -0600 |
|---|---|---|
| committer | Ian Elliott <ian@lunarg.com> | 2015-08-11 16:55:28 -0600 |
| commit | c0d394ca93952952f4ea85ebf15744a475de3b98 (patch) | |
| tree | a31d776dbc2848e19940522952008c09083779eb /layers | |
| parent | 8528efff23b9880e3b4b29c77a14678fefd2adc6 (diff) | |
| download | usermoji-c0d394ca93952952f4ea85ebf15744a475de3b98.tar.xz | |
layers: mem_tracker: Change to new WSI query functions.
Diffstat (limited to 'layers')
| -rw-r--r-- | layers/mem_tracker.cpp | 33 | ||||
| -rw-r--r-- | layers/mem_tracker.h | 2 | ||||
| -rw-r--r-- | layers/screenshot.cpp | 27 |
3 files changed, 28 insertions, 34 deletions
diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp index 40af60cb..510af127 100644 --- a/layers/mem_tracker.cpp +++ b/layers/mem_tracker.cpp @@ -2951,8 +2951,8 @@ VK_LAYER_EXPORT VkResult VKAPI vkDestroySwapChainWSI( if (pInfo->images.size() > 0) { for (auto it = pInfo->images.begin(); it != pInfo->images.end(); it++) { - clear_object_binding(device, it->image.handle, VK_OBJECT_TYPE_SWAP_CHAIN_WSI); - auto image_item = imageMap.find(it->image.handle); + clear_object_binding(device, it->handle, VK_OBJECT_TYPE_SWAP_CHAIN_WSI); + auto image_item = imageMap.find(it->handle); if (image_item != imageMap.end()) imageMap.erase(image_item); } @@ -2964,35 +2964,34 @@ VK_LAYER_EXPORT VkResult VKAPI vkDestroySwapChainWSI( return get_dispatch_table(mem_tracker_device_table_map, device)->DestroySwapChainWSI(device, swapChain); } -VK_LAYER_EXPORT VkResult VKAPI vkGetSwapChainInfoWSI( +VK_LAYER_EXPORT VkResult VKAPI vkGetSwapChainImagesWSI( VkDevice device, VkSwapChainWSI swapChain, - VkSwapChainInfoTypeWSI infoType, - size_t *pDataSize, - void *pData) + uint32_t* pCount, + VkImage* pSwapChainImages) { - VkResult result = get_dispatch_table(mem_tracker_device_table_map, device)->GetSwapChainInfoWSI(device, swapChain, infoType, pDataSize, pData); + VkResult result = get_dispatch_table(mem_tracker_device_table_map, device)->GetSwapChainImagesWSI(device, swapChain, pCount, pSwapChainImages); - if (infoType == VK_SWAP_CHAIN_INFO_TYPE_IMAGES_WSI && result == VK_SUCCESS && pData != NULL) { - const size_t count = *pDataSize / sizeof(VkSwapChainImagePropertiesWSI); + if (result == VK_SUCCESS && pSwapChainImages != NULL) { + const size_t count = *pCount; MT_SWAP_CHAIN_INFO *pInfo = swapChainMap[swapChain.handle]; if (pInfo->images.empty()) { pInfo->images.resize(count); - memcpy(&pInfo->images[0], pData, sizeof(pInfo->images[0]) * count); + memcpy(&pInfo->images[0], pSwapChainImages, sizeof(pInfo->images[0]) * count); if (pInfo->images.size() > 0) { - for (std::vector<VkSwapChainImagePropertiesWSI>::const_iterator it = pInfo->images.begin(); + for (std::vector<VkImage>::const_iterator it = pInfo->images.begin(); it != pInfo->images.end(); it++) { // Add image object binding, then insert the new Mem Object and then bind it to created image - add_object_create_info(it->image.handle, VK_OBJECT_TYPE_SWAP_CHAIN_WSI, &pInfo->createInfo); + add_object_create_info(it->handle, VK_OBJECT_TYPE_SWAP_CHAIN_WSI, &pInfo->createInfo); } } } else { - const size_t count = *pDataSize / sizeof(VkSwapChainImagePropertiesWSI); + const size_t count = *pCount; MT_SWAP_CHAIN_INFO *pInfo = swapChainMap[swapChain.handle]; const bool mismatch = (pInfo->images.size() != count || - memcmp(&pInfo->images[0], pData, sizeof(pInfo->images[0]) * count)); + memcmp(&pInfo->images[0], pSwapChainImages, sizeof(pInfo->images[0]) * count)); if (mismatch) { // TODO : Want swapChain to be srcObj here @@ -3191,14 +3190,12 @@ VK_LAYER_EXPORT PFN_vkVoidFunction VKAPI vkGetDeviceProcAddr( layer_data *my_device_data = get_my_data_ptr(get_dispatch_key(dev), layer_data_map); if (my_device_data->wsi_enabled) { -// if (!strcmp(funcName, "vkGetSurfaceInfoWSI")) -// return (PFN_vkVoidFunction) vkGetSurfaceInfoWSI; if (!strcmp(funcName, "vkCreateSwapChainWSI")) return (PFN_vkVoidFunction) vkCreateSwapChainWSI; if (!strcmp(funcName, "vkDestroySwapChainWSI")) return (PFN_vkVoidFunction) vkDestroySwapChainWSI; - if (!strcmp(funcName, "vkGetSwapChainInfoWSI")) - return (PFN_vkVoidFunction) vkGetSwapChainInfoWSI; + if (!strcmp(funcName, "vkGetSwapChainImagesWSI")) + return (PFN_vkVoidFunction) vkGetSwapChainImagesWSI; // if (!strcmp(funcName, "vkAcquireNextImageWSI")) // return (PFN_vkVoidFunction) vkAcquireNextImageWSI; // if (!strcmp(funcName, "vkQueuePresentWSI")) diff --git a/layers/mem_tracker.h b/layers/mem_tracker.h index 9d29dcf2..31e728a5 100644 --- a/layers/mem_tracker.h +++ b/layers/mem_tracker.h @@ -140,7 +140,7 @@ struct MT_QUEUE_INFO { struct MT_SWAP_CHAIN_INFO { VkSwapChainCreateInfoWSI createInfo; - std::vector<VkSwapChainImagePropertiesWSI> images; + std::vector<VkImage> images; }; #ifdef __cplusplus diff --git a/layers/screenshot.cpp b/layers/screenshot.cpp index 7f8ce4a1..a9313bb7 100644 --- a/layers/screenshot.cpp +++ b/layers/screenshot.cpp @@ -426,14 +426,13 @@ VK_LAYER_EXPORT VkResult VKAPI vkCreateSwapChainWSI( return result; } -VK_LAYER_EXPORT VkResult VKAPI vkGetSwapChainInfoWSI( +VK_LAYER_EXPORT VkResult VKAPI vkGetSwapChainImagesWSI( VkDevice device, VkSwapChainWSI swapChain, - VkSwapChainInfoTypeWSI infoType, - size_t *pDataSize, - void *pData) + uint32_t* pCount, + VkImage* pSwapChainImages) { - VkResult result = get_dispatch_table(screenshot_device_table_map, device)->GetSwapChainInfoWSI(device, swapChain, infoType, pDataSize, pData); + VkResult result = get_dispatch_table(screenshot_device_table_map, device)->GetSwapChainImagesWSI(device, swapChain, pCount, pSwapChainImages); loader_platform_thread_lock_mutex(&globalLock); if (screenshotEnvQueried && screenshotFrames.empty()) { @@ -443,20 +442,19 @@ VK_LAYER_EXPORT VkResult VKAPI vkGetSwapChainInfoWSI( } if (result == VK_SUCCESS && - pData && + pSwapChainImages && !swapchainMap.empty() && swapchainMap.find(swapChain.handle) != swapchainMap.end()) - { - VkSwapChainImagePropertiesWSI *swapChainImageInfo = (VkSwapChainImagePropertiesWSI *)pData; + { int i; - for (i=0; i<*pDataSize/sizeof(VkSwapChainImagePropertiesWSI); i++,swapChainImageInfo++) + for (i=0; i<*pCount; i++) { // Create a mapping for an image to a device, image extent, and format ImageMapStruct *imageMapElem = new ImageMapStruct; imageMapElem->device = swapchainMap[swapChain.handle]->device; imageMapElem->imageExtent = swapchainMap[swapChain.handle]->imageExtent; imageMapElem->format = swapchainMap[swapChain.handle]->format; - imageMap.insert(make_pair(swapChainImageInfo->image.handle, imageMapElem)); + imageMap.insert(make_pair(pSwapChainImages[i].handle, imageMapElem)); } // Add list of images to swapchain to image map @@ -465,10 +463,9 @@ VK_LAYER_EXPORT VkResult VKAPI vkGetSwapChainInfoWSI( { VkImage *imageList = new VkImage[i]; swapchainMapElem->imageList = imageList; - VkSwapChainImagePropertiesWSI *swapChainImageInfo = (VkSwapChainImagePropertiesWSI *)pData; - for (int j=0; j<i; j++,swapChainImageInfo++) + for (int j=0; j<i; j++) { - swapchainMapElem->imageList[j] = swapChainImageInfo->image.handle; + swapchainMapElem->imageList[j] = pSwapChainImages[j].handle; } } @@ -590,8 +587,8 @@ VK_LAYER_EXPORT PFN_vkVoidFunction VKAPI vkGetDeviceProcAddr( { if (!strcmp(funcName, "vkCreateSwapChainWSI")) return (PFN_vkVoidFunction) vkCreateSwapChainWSI; - if (!strcmp(funcName, "vkGetSwapChainInfoWSI")) - return (PFN_vkVoidFunction) vkGetSwapChainInfoWSI; + if (!strcmp(funcName, "vkGetSwapChainImagesWSI")) + return (PFN_vkVoidFunction) vkGetSwapChainImagesWSI; if (!strcmp(funcName, "vkQueuePresentWSI")) return (PFN_vkVoidFunction) vkQueuePresentWSI; } |
