aboutsummaryrefslogtreecommitdiff
path: root/loader/loader.c
diff options
context:
space:
mode:
authorJamie Madill <jmadill@chromium.org>2016-04-27 16:33:23 -0400
committerJon Ashburn <jon@lunarg.com>2016-04-28 16:19:38 -0600
commitf670934e0a197d49bcd0b0ea525e7d04c362aabd (patch)
tree2f8a16b96e9b26d2cd776b3f273c5fd8ae0cfec6 /loader/loader.c
parent5342ef5e9026fc97e3dc1b6ceaeed0eb7f2e1d85 (diff)
downloadusermoji-f670934e0a197d49bcd0b0ea525e7d04c362aabd.tar.xz
Revert "loader: Remove the default directory paths for ICDs and layers"
This reverts commit b1e6b564616c40062b81d0b8b90e8689dd9aea11. Change-Id: I9e6bfad81369912c85c3122d6d36093c3c148454
Diffstat (limited to 'loader/loader.c')
-rw-r--r--loader/loader.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/loader/loader.c b/loader/loader.c
index 18ffec82..17c2f557 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -1954,6 +1954,7 @@ loader_add_layer_properties(const struct loader_instance *inst,
strncpy(props->info.layerName, name, sizeof(props->info.layerName));
props->info.layerName[sizeof(props->info.layerName) - 1] = '\0';
+ char *fullpath = props->lib_name;
char *rel_base;
if (loader_platform_is_path(library_path)) {
// a relative or absolute path
@@ -1961,11 +1962,11 @@ loader_add_layer_properties(const struct loader_instance *inst,
strcpy(name_copy, filename);
rel_base = loader_platform_dirname(name_copy);
loader_expand_path(library_path, rel_base, MAX_STRING_SIZE,
- props->lib_name);
+ fullpath);
} else {
- // a filename which will be passed to the OSes library loader
- strncpy(props->lib_name, library_path, sizeof(props->lib_name));
- props->lib_name[sizeof(props->lib_name) - 1] = '\0';
+ // a filename which is assumed in a system directory
+ loader_get_fullpath(library_path, DEFAULT_VK_LAYERS_PATH,
+ MAX_STRING_SIZE, fullpath);
}
props->info.specVersion = loader_make_version(api_version);
props->info.implementationVersion = atoi(implementation_version);
@@ -2467,12 +2468,12 @@ void loader_icd_scan(const struct loader_instance *inst,
cJSON_Delete(json);
continue;
}
- char fullpath[MAX_STRING_SIZE], *fpath;
+ char fullpath[MAX_STRING_SIZE];
// Print out the paths being searched if debugging is enabled
loader_log(
inst, VK_DEBUG_REPORT_DEBUG_BIT_EXT, 0,
- "Searching for ICD drivers named %s\n",
- library_path);
+ "Searching for ICD drivers named %s default dir %s\n",
+ library_path, DEFAULT_VK_DRIVERS_PATH);
if (loader_platform_is_path(library_path)) {
// a relative or absolute path
char *name_copy = loader_stack_alloc(strlen(file_str) + 1);
@@ -2481,10 +2482,10 @@ void loader_icd_scan(const struct loader_instance *inst,
rel_base = loader_platform_dirname(name_copy);
loader_expand_path(library_path, rel_base, sizeof(fullpath),
fullpath);
- fpath = fullpath;
} else {
- // a filename which will be passed to the OSes library loader
- fpath = library_path;
+ // a filename which is assumed in a system directory
+ loader_get_fullpath(library_path, DEFAULT_VK_DRIVERS_PATH,
+ sizeof(fullpath), fullpath);
}
uint32_t vers = 0;
@@ -2494,7 +2495,7 @@ void loader_icd_scan(const struct loader_instance *inst,
vers = loader_make_version(temp);
loader_tls_heap_free(temp);
}
- loader_scanned_icd_add(inst, icds, fpath, vers);
+ loader_scanned_icd_add(inst, icds, fullpath, vers);
} else
loader_log(inst, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
"Can't find \"library_path\" object in ICD JSON "