swapchain: Implement VK_GOOGLE_surfaceless_query

This extension allows ANGLE to call Vulkan WSI queries before it has a
VkSurfaceKHR.

This version tries to address some subtle differences between upstream
and downstream branches.

Bug: 203826952
Test: Test with ANGLE EGLConfig-generation code
Change-Id: I7eb013efbaa5dd19ebed045583616238cea57023
diff --git a/vulkan/libvulkan/driver.cpp b/vulkan/libvulkan/driver.cpp
index 6e54d6c..aee90cd 100644
--- a/vulkan/libvulkan/driver.cpp
+++ b/vulkan/libvulkan/driver.cpp
@@ -634,6 +634,7 @@
             case ProcHook::KHR_surface:
             case ProcHook::EXT_swapchain_colorspace:
             case ProcHook::KHR_get_surface_capabilities2:
+            case ProcHook::GOOGLE_surfaceless_query:
                 hook_extensions_.set(ext_bit);
                 // return now as these extensions do not require HAL support
                 return;
@@ -712,6 +713,7 @@
             case ProcHook::KHR_surface:
             case ProcHook::EXT_debug_report:
             case ProcHook::EXT_swapchain_colorspace:
+            case ProcHook::GOOGLE_surfaceless_query:
             case ProcHook::ANDROID_native_buffer:
             case ProcHook::EXTENSION_CORE_1_0:
             case ProcHook::EXTENSION_CORE_1_1:
@@ -931,6 +933,8 @@
     loader_extensions.push_back(
         {VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME,
          VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION});
+    loader_extensions.push_back({VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME,
+                                 VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION});
 
     static const VkExtensionProperties loader_debug_report_extension = {
         VK_EXT_DEBUG_REPORT_EXTENSION_NAME, VK_EXT_DEBUG_REPORT_SPEC_VERSION,