Fire VkFence in vkAcquireImageANDROID

Have Vk synchronization objects fire in vkAcquireImageANDROID
as per described in https://source.android.com/devices/graphics/implement-vulkan

Tests: dEQP-VK.wsi.android.swapchain.modify.resize
Bug: b/133520634
Change-Id: I9b045df3b5ed0fff8efde9c0207e4a1da9c94b8f
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/31968
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Tested-by: Hernan Liatis <hliatis@google.com>
diff --git a/src/Vulkan/libVulkan.cpp b/src/Vulkan/libVulkan.cpp
index c339caf..1c88a33 100644
--- a/src/Vulkan/libVulkan.cpp
+++ b/src/Vulkan/libVulkan.cpp
@@ -2770,6 +2770,22 @@
 	TRACE("(VkDevice device = %p, VkImage image = %p, int nativeFenceFd = %d, VkSemaphore semaphore = %p, VkFence fence = %p)",
 			device, image.get(), nativeFenceFd, semaphore.get(), fence.get());
 
+	if(nativeFenceFd >= 0)
+	{
+		sync_wait(nativeFenceFd, -1);
+		close(nativeFenceFd);
+	}
+
+	if(fence != VK_NULL_HANDLE)
+	{
+		vk::Cast(fence)->complete();
+	}
+
+	if(semaphore != VK_NULL_HANDLE)
+	{
+		vk::Cast(semaphore)->signal();
+	}
+
 	return VK_SUCCESS;
 }