diff options
| author | Chris Forbes <chrisforbes@google.com> | 2017-05-02 16:26:23 -0700 |
|---|---|---|
| committer | Chris Forbes <chrisf@ijw.co.nz> | 2017-05-03 11:38:06 -0700 |
| commit | 04c739104d66020cebaf981a9bfa5d8ce622df45 (patch) | |
| tree | d2fd02ee48d66baaf1e84eb1fa8cb4b0adcef59b /layers/unique_objects.h | |
| parent | df6205fbe1cc7beae323dac2dea783d25f302327 (diff) | |
| download | usermoji-04c739104d66020cebaf981a9bfa5d8ce622df45.tar.xz | |
layers: UO: split device and instance data
Diffstat (limited to 'layers/unique_objects.h')
| -rw-r--r-- | layers/unique_objects.h | 19 |
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 |
