aboutsummaryrefslogtreecommitdiff
path: root/loader
diff options
context:
space:
mode:
authorJon Ashburn <jon@lunarg.com>2015-07-02 14:10:53 -0600
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2015-07-07 15:57:59 -0600
commitc622670da4bf309977c3033a23d41fff3c249e6e (patch)
tree5a1594baf5efca5f1af04b5554b2856ea501a64a /loader
parent290f5e2838beab4d3fec99dcb70eb042ecdbdfb2 (diff)
downloadusermoji-c622670da4bf309977c3033a23d41fff3c249e6e.tar.xz
loader: Split the instance and device layer enablement env vars into 2
Rename them VK_INSTANCE_LAYERS and VK_DEVICE_LAYERS. Also remove some unused stuff like getting layer enablement from registry and layer enablement names are as filenames.
Diffstat (limited to 'loader')
-rw-r--r--loader/loader.c55
-rw-r--r--loader/vk_loader_platform.h2
2 files changed, 19 insertions, 38 deletions
diff --git a/loader/loader.c b/loader/loader.c
index 1f2e5f01..5dea7479 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -918,7 +918,6 @@ struct loader_manifest_files {
* The next path (or NULL) in the list is returned in next_path.
* Note: input string is modified in some cases. PASS IN A COPY!
*/
-//TODO registry keys
static char *loader_get_next_path(char *path)
{
uint32_t len;
@@ -1572,51 +1571,29 @@ static void loader_remove_layer_lib(
}
static void loader_add_layer_env(
- struct loader_extension_list *ext_list,
- const struct loader_extension_list *search_list)
+ const char *env_name,
+ struct loader_extension_list *ext_list,
+ const struct loader_extension_list *search_list)
{
char *layerEnv;
- uint32_t len;
- char *p, *pOrig, *next, *name;
+ char *next, *name;
-#if defined(WIN32)
- layerEnv = loader_get_registry_and_env(LAYER_NAMES_ENV,
- LAYER_NAMES_REGISTRY_VALUE);
-#else // WIN32
- layerEnv = getenv(LAYER_NAMES_ENV);
-#endif // WIN32
+ layerEnv = getenv(env_name);
if (layerEnv == NULL) {
return;
}
- p = malloc(strlen(layerEnv) + 1);
- if (p == NULL) {
-#if defined(WIN32)
- free(layerEnv);
-#endif // WIN32
+ name = alloca(strlen(layerEnv) + 1);
+ if (name == NULL) {
return;
}
- strcpy(p, layerEnv);
-#if defined(WIN32)
- free(layerEnv);
-#endif // WIN32
- pOrig = p;
+ strcpy(name, layerEnv);
- while (p && *p ) {
- next = strchr(p, PATH_SEPERATOR);
- if (next == NULL) {
- len = (uint32_t) strlen(p);
- next = p + len;
- } else {
- len = (uint32_t) (next - p);
- *(char *) next = '\0';
- next++;
- }
- name = basename(p);
+ while (name && *name ) {
+ next = loader_get_next_path(name);
loader_find_layer_name_add_list(name, search_list, ext_list);
- p = next;
+ name = next;
}
- free(pOrig);
return;
}
@@ -1651,7 +1628,10 @@ void loader_enable_instance_layers(struct loader_instance *inst)
}
/* Add any layers specified via environment variable first */
- loader_add_layer_env(&inst->activated_layer_list, &loader.global_extensions);
+ loader_add_layer_env(
+ "VK_INSTANCE_LAYERS",
+ &inst->activated_layer_list,
+ &loader.global_extensions);
/* Add layers specified by the application */
loader_add_layer_ext_to_ext_list(
@@ -1765,7 +1745,10 @@ static void loader_enable_device_layers(
}
/* Add any layers specified via environment variable first */
- loader_add_layer_env(&dev->activated_layer_list, &loader.global_extensions);
+ loader_add_layer_env(
+ "VK_DEVICE_LAYERS",
+ &dev->activated_layer_list,
+ &loader.global_extensions);
/* Add layers specified by the application */
loader_add_layer_ext_to_ext_list(
diff --git a/loader/vk_loader_platform.h b/loader/vk_loader_platform.h
index 693a3dcf..b60f421f 100644
--- a/loader/vk_loader_platform.h
+++ b/loader/vk_loader_platform.h
@@ -52,7 +52,6 @@
#define DEFAULT_VK_DRIVERS_INFO "/usr/share/vulkan/icd.d:/etc/vulkan/icd.d"
#define DEFAULT_VK_DRIVERS_PATH "/usr/lib/i386-linux-gnu/vulkan/icd:/usr/lib/x86_64-linux-gnu/vulkan/icd"
#define LAYERS_PATH_ENV "LIBVK_LAYERS_PATH"
-#define LAYER_NAMES_ENV "LIBVK_LAYER_NAMES"
#define VK_LAYER_LIBRARY_PREFIX "libVKLayer"
#define VK_LAYER_LIBRARY_PREFIX_LEN 10
#define VK_LIBRARY_SUFFIX ".so"
@@ -180,7 +179,6 @@ using namespace std;
#define LAYERS_PATH_REGISTRY_VALUE "VK_LAYERS_PATH"
#define LAYER_NAMES_REGISTRY_VALUE "VK_LAYER_NAMES"
#define LAYERS_PATH_ENV "VK_LAYERS_PATH"
-#define LAYER_NAMES_ENV "VK_LAYER_NAMES"
// TODO/TBD: Is this an appropriate suffix for Windows?
#define VK_LAYER_LIBRARY_PREFIX "VKLayer"
#define VK_LAYER_LIBRARY_PREFIX_LEN 7