Vulkan: Shader path for framebuffer-to-texture copy

Part 1 in a series of changes to perform image copies on the GPU.

Bug: angleproject:2958
Change-Id: I6264a880865c4738c0866f2dc71af63425fc4118
Reviewed-on: https://chromium-review.googlesource.com/c/1370724
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/ContextVk.cpp b/src/libANGLE/renderer/vulkan/ContextVk.cpp
index 51792c9..3b9924b 100644
--- a/src/libANGLE/renderer/vulkan/ContextVk.cpp
+++ b/src/libANGLE/renderer/vulkan/ContextVk.cpp
@@ -401,18 +401,9 @@
 {
     ANGLE_TRY(updateActiveTextures(context));
 
-    // TODO(jmadill): Should probably merge this for loop with programVk's descriptor update.
-    for (size_t textureIndex : mProgram->getState().getActiveSamplersMask())
-    {
-        // Ensure any writes to the textures are flushed before we read from them.
-        TextureVk *textureVk = mActiveTextures[textureIndex];
-        ANGLE_TRY(textureVk->ensureImageInitialized(this));
-        textureVk->getImage().addReadDependency(mDrawFramebuffer->getFramebuffer());
-    }
-
     if (mProgram->hasTextures())
     {
-        ANGLE_TRY(mProgram->updateTexturesDescriptorSet(this));
+        ANGLE_TRY(mProgram->updateTexturesDescriptorSet(this, mDrawFramebuffer->getFramebuffer()));
     }
     return angle::Result::Continue;
 }