[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);
}
}