Vulkan: Shader path for texture copy when image is not initialized

This change implements staging image/texture copies when the destination
image is not yet fully initialized.  With this change, CPU readback for
glCopyTex[Sub]Image2D and glCopy[Sub]TextureCHROMIUM should happen only
if the texture formats don't allow a fragment-shader based copy.

Bug: angleproject:2958
Change-Id: I04087e14ea8fb6fbc731598c5493e44651c22c01
Reviewed-on: https://chromium-review.googlesource.com/c/1393909
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/CommandGraph.cpp b/src/libANGLE/renderer/vulkan/CommandGraph.cpp
index c22e1bc..6008574 100644
--- a/src/libANGLE/renderer/vulkan/CommandGraph.cpp
+++ b/src/libANGLE/renderer/vulkan/CommandGraph.cpp
@@ -205,7 +205,7 @@
     CommandGraphNode *readingNode = readingResource->mCurrentWritingNode;
     ASSERT(readingNode);
 
-    if (hasChildlessWritingNode())
+    if (mCurrentWritingNode)
     {
         // Ensure 'readingNode' happens after the current writing node.
         CommandGraphNode::SetHappensBeforeDependency(mCurrentWritingNode, readingNode);