Lines Matching full:layer
54 struct Layer {
58 // true if the layer intercepts vkCreateDevice and device commands
95 std::vector<Layer>& instance_layers) const;
97 void* GetGPA(const Layer& layer,
117 ALOGV("opening layer library '%s'", path_.c_str());
118 // Libraries in the system layer library dir can't be loaded into
135 ALOGE("failed to load layer library '%s': %s", path_.c_str(),
147 ALOGV("closing layer library '%s'", path_.c_str());
154 std::vector<Layer>& instance_layers) const {
162 ALOGE("layer library '%s' missing some instance enumeration functions",
175 // get layer counts
199 // get layer properties
225 Layer layer;
226 layer.properties = props;
227 layer.library_idx = library_idx;
228 layer.is_global = false;
241 layer.instance_extensions.resize(count);
243 props.layerName, &count, layer.instance_extensions.data());
256 layer.is_global = true;
261 if (layer.is_global && enumerate_device_extensions) {
272 layer.device_extensions.resize(count);
275 layer.device_extensions.data());
286 instance_layers.push_back(layer);
287 ALOGD("added %s layer '%s' from library '%s'",
288 (layer.is_global) ? "global" : "instance", props.layerName,
295 void* LayerLibrary::GetGPA(const Layer& layer,
300 std::max(size_t{2}, strlen(layer.properties.layerName));
302 strcpy(name, layer.properties.layerName);
315 std::vector<Layer> g_instance_layers;
341 ALOGW_IF(err != ENOENT, "failed to open layer directory '%s': %s",
411 // Check to ensure we haven't seen this layer already
419 for (auto& layer : g_layer_libraries) {
420 if (layer.GetFilename() == filename) {
421 ALOGV("Skipping duplicate layer %s in %s",
444 void* GetLayerGetProcAddr(const Layer& layer,
447 const LayerLibrary& library = g_layer_libraries[layer.library_idx];
448 return library.GetGPA(layer, gpa_name, gpa_name_len);
466 const Layer& GetLayer(uint32_t index) {
470 const Layer* FindLayer(const char* name) {
471 auto layer =
473 [=](const Layer& entry) {
476 return (layer != g_instance_layers.cend()) ? &*layer : nullptr;
479 const VkLayerProperties& GetLayerProperties(const Layer& layer) {
480 return layer.properties;
483 bool IsLayerGlobal(const Layer& layer) {
484 return layer.is_global;
487 const VkExtensionProperties* GetLayerInstanceExtensions(const Layer& layer,
489 count = static_cast<uint32_t>(layer.instance_extensions.size());
490 return layer.instance_extensions.data();
493 const VkExtensionProperties* GetLayerDeviceExtensions(const Layer& layer,
495 count = static_cast<uint32_t>(layer.device_extensions.size());
496 return layer.device_extensions.data();
499 const VkExtensionProperties* FindLayerInstanceExtension(const Layer& layer,
501 return FindExtension(layer.instance_extensions, name);
504 const VkExtensionProperties* FindLayerDeviceExtension(const Layer& layer,
506 return FindExtension(layer.device_extensions, name);
509 LayerRef GetLayerRef(const Layer& layer) {
510 LayerLibrary& library = g_layer_libraries[layer.library_idx];
511 return LayerRef((library.Open()) ? &layer : nullptr);
514 LayerRef::LayerRef(const Layer* layer) : layer_(layer) {}