aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCourtney Goeltzenleuchter <courtney@LunarG.com>2015-07-05 11:17:01 -0600
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2015-07-07 17:57:48 -0600
commit88f98ede04d864fe061ab8120e91fa30f6a13d41 (patch)
tree378d23b46fa1f36ce2a04f4b12fd09f15746b3d6
parent956a5de76f8ebe7d8fc07d664cbd6adfa74f7c54 (diff)
downloadusermoji-88f98ede04d864fe061ab8120e91fa30f6a13d41.tar.xz
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.
-rw-r--r--layers/mem_tracker.cpp31
1 files changed, 13 insertions, 18 deletions
diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp
index 4a074ccc..fd5f1ae9 100644
--- a/layers/mem_tracker.cpp
+++ b/layers/mem_tracker.cpp
@@ -44,18 +44,15 @@ using namespace std;
#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 @@ VkResult VKAPI vkCreateInstance(
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 @@ VK_LAYER_EXPORT VkResult VKAPI vkDestroyDevice(
#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 @@ VK_LAYER_EXPORT void* VKAPI vkGetDeviceProcAddr(
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 @@ VK_LAYER_EXPORT void* VKAPI vkGetDeviceProcAddr(
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(