MCPcopy Create free account
hub / github.com/LunarG/VulkanTools / LoadAllInstalledLayers

Method LoadAllInstalledLayers

vkconfig_core/layer_manager.cpp:457–499  ·  view source on GitHub ↗

Find all installed layers on the system.

Source from the content-addressed store, hash-verified

455
456// Find all installed layers on the system.
457void LayerManager::LoadAllInstalledLayers(ConfiguratorMode configurator_mode) {
458 std::array<std::vector<Path>, LAYERS_PATHS_COUNT> paths;
459
460 // Search new layers
461 paths[LAYERS_PATHS_IMPLICIT_SYSTEM] = GetImplicitLayerPaths();
462
463 // LAYERS_PATHS_IMPLICIT_ENV_SET: VK_IMPLICIT_LAYER_PATH env variables
464 paths[LAYERS_PATHS_IMPLICIT_ENV_SET] = GetEnvVariablePaths("VK_IMPLICIT_LAYER_PATH", LAYER_TYPE_IMPLICIT);
465
466 // LAYERS_PATHS_IMPLICIT_ENV_ADD: VK_ADD_IMPLICIT_LAYER_PATH env variables
467 paths[LAYERS_PATHS_IMPLICIT_ENV_ADD] = GetEnvVariablePaths("VK_ADD_IMPLICIT_LAYER_PATH", LAYER_TYPE_IMPLICIT);
468
469 // LAYERS_PATHS_EXPLICIT_SYSTEM
470 paths[LAYERS_PATHS_EXPLICIT_SYSTEM] = GetExplicitLayerPaths();
471
472 // LAYERS_PATHS_EXPLICIT_ENV_SET: VK_LAYER_PATH env variables
473 paths[LAYERS_PATHS_EXPLICIT_ENV_SET] = GetEnvVariablePaths("VK_LAYER_PATH", LAYER_TYPE_EXPLICIT);
474
475 // LAYERS_PATHS_EXPLICIT_ENV_ADD: VK_ADD_LAYER_PATH env variables
476 paths[LAYERS_PATHS_EXPLICIT_ENV_ADD] = GetEnvVariablePaths("VK_ADD_LAYER_PATH", LAYER_TYPE_EXPLICIT);
477
478 // LAYERS_PATHS_SDK
479 paths[LAYERS_PATHS_SDK].push_back(Path(Path::SDK_EXPLICIT_LAYERS));
480
481 // LAYERS_PATHS_GUI
482 std::vector<Path> added_paths = this->BuildLayerPaths();
483 paths[LAYERS_PATHS_GUI].insert(paths[LAYERS_PATHS_GUI].begin(), added_paths.begin(), added_paths.end());
484
485 for (std::size_t group_index = 0, group_count = paths.size(); group_index < group_count; ++group_index) {
486 const LayersPaths layers_path = static_cast<LayersPaths>(group_index);
487
488 const std::vector<Path> &paths_group = paths[group_index];
489 for (std::size_t i = 0, n = paths_group.size(); i < n; ++i) {
490 const std::vector<Path> &layers_paths = ::CollectLayersPaths(paths_group[i]);
491
492 for (std::size_t p = 0, o = layers_paths.size(); p < o; ++p) {
493 this->LoadLayers(layers_paths[p], ::GetLayerType(layers_path), configurator_mode);
494 }
495 }
496 }
497
498 // this->ApplyLayerDescriptor();
499}
500
501LayerValidated LayerManager::Validate(const Path &layer_path, QString json_text, ConfiguratorMode configurator_mode) const {
502 JsonValidator validator;

Callers 2

LoadMethod · 0.95
LoadMethod · 0.80

Calls 8

BuildLayerPathsMethod · 0.95
LoadLayersMethod · 0.95
GetImplicitLayerPathsFunction · 0.85
GetEnvVariablePathsFunction · 0.85
GetExplicitLayerPathsFunction · 0.85
PathClass · 0.85
CollectLayersPathsFunction · 0.85
GetLayerTypeFunction · 0.70

Tested by

no test coverage detected