aboutsummaryrefslogtreecommitdiff
path: root/layers
diff options
context:
space:
mode:
Diffstat (limited to 'layers')
-rw-r--r--layers/mem_tracker.cpp33
-rw-r--r--layers/mem_tracker.h2
-rw-r--r--layers/screenshot.cpp27
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;
}