Vulkan: Refix cleanup race condition on Context destroy

This partially reverts commit 905ee08219faed8ea50e194be0d76ad69faf1026
due to regression caused on startup time.

Instead of calling finish before destroying the context, the objects in
the Vulkan backend are `release()`ed instead of `destroy()`ed, so they
will be kept alive for the duration of current work.

Bug: 904846
Change-Id: Ia774470666c4c0d4c1ddc348f685d621243de204
Reviewed-on: https://chromium-review.googlesource.com/c/1333969
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
index e39b341..3748816 100644
--- a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
+++ b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
@@ -105,15 +105,16 @@
 
 void VertexArrayVk::destroy(const gl::Context *context)
 {
-    VkDevice device = vk::GetImpl(context)->getRenderer()->getDevice();
+    RendererVk *renderer = vk::GetImpl(context)->getRenderer();
+
     for (vk::DynamicBuffer &buffer : mCurrentArrayBufferConversion)
     {
-        buffer.destroy(device);
+        buffer.release(renderer);
     }
-    mDynamicVertexData.destroy(device);
-    mDynamicIndexData.destroy(device);
-    mTranslatedByteIndexData.destroy(device);
-    mLineLoopHelper.destroy(device);
+    mDynamicVertexData.release(renderer);
+    mDynamicIndexData.release(renderer);
+    mTranslatedByteIndexData.release(renderer);
+    mLineLoopHelper.release(renderer);
 }
 
 angle::Result VertexArrayVk::streamIndexData(ContextVk *contextVk,