mem_tracker: Move wsi data to layer_data
wsi_lunarg_enabled flag was stored in a separate
layer table. Doesn't need to be, move it to the
device layer table.
diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp
index 4a074cc..fd5f1ae 100644
--- a/layers/mem_tracker.cpp
+++ b/layers/mem_tracker.cpp
@@ -44,18 +44,15 @@
#include "vk_layer_table.h"
#include "vk_layer_data.h"
#include "vk_layer_logging.h"
- static LOADER_PLATFORM_THREAD_ONCE_DECLARATION(g_initOnce);
+static LOADER_PLATFORM_THREAD_ONCE_DECLARATION(g_initOnce);
typedef struct _layer_data {
debug_report_data *report_data;
// TODO: put instance data here
VkDbgMsgCallback logging_callback;
+ bool wsi_lunarg_enabled;
} layer_data;
-struct devExts {
- bool wsi_lunarg_enabled;
-};
-static std::unordered_map<void *, struct devExts> deviceExtMap;
static std::unordered_map<void *, layer_data *> layer_data_map;
static device_table_map mem_tracker_device_table_map;
static instance_table_map mem_tracker_instance_table_map;
@@ -879,12 +876,12 @@
static void createDeviceRegisterExtensions(const VkDeviceCreateInfo* pCreateInfo, VkDevice device)
{
- uint32_t i, ext_idx;
- VkLayerDispatchTable *pDisp = get_dispatch_table(mem_tracker_device_table_map, device);
- deviceExtMap[pDisp].wsi_lunarg_enabled = false;
- for (i = 0; i < pCreateInfo->extensionCount; i++) {
+ uint32_t i;
+ layer_data *my_device_data = get_my_data_ptr(get_dispatch_key(device), layer_data_map);
+ my_device_data->wsi_lunarg_enabled = false;
+ for (uint32_t i = 0; i < pCreateInfo->extensionCount; i++) {
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_WSI_LUNARG_EXTENSION_NAME) == 0)
- deviceExtMap[pDisp].wsi_lunarg_enabled = true;
+ my_device_data->wsi_lunarg_enabled = true;
}
}
@@ -945,7 +942,6 @@
#endif
VkLayerDispatchTable *pDisp = get_dispatch_table(mem_tracker_device_table_map, device);
VkResult result = pDisp->DestroyDevice(device);
- deviceExtMap.erase(pDisp);
mem_tracker_device_table_map.erase(key);
assert(mem_tracker_device_table_map.size() == 0 && "Should not have any instance mappings hanging around");
@@ -2265,8 +2261,8 @@
if (!strcmp(funcName, "vkGetDeviceQueue"))
return (void*) vkGetDeviceQueue;
- VkLayerDispatchTable *pDisp = get_dispatch_table(mem_tracker_device_table_map, dev);
- if (deviceExtMap.size() == 0 || deviceExtMap[pDisp].wsi_lunarg_enabled)
+ layer_data *my_device_data = get_my_data_ptr(get_dispatch_key(dev), layer_data_map);
+ if (my_device_data->wsi_lunarg_enabled)
{
if (!strcmp(funcName, "vkCreateSwapChainWSI"))
return (void*) vkCreateSwapChainWSI;
@@ -2276,11 +2272,10 @@
return (void*) vkGetSwapChainInfoWSI;
}
- {
- if (pDisp->GetDeviceProcAddr == NULL)
- return NULL;
- return pDisp->GetDeviceProcAddr(dev, funcName);
- }
+ VkLayerDispatchTable *pDisp = get_dispatch_table(mem_tracker_device_table_map, dev);
+ if (pDisp->GetDeviceProcAddr == NULL)
+ return NULL;
+ return pDisp->GetDeviceProcAddr(dev, funcName);
}
VK_LAYER_EXPORT void* VKAPI vkGetInstanceProcAddr(