vulkan: do not distinguish instance or device LayerRef

Merge Get*LayerRef into GetLayerRef and remove LayerRef::is_instance_.
With the removal, LayerRef::SupportsExtension becomes ambiguous.  Replace
it with FindLayer*Extension.  Remove unused LayerRef::GetName and
LayerRef::GetSpecName while at it.

There should be no user-visible change.

Bug: 27911856
Change-Id: I38340654b52338e9ed46d1c4462a6b254b0cab64
diff --git a/vulkan/libvulkan/layers_extensions.cpp b/vulkan/libvulkan/layers_extensions.cpp
index 9998aee..f9b1002 100644
--- a/vulkan/libvulkan/layers_extensions.cpp
+++ b/vulkan/libvulkan/layers_extensions.cpp
@@ -330,6 +330,16 @@
     closedir(directory);
 }
 
+const VkExtensionProperties* FindExtension(
+    const std::vector<VkExtensionProperties>& extensions,
+    const char* name) {
+    auto it = std::find_if(extensions.cbegin(), extensions.cend(),
+                           [=](const VkExtensionProperties& ext) {
+                               return (strcmp(ext.extensionName, name) == 0);
+                           });
+    return (it != extensions.cend()) ? &*it : nullptr;
+}
+
 void* GetLayerGetProcAddr(const Layer& layer,
                           const char* gpa_name,
                           size_t gpa_name_len) {
@@ -383,19 +393,22 @@
     return layer.device_extensions.data();
 }
 
-LayerRef GetInstanceLayerRef(const Layer& layer) {
-    LayerLibrary& library = g_layer_libraries[layer.library_idx];
-    return LayerRef((library.Open()) ? &layer : nullptr, true);
+const VkExtensionProperties* FindLayerInstanceExtension(const Layer& layer,
+                                                        const char* name) {
+    return FindExtension(layer.instance_extensions, name);
 }
 
-LayerRef GetDeviceLayerRef(const Layer& layer) {
-    LayerLibrary& library = g_layer_libraries[layer.library_idx];
-    return LayerRef((layer.is_global && library.Open()) ? &layer : nullptr,
-                    false);
+const VkExtensionProperties* FindLayerDeviceExtension(const Layer& layer,
+                                                      const char* name) {
+    return FindExtension(layer.device_extensions, name);
 }
 
-LayerRef::LayerRef(const Layer* layer, bool is_instance)
-    : layer_(layer), is_instance_(is_instance) {}
+LayerRef GetLayerRef(const Layer& layer) {
+    LayerLibrary& library = g_layer_libraries[layer.library_idx];
+    return LayerRef((library.Open()) ? &layer : nullptr);
+}
+
+LayerRef::LayerRef(const Layer* layer) : layer_(layer) {}
 
 LayerRef::~LayerRef() {
     if (layer_) {
@@ -404,16 +417,7 @@
     }
 }
 
-const char* LayerRef::GetName() const {
-    return layer_->properties.layerName;
-}
-
-uint32_t LayerRef::GetSpecVersion() const {
-    return layer_->properties.specVersion;
-}
-
-LayerRef::LayerRef(LayerRef&& other)
-    : layer_(other.layer_), is_instance_(other.is_instance_) {
+LayerRef::LayerRef(LayerRef&& other) : layer_(other.layer_) {
     other.layer_ = nullptr;
 }
 
@@ -429,14 +433,5 @@
                   : nullptr;
 }
 
-bool LayerRef::SupportsExtension(const char* name) const {
-    const auto& extensions = (is_instance_) ? layer_->instance_extensions
-                                            : layer_->device_extensions;
-    return std::find_if(extensions.cbegin(), extensions.cend(),
-                        [=](const VkExtensionProperties& ext) {
-                            return strcmp(ext.extensionName, name) == 0;
-                        }) != extensions.cend();
-}
-
 }  // namespace api
 }  // namespace vulkan