aboutsummaryrefslogtreecommitdiff
path: root/loader/loader.h
diff options
context:
space:
mode:
authorMark Young <marky@lunarg.com>2017-05-02 10:49:46 -0600
committerMark Young <marky@lunarg.com>2017-05-09 11:01:03 -0600
commit3d876c1544ba6325720a64c248e8eb0214e55d6e (patch)
tree30535ed5f594de4fae64df9c9ab5fbddc1d4264a /loader/loader.h
parent449d28aab53abf93e97f860f33921d79e517c9a1 (diff)
downloadusermoji-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.h34
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