Enable VK_KHR_swapchain for instances.

This is a specific instance of a general capability.  Beginning with Vulkan
1.1, physical-device commands can part of device extensions, and can be called
before the application creates a device.  vkGetInstanceProcAddr only returns
commands for enabled extensions, and so we must internally enable device
extensions inside of the instance.  This commit enables VK_KHR_swapchain so
that GIPA will return vkGetPhysicalDevicePresentRectanglesKHR.

Bug: b/71744435
Test: Modified LunarG cube demo that can successfully GIPA the command.
Change-Id: Iefb9f82d3f21e110d45f7d6aae7c8c9ea3af20b9
diff --git a/vulkan/libvulkan/driver.cpp b/vulkan/libvulkan/driver.cpp
index 681f8b7..80727c5 100644
--- a/vulkan/libvulkan/driver.cpp
+++ b/vulkan/libvulkan/driver.cpp
@@ -402,6 +402,12 @@
     for (uint32_t i = 0; i < ext_count; i++)
         FilterExtension(ext_names[i]);
 
+    // Enable device extensions that contain physical-device commands, so that
+    // vkGetInstanceProcAddr will return those physical-device commands.
+    if (is_instance_) {
+        hook_extensions_.set(ProcHook::KHR_swapchain);
+    }
+
     ext_names = extension_filter_.names;
     ext_count = extension_filter_.name_count;