aboutsummaryrefslogtreecommitdiff
path: root/loader/loader.h
diff options
context:
space:
mode:
authorJon Ashburn <jon@lunarg.com>2016-04-20 13:21:17 -0600
committerJon Ashburn <jon@lunarg.com>2016-04-20 13:37:38 -0600
commite8e49c95df9baa4e9b4b0c740a63ad4d9fba5b4a (patch)
tree9778f4f7fa19b18296bcd9e9675b0486202cd0b6 /loader/loader.h
parent16dc8919ac4d3bfbfe1f8664c401d3490a972fe4 (diff)
downloadusermoji-e8e49c95df9baa4e9b4b0c740a63ad4d9fba5b4a.tar.xz
loader: ghlvl 361, Simplify library resource handling
Layer and ICD libraries are opened and closed as needed. No ref counting, no knowledge of if a library contains multiple layers or ICDs. Change-Id: Ie88b671cd1671187a42d3d838d20e3af1afc67cc
Diffstat (limited to 'loader/loader.h')
-rw-r--r--loader/loader.h22
1 files changed, 3 insertions, 19 deletions
diff --git a/loader/loader.h b/loader/loader.h
index 84659bba..9411c202 100644
--- a/loader/loader.h
+++ b/loader/loader.h
@@ -112,12 +112,6 @@ struct loader_name_value {
char value[MAX_STRING_SIZE];
};
-struct loader_lib_info {
- char lib_name[MAX_STRING_SIZE];
- uint32_t ref_count;
- loader_platform_dl_handle lib_handle;
-};
-
struct loader_layer_functions {
char str_gipa[MAX_STRING_SIZE];
char str_gdpa[MAX_STRING_SIZE];
@@ -129,6 +123,7 @@ struct loader_layer_properties {
VkLayerProperties info;
enum layer_type type;
char lib_name[MAX_STRING_SIZE];
+ loader_platform_dl_handle lib_handle;
struct loader_layer_functions functions;
struct loader_extension_list instance_extension_list;
struct loader_device_extension_list device_extension_list;
@@ -142,12 +137,6 @@ struct loader_layer_list {
struct loader_layer_properties *list;
};
-struct loader_layer_library_list {
- size_t capacity;
- uint32_t count;
- struct loader_lib_info *list;
-};
-
struct loader_dispatch_hash_list {
size_t capacity;
uint32_t count;
@@ -341,13 +330,6 @@ struct loader_physical_device {
struct loader_struct {
struct loader_instance *instances;
-
- unsigned int loaded_layer_lib_count;
- size_t loaded_layer_lib_capacity;
- struct loader_lib_info *loaded_layer_lib_list;
- // TODO add ref counting of ICD libraries
- // TODO use this struct loader_layer_library_list scanned_layer_libraries;
- // TODO add list of icd libraries for ref counting them for closure
};
struct loader_scanned_icds {
@@ -510,6 +492,8 @@ void loader_init_dispatch_dev_ext(struct loader_instance *inst,
void *loader_dev_ext_gpa(struct loader_instance *inst, const char *funcName);
void *loader_get_dev_ext_trampoline(uint32_t index);
struct loader_instance *loader_get_instance(const VkInstance instance);
+void loader_deactivate_layers(const struct loader_instance *instance,
+ struct loader_layer_list *list);
struct loader_device *
loader_create_logical_device(const struct loader_instance *inst);
void loader_add_logical_device(const struct loader_instance *inst,