layers: Store instance data in UO::layer_data rather than gpu handle
diff --git a/layers/unique_objects.cpp b/layers/unique_objects.cpp
index 03d240f..6cb9a1c 100644
--- a/layers/unique_objects.cpp
+++ b/layers/unique_objects.cpp
@@ -206,7 +206,7 @@
createDeviceRegisterExtensions(pCreateInfo, *pDevice);
// Set gpu for this device in order to get at any objects mapped at instance level
- my_device_data->gpu = gpu;
+ my_device_data->instance_data = my_instance_data;
return result;
}
@@ -462,7 +462,7 @@
local_pCreateInfo->oldSwapchain =
(VkSwapchainKHR)my_map_data->unique_id_mapping[reinterpret_cast<const uint64_t &>(pCreateInfo->oldSwapchain)];
// Need to pull surface mapping from the instance-level map
- instance_layer_data *instance_data = GetLayerDataPtr(get_dispatch_key(my_map_data->gpu), instance_layer_data_map);
+ instance_layer_data *instance_data = my_map_data->instance_data;
local_pCreateInfo->surface =
(VkSurfaceKHR)instance_data->unique_id_mapping[reinterpret_cast<const uint64_t &>(pCreateInfo->surface)];
}
@@ -490,7 +490,7 @@
std::lock_guard<std::mutex> lock(global_lock);
if (pCreateInfos) {
// Need to pull surface mapping from the instance-level map
- instance_layer_data *instance_data = GetLayerDataPtr(get_dispatch_key(dev_data->gpu), instance_layer_data_map);
+ instance_layer_data *instance_data = dev_data->instance_data;
local_pCreateInfos = new safe_VkSwapchainCreateInfoKHR[swapchainCount];
for (uint32_t i = 0; i < swapchainCount; ++i) {
local_pCreateInfos[i].initialize(&pCreateInfos[i]);
diff --git a/layers/unique_objects.h b/layers/unique_objects.h
index e8b16b4..33616aa 100644
--- a/layers/unique_objects.h
+++ b/layers/unique_objects.h
@@ -61,7 +61,7 @@
};
struct layer_data {
- VkInstance instance;
+ instance_layer_data *instance_data;
debug_report_data *report_data;
VkLayerDispatchTable dispatch_table = {};