aboutsummaryrefslogtreecommitdiff
path: root/layers/unique_objects.h
diff options
context:
space:
mode:
authorChris Forbes <chrisforbes@google.com>2017-05-02 16:26:23 -0700
committerChris Forbes <chrisf@ijw.co.nz>2017-05-03 11:38:06 -0700
commit04c739104d66020cebaf981a9bfa5d8ce622df45 (patch)
treed2fd02ee48d66baaf1e84eb1fa8cb4b0adcef59b /layers/unique_objects.h
parentdf6205fbe1cc7beae323dac2dea783d25f302327 (diff)
downloadusermoji-04c739104d66020cebaf981a9bfa5d8ce622df45.tar.xz
layers: UO: split device and instance data
Diffstat (limited to 'layers/unique_objects.h')
-rw-r--r--layers/unique_objects.h19
1 files changed, 16 insertions, 3 deletions
diff --git a/layers/unique_objects.h b/layers/unique_objects.h
index eebb01ef..76420a6c 100644
--- a/layers/unique_objects.h
+++ b/layers/unique_objects.h
@@ -41,13 +41,12 @@ struct TEMPLATE_STATE {
: desc_update_template(update_template), create_info(*pCreateInfo) {}
};
-struct layer_data {
+struct instance_layer_data {
VkInstance instance;
debug_report_data *report_data;
std::vector<VkDebugReportCallbackEXT> logging_callback;
- VkLayerDispatchTable *device_dispatch_table;
- VkLayerInstanceDispatchTable *instance_dispatch_table;
+ VkLayerInstanceDispatchTable *dispatch_table;
// The following are for keeping track of the temporary callbacks that can
// be used in vkCreateInstance and vkDestroyInstance:
@@ -55,6 +54,19 @@ struct layer_data {
VkDebugReportCallbackCreateInfoEXT *tmp_dbg_create_infos;
VkDebugReportCallbackEXT *tmp_callbacks;
+ bool wsi_enabled;
+ std::unordered_map<uint64_t, uint64_t> unique_id_mapping; // Map uniqueID to actual object handle
+ VkPhysicalDevice gpu;
+
+ instance_layer_data() : wsi_enabled(false), gpu(VK_NULL_HANDLE){};
+};
+
+struct layer_data {
+ VkInstance instance;
+
+ debug_report_data *report_data;
+ VkLayerDispatchTable *dispatch_table;
+
std::unordered_map<uint64_t, std::unique_ptr<TEMPLATE_STATE>> desc_template_map;
bool wsi_enabled;
@@ -76,6 +88,7 @@ struct instance_extension_enables {
};
static std::unordered_map<void *, struct instance_extension_enables> instance_ext_map;
+static std::unordered_map<void *, instance_layer_data *> instance_layer_data_map;
static std::unordered_map<void *, layer_data *> layer_data_map;
static std::mutex global_lock; // Protect map accesses and unique_id increments