aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCourtney Goeltzenleuchter <courtney@LunarG.com>2015-07-13 18:41:17 -0600
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2015-07-17 10:05:23 -0600
commit73376b8f94596d47ab267a8e135853131e92bdfd (patch)
tree6dea272466f35cad2992cb385ed5f2ac0faa0450
parent0fc31728ea1af3275a1424fbc65430ca1d1cc34a (diff)
downloadusermoji-73376b8f94596d47ab267a8e135853131e92bdfd.tar.xz
mem_tracker: Use device object for dispatch tables
Need to use the device object to lookup the right dispatch table now that WSI objects are non-dispatchable.
-rw-r--r--layers/mem_tracker.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp
index 1ae5bde6..32f77127 100644
--- a/layers/mem_tracker.cpp
+++ b/layers/mem_tracker.cpp
@@ -2884,7 +2884,9 @@ VK_LAYER_EXPORT VkResult VKAPI vkCreateSwapChainWSI(
if (VK_SUCCESS == result) {
loader_platform_thread_lock_mutex(&globalLock);
- swapChainMap[pSwapChain->handle]->createInfo = *pCreateInfo;
+ MT_SWAP_CHAIN_INFO *new_rec = new MT_SWAP_CHAIN_INFO;
+ new_rec->createInfo = *pCreateInfo;
+ swapChainMap[pSwapChain->handle]= new_rec;
loader_platform_thread_unlock_mutex(&globalLock);
}
@@ -2901,7 +2903,7 @@ 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((void*) swapChain.handle, it->image.handle, VK_OBJECT_TYPE_SWAP_CHAIN_WSI);
+ clear_object_binding(device, it->image.handle, VK_OBJECT_TYPE_SWAP_CHAIN_WSI);
auto image_item = imageMap.find(it->image.handle);
if (image_item != imageMap.end())
imageMap.erase(image_item);
@@ -2911,7 +2913,7 @@ VK_LAYER_EXPORT VkResult VKAPI vkDestroySwapChainWSI(
swapChainMap.erase(swapChain.handle);
}
loader_platform_thread_unlock_mutex(&globalLock);
- return get_dispatch_table(mem_tracker_device_table_map, (void*) swapChain.handle)->DestroySwapChainWSI(device, swapChain);
+ return get_dispatch_table(mem_tracker_device_table_map, device)->DestroySwapChainWSI(device, swapChain);
}
VK_LAYER_EXPORT VkResult VKAPI vkGetSwapChainInfoWSI(
@@ -2921,7 +2923,7 @@ VK_LAYER_EXPORT VkResult VKAPI vkGetSwapChainInfoWSI(
size_t *pDataSize,
void *pData)
{
- VkResult result = get_dispatch_table(mem_tracker_device_table_map, (void*) swapChain.handle)->GetSwapChainInfoWSI(device, swapChain, infoType, pDataSize, pData);
+ VkResult result = get_dispatch_table(mem_tracker_device_table_map, device)->GetSwapChainInfoWSI(device, swapChain, infoType, pDataSize, pData);
if (infoType == VK_SWAP_CHAIN_INFO_TYPE_IMAGES_WSI && result == VK_SUCCESS && pData != NULL) {
const size_t count = *pDataSize / sizeof(VkSwapChainImagePropertiesWSI);
@@ -2946,7 +2948,7 @@ VK_LAYER_EXPORT VkResult VKAPI vkGetSwapChainInfoWSI(
if (mismatch) {
// TODO : Want swapChain to be srcObj here
- log_msg(mdd((void*) swapChain.handle), VK_DBG_REPORT_WARN_BIT, VK_OBJECT_TYPE_SWAP_CHAIN_WSI, 0, 0, MEMTRACK_NONE, "SWAP_CHAIN",
+ log_msg(mdd(device), VK_DBG_REPORT_WARN_BIT, VK_OBJECT_TYPE_SWAP_CHAIN_WSI, 0, 0, MEMTRACK_NONE, "SWAP_CHAIN",
"vkGetSwapChainInfoWSI(%p, VK_SWAP_CHAIN_INFO_TYPE_PERSISTENT_IMAGES_WSI) returned mismatching data", swapChain);
}
}