Vulkan: Fix pipeline stage when waiting on a semaphore

Using VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT in pWaitDstStageMask doesn't
create a dependency, since no memory is accessed during that stage.
Switch to VK_PIPELINE_STAGE_ALL_COMMANDS_BIT to synchronize all accesses.

This fixes flickering observed in WebGL on ARM GPUs when composited using
Vulkan in Chromium.

Bug: angleproject:4422
Change-Id: I37da461c03dbf52f8658408b159c2b173cccd0b3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2068906
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/ContextVk.cpp b/src/libANGLE/renderer/vulkan/ContextVk.cpp
index 56bb252..df95ad8 100644
--- a/src/libANGLE/renderer/vulkan/ContextVk.cpp
+++ b/src/libANGLE/renderer/vulkan/ContextVk.cpp
@@ -126,8 +126,7 @@
 
     if (waitSemaphoreStageMasks->size() < waitSemaphores.size())
     {
-        waitSemaphoreStageMasks->resize(waitSemaphores.size(),
-                                        VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT);
+        waitSemaphoreStageMasks->resize(waitSemaphores.size(), VK_PIPELINE_STAGE_ALL_COMMANDS_BIT);
     }
 
     submitInfo->waitSemaphoreCount = static_cast<uint32_t>(waitSemaphores.size());