diff options
| author | Mark Young <marky@lunarg.com> | 2017-05-02 10:49:46 -0600 |
|---|---|---|
| committer | Mark Young <marky@lunarg.com> | 2017-05-09 11:01:03 -0600 |
| commit | 3d876c1544ba6325720a64c248e8eb0214e55d6e (patch) | |
| tree | 30535ed5f594de4fae64df9c9ab5fbddc1d4264a /loader/loader.h | |
| parent | 449d28aab53abf93e97f860f33921d79e517c9a1 (diff) | |
| download | usermoji-3d876c1544ba6325720a64c248e8eb0214e55d6e.tar.xz | |
loader: Meta-layer support
Integrate Lenny and my changes for Meta-layers.
Includes adding initial JSON file for standard_validation.
Change-Id: Ibc1da464fad4949e14e171dbc7dd9990621e1081
Diffstat (limited to 'loader/loader.h')
| -rw-r--r-- | loader/loader.h | 34 |
1 files changed, 12 insertions, 22 deletions
diff --git a/loader/loader.h b/loader/loader.h index 78160d0d..28390753 100644 --- a/loader/loader.h +++ b/loader/loader.h @@ -1,8 +1,8 @@ /* * - * Copyright (c) 2014-2016 The Khronos Group Inc. - * Copyright (c) 2014-2016 Valve Corporation - * Copyright (c) 2014-2016 LunarG, Inc. + * Copyright (c) 2014-2017 The Khronos Group Inc. + * Copyright (c) 2014-2017 Valve Corporation + * Copyright (c) 2014-2017 LunarG, Inc. * Copyright (C) 2015 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -58,10 +58,10 @@ #define MAX_NUM_UNKNOWN_EXTS 250 #endif -enum layer_type { - VK_LAYER_TYPE_INSTANCE_EXPLICIT = 0x1, - VK_LAYER_TYPE_INSTANCE_IMPLICIT = 0x2, - VK_LAYER_TYPE_META_EXPLICT = 0x4, +enum layer_type_flags { + VK_LAYER_TYPE_FLAG_INSTANCE_LAYER = 0x1, // If not set, indicates Device layer + VK_LAYER_TYPE_FLAG_EXPLICIT_LAYER = 0x2, // If not set, indicates Implicit layer + VK_LAYER_TYPE_FLAG_META_LAYER = 0x4, // If not set, indicates standard layer }; typedef enum VkStringErrorFlagBits { @@ -81,10 +81,6 @@ static const char UTF8_THREE_BYTE_MASK = 0xF8; static const char UTF8_DATA_BYTE_CODE = 0x80; static const char UTF8_DATA_BYTE_MASK = 0xC0; -static const char std_validation_names[6][VK_MAX_EXTENSION_NAME_SIZE] = { - "VK_LAYER_GOOGLE_threading", "VK_LAYER_LUNARG_parameter_validation", "VK_LAYER_LUNARG_object_tracker", - "VK_LAYER_LUNARG_core_validation", "VK_LAYER_LUNARG_swapchain", "VK_LAYER_GOOGLE_unique_objects"}; - struct VkStructureHeader { VkStructureType sType; const void *pNext; @@ -133,7 +129,7 @@ struct loader_layer_functions { struct loader_layer_properties { VkLayerProperties info; - enum layer_type type; + enum layer_type_flags type_flags; uint32_t interface_version; // PFN_vkNegotiateLoaderLayerInterfaceVersion char lib_name[MAX_STRING_SIZE]; loader_platform_dl_handle lib_handle; @@ -142,6 +138,8 @@ struct loader_layer_properties { struct loader_device_extension_list device_extension_list; struct loader_name_value disable_env_var; struct loader_name_value enable_env_var; + uint32_t num_component_layers; + char (*component_layer_names)[MAX_STRING_SIZE]; }; struct loader_layer_list { @@ -253,7 +251,6 @@ struct loader_instance { struct loader_layer_list instance_layer_list; struct loader_layer_list activated_layer_list; - bool activated_layers_are_std_val; VkInstance instance; // layers/ICD instance returned to trampoline struct loader_extension_list ext_list; // icds and loaders extensions @@ -370,7 +367,6 @@ extern THREAD_LOCAL_DECL struct loader_instance *tls_instance; extern LOADER_PLATFORM_THREAD_ONCE_DEFINITION(once_init); extern loader_platform_thread_mutex loader_lock; extern loader_platform_thread_mutex loader_json_lock; -extern const char *std_validation_str; struct loader_msg_callback_map_entry { VkDebugReportCallbackEXT icd_obj; @@ -421,15 +417,9 @@ void loader_destroy_layer_list(const struct loader_instance *inst, struct loader struct loader_layer_list *layer_list); void loader_delete_layer_properties(const struct loader_instance *inst, struct loader_layer_list *layer_list); bool loader_find_layer_name_array(const char *name, uint32_t layer_count, const char layer_list[][VK_MAX_EXTENSION_NAME_SIZE]); -VkResult loader_expand_layer_names(struct loader_instance *inst, const char *key_name, uint32_t expand_count, - const char expand_names[][VK_MAX_EXTENSION_NAME_SIZE], uint32_t *layer_count, - char const *const **ppp_layer_names); -void loader_init_std_validation_props(struct loader_layer_properties *props); -void loader_delete_shadow_inst_layer_names(const struct loader_instance *inst, const VkInstanceCreateInfo *orig, - VkInstanceCreateInfo *ours); VkResult loader_add_to_layer_list(const struct loader_instance *inst, struct loader_layer_list *list, uint32_t prop_list_count, const struct loader_layer_properties *props); -void loader_find_layer_name_add_list(const struct loader_instance *inst, const char *name, const enum layer_type type, +void loader_find_layer_name_add_list(const struct loader_instance *inst, const char *name, const enum layer_type_flags type_flags, const struct loader_layer_list *search_list, struct loader_layer_list *found_list); void loader_scanned_icd_clear(const struct loader_instance *inst, struct loader_icd_tramp_list *icd_tramp_list); VkResult loader_icd_scan(const struct loader_instance *inst, struct loader_icd_tramp_list *icd_tramp_list); @@ -478,4 +468,4 @@ VkResult setupLoaderTermPhysDevs(struct loader_instance *inst); VkStringErrorFlags vk_string_validate(const int max_length, const char *char_array); -#endif // LOADER_H +#endif // LOADER_H |
