tests: Changes to use new WSI swapchain extensions.

There are still some FIXME's that must be addressed, as well as fully calling
the new entrypoints.  This patch serves as a basis for review and further work
with other Vulkan engineers.

Make space in std::vector using resize.  Need vector to actually allocate space
for the number of expected data elements. Reserve doesn't do it, but resize
does.

Update testframework for new WSI extensions
diff --git a/tests/vktestframework.cpp b/tests/vktestframework.cpp
index 3edc058..3ea9bdf 100644
--- a/tests/vktestframework.cpp
+++ b/tests/vktestframework.cpp
@@ -28,7 +28,8 @@
 #include <math.h>
 #include <wand/MagickWand.h>
 #include <xcb/xcb.h>
-#include <vk_wsi_lunarg.h>
+#include "vk_wsi_swapchain.h"
+#include "vk_wsi_device_swapchain.h"
 
 #if defined(PATH_MAX) && !defined(MAX_PATH)
 #define MAX_PATH PATH_MAX
@@ -91,7 +92,7 @@
     PFN_vkQueuePresentWSI                   m_fpQueuePresentWSI;
 
     VkSwapChainWSI                          m_swap_chain;
-    std::vector<VkSwapChainImageInfoWSI>    m_persistent_images;
+    std::vector<VkSwapChainImagePropertiesWSI> m_persistent_images;
     int                                     m_current_buffer;
 
     bool                                    m_quit;
@@ -487,9 +488,11 @@
     m_queue.wait();
 
     VkPresentInfoWSI present = {};
-    present.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_WSI;
-    present.image = m_persistent_images[m_current_buffer].image;
-    present.flipInterval = 1;
+    // FIXME: WRITE THE REAL CODE!!!
+    // FIXME: WRITE THE REAL CODE!!!
+    // FIXME: WRITE THE REAL CODE!!!
+    // FIXME: WRITE THE REAL CODE!!!
+    present.sType = VK_STRUCTURE_TYPE_QUEUE_PRESENT_INFO_WSI;
 
 #ifndef _WIN32
     xcb_change_property (m_connection,
@@ -666,11 +669,34 @@
     m_display_image = m_images.begin();
     m_current_buffer = 0;
 
+    // FIXME: WRITE THE REAL CODE!!!
+    // FIXME: WRITE THE REAL CODE!!!
+    // FIXME: WRITE THE REAL CODE!!!
+    // FIXME: WRITE THE REAL CODE!!!
+    VkSurfaceDescriptionWindowWSI surface_description;
+    VkPlatformHandleXcbWSI platform_handle_xcb;
+    surface_description.sType = VK_STRUCTURE_TYPE_SURFACE_DESCRIPTION_WINDOW_WSI;
+    surface_description.pNext = NULL;
+#ifdef _WIN32
+    surface_description.platform = VK_PLATFORM_WIN32_WSI;
+    surface_description.pPlatformHandle = m_connection;
+#else  // _WIN32
+    platform_handle_xcb.connection = m_connection;
+    platform_handle_xcb.root = m_screen->root;
+    surface_description.platform = VK_PLATFORM_XCB_WSI;
+    surface_description.pPlatformHandle = &platform_handle_xcb;
+#endif // _WIN32
+    surface_description.pPlatformWindow = (void *) (intptr_t) m_window;
+
     VkSwapChainCreateInfoWSI swap_chain = {};
     swap_chain.sType = VK_STRUCTURE_TYPE_SWAP_CHAIN_CREATE_INFO_WSI;
-    swap_chain.pNativeWindowSystemHandle = (void *) m_connection;
-    swap_chain.pNativeWindowHandle = (void *) (intptr_t) m_window;
-    swap_chain.imageCount = 2;
+    swap_chain.pNext = NULL;
+    // FIXME: WRITE THE REAL CODE!!!
+    // FIXME: WRITE THE REAL CODE!!!
+    // FIXME: WRITE THE REAL CODE!!!
+    // FIXME: WRITE THE REAL CODE!!!
+    swap_chain.pSurfaceDescription =
+        (VkSurfaceDescriptionWSI*) &surface_description;
     swap_chain.imageFormat = VK_FORMAT_B8G8R8A8_UNORM;
     swap_chain.imageExtent.width = m_width;
     swap_chain.imageExtent.height = m_height;
@@ -678,20 +704,18 @@
     // Note: Addition of color attachment is a workaround needed for some implementations
     swap_chain.imageUsageFlags = VK_IMAGE_USAGE_TRANSFER_DESTINATION_BIT |
                                  VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
-    swap_chain.swapModeFlags = VK_SWAP_MODE_FLIP_BIT_WSI |
-                               VK_SWAP_MODE_BLIT_BIT_WSI;
 
     err = m_fpCreateSwapChainWSI(m_device.handle(), &swap_chain, &m_swap_chain);
     assert(!err);
 
-    VkSwapChainImageInfoWSI infos[2];
-    size_t size = sizeof(VkSwapChainImageInfoWSI) * m_images.size() * 2;
-    std::vector<VkSwapChainImageInfoWSI> persistent_images;
+    VkSwapChainImagePropertiesWSI infos[2];
+    size_t size = sizeof(VkSwapChainImagePropertiesWSI) * m_images.size() * 2;
+    std::vector<VkSwapChainImagePropertiesWSI> persistent_images;
     persistent_images.resize(m_images.size());
-    err = m_fpGetSwapChainInfoWSI(m_swap_chain,
-            VK_SWAP_CHAIN_INFO_TYPE_PERSISTENT_IMAGES_WSI,
+    err = m_fpGetSwapChainInfoWSI(m_device.handle(), m_swap_chain,
+            VK_SWAP_CHAIN_INFO_TYPE_IMAGES_WSI,
             &size, &infos);
-    assert(!err && size == sizeof(VkSwapChainImageInfoWSI) * 2);
+    assert(!err && size == sizeof(VkSwapChainImagePropertiesWSI) * 2);
     m_persistent_images.push_back(infos[0]);
     m_persistent_images.push_back(infos[1]);
 }
@@ -834,7 +858,7 @@
 
 void TestFrameworkVkPresent::TearDown()
 {
-    m_fpDestroySwapChainWSI(m_swap_chain);
+    m_fpDestroySwapChainWSI(m_device.handle(), m_swap_chain);
 #ifndef _WIN32
     xcb_destroy_window(m_connection, m_window);
     xcb_disconnect(m_connection);