aboutsummaryrefslogtreecommitdiff
path: root/loader/loader.h
diff options
context:
space:
mode:
authorCourtney Goeltzenleuchter <courtney@LunarG.com>2015-06-17 20:51:59 -0600
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2015-06-18 10:18:18 -0600
commit06a204948df4bfc65f34d341fcfbd9ef57bddac2 (patch)
tree2a7a864d3cb6c877aca8fbe703ee9d7b075c991c /loader/loader.h
parent0d67c29d5d2a2f3383e11279a091a1f164f8eb95 (diff)
downloadusermoji-06a204948df4bfc65f34d341fcfbd9ef57bddac2.tar.xz
loader: Add support for debug report
Diffstat (limited to 'loader/loader.h')
-rw-r--r--loader/loader.h26
1 files changed, 19 insertions, 7 deletions
diff --git a/loader/loader.h b/loader/loader.h
index 8b427b5f..2d3b067a 100644
--- a/loader/loader.h
+++ b/loader/loader.h
@@ -69,16 +69,14 @@ struct loader_scanned_layers {
char *lib_name;
/* cache of global extensions for a specific layer */
-// uint32_t global_extension_count;
-// struct loader_extension_property *global_extensions;
struct loader_extension_list global_extension_list;
+ bool physical_device_extensions_supported;
/*
* cache of device extensions for a specific layer,
* filled in at CreateInstance time
*/
- uint32_t device_ext_count;
- struct loader_extension_property *device_ext_list;
+ struct loader_extension_list physical_device_extension_list;
};
struct loader_icd {
@@ -105,6 +103,13 @@ struct loader_icd {
uint32_t app_extension_count[MAX_GPUS_FOR_LAYER];
VkExtensionProperties *app_extension_props[MAX_GPUS_FOR_LAYER];
+ /*
+ * Fill in the cache of available extensions from all layers that
+ * operate with this physical device.
+ * This cache will be used to satisfy calls to GetPhysicalDeviceExtensionInfo
+ */
+ struct loader_extension_list device_extension_cache[MAX_GPUS_FOR_LAYER];
+
struct loader_extension_list enabled_device_extensions[MAX_GPUS_FOR_LAYER];
};
@@ -238,8 +243,7 @@ struct loader_scanned_icds {
* cache of device extensions for specific ICD,
* filled in at CreateInstance time
*/
- uint32_t device_extension_count;
- struct loader_extension_property *device_extensions;
+ struct loader_extension_list device_extension_list;
};
static inline void loader_set_dispatch(VkObject obj, const void *data)
@@ -312,7 +316,6 @@ VkResult VKAPI loader_GetGlobalExtensionInfo(
uint32_t extensionIndex,
size_t* pDataSize,
void* pData);
-#endif
VkResult loader_GetPhysicalDeviceExtensionInfo(
VkPhysicalDevice gpu,
@@ -320,6 +323,7 @@ VkResult loader_GetPhysicalDeviceExtensionInfo(
uint32_t extensionIndex,
size_t* pDataSize,
void* pData);
+#endif
VkResult loader_GetMultiDeviceCompatibility(
VkPhysicalDevice gpu0,
@@ -343,7 +347,15 @@ void loader_icd_scan(void);
void layer_lib_scan(void);
void loader_coalesce_extensions(void);
+static loader_platform_dl_handle loader_add_layer_lib(
+ const char *chain_type,
+ struct loader_extension_property *ext_prop);
+static void loader_remove_layer_lib(
+ struct loader_instance *inst,
+ struct loader_extension_property *ext_prop);
+
struct loader_icd * loader_get_icd(const VkBaseLayerObject *gpu,
uint32_t *gpu_index);
uint32_t loader_activate_instance_layers(struct loader_instance *inst);
+void loader_activate_instance_layer_extensions(struct loader_instance *inst);
#endif /* LOADER_H */