[lib][fuchsia-vulkan] Fix instance, device leaks.

Change-Id: I5f992826f1a9e3f95357669e76897938eef32daa
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/693953
Reviewed-by: Yilong Li <liyl@google.com>
Commit-Queue: Craig Stout <cstout@google.com>
diff --git a/src/lib/ui/fuchsia-vulkan/src/lib.rs b/src/lib/ui/fuchsia-vulkan/src/lib.rs
index 68c8353..54de7a9 100644
--- a/src/lib/ui/fuchsia-vulkan/src/lib.rs
+++ b/src/lib/ui/fuchsia-vulkan/src/lib.rs
@@ -645,6 +645,13 @@
         instance
     }
 
+    fn destroy_vk_instance(instance: vk::Instance) {
+        let vk_i = super::instance_pointers(instance);
+        unsafe {
+            vk_i.DestroyInstance(instance, ptr::null());
+        }
+    }
+
     fn get_vk_physical_device(instance: vk::Instance) -> Option<vk::PhysicalDevice> {
         let vk_i = super::instance_pointers(instance);
         let physical_devices = {
@@ -805,6 +812,7 @@
         let device = create_vk_device(instance, vec![]);
         assert!(device.is_some());
         destroy_vk_device(instance, device.unwrap());
+        destroy_vk_instance(instance);
     }
 
     macro_rules! assert_fn_valid {
@@ -833,6 +841,9 @@
         assert_fn_valid!(vk_ext.SetBufferCollectionBufferConstraintsFUCHSIA);
         assert_fn_valid!(vk_ext.DestroyBufferCollectionFUCHSIA);
         assert_fn_valid!(vk_ext.GetBufferCollectionPropertiesFUCHSIA);
+
+        destroy_vk_device(instance, device);
+        destroy_vk_instance(instance);
     }
 
     #[test]
@@ -857,6 +868,9 @@
         assert_fn_valid!(vk_ext.DestroyBufferCollectionFUCHSIAX);
         assert_fn_valid!(vk_ext.GetBufferCollectionPropertiesFUCHSIAX);
         assert_fn_valid!(vk_ext.GetBufferCollectionProperties2FUCHSIAX);
+
+        destroy_vk_device(instance, device);
+        destroy_vk_instance(instance);
     }
 
     #[test]
@@ -876,6 +890,9 @@
 
         assert_fn_valid!(vk_ext.GetMemoryZirconHandleFUCHSIA);
         assert_fn_valid!(vk_ext.GetMemoryZirconHandlePropertiesFUCHSIA);
+
+        destroy_vk_device(instance, device);
+        destroy_vk_instance(instance);
     }
 
     #[test]
@@ -895,5 +912,8 @@
 
         assert_fn_valid!(vk_ext.ImportSemaphoreZirconHandleFUCHSIA);
         assert_fn_valid!(vk_ext.GetSemaphoreZirconHandleFUCHSIA);
+
+        destroy_vk_device(instance, device);
+        destroy_vk_instance(instance);
     }
 }