diff options
| author | Jon Ashburn <jon@lunarg.com> | 2015-07-02 14:10:53 -0600 |
|---|---|---|
| committer | Courtney Goeltzenleuchter <courtney@LunarG.com> | 2015-07-07 15:57:59 -0600 |
| commit | c622670da4bf309977c3033a23d41fff3c249e6e (patch) | |
| tree | 5a1594baf5efca5f1af04b5554b2856ea501a64a /loader | |
| parent | 290f5e2838beab4d3fec99dcb70eb042ecdbdfb2 (diff) | |
| download | usermoji-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.c | 55 | ||||
| -rw-r--r-- | loader/vk_loader_platform.h | 2 |
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 |
