Vulkan: Line loops for indexed draw calls

Bug: angleproject:2335

Change-Id: Iabd6ae8181c6d3fb487f953a6fbf699db568a1c9
Reviewed-on: https://chromium-review.googlesource.com/941261
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
index 3aff8c0..38629c5 100644
--- a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
+++ b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
@@ -165,6 +165,7 @@
 
 void VertexArrayVk::updateDrawDependencies(vk::CommandGraphNode *readNode,
                                            const gl::AttributesMask &activeAttribsMask,
+                                           ResourceVk *elementArrayBufferOverride,
                                            Serial serial,
                                            DrawType drawType)
 {
@@ -178,8 +179,15 @@
     // Handle the bound element array buffer.
     if (drawType == DrawType::Elements)
     {
-        ASSERT(mCurrentElementArrayBufferResource);
-        mCurrentElementArrayBufferResource->onReadResource(readNode, serial);
+        if (elementArrayBufferOverride != nullptr)
+        {
+            elementArrayBufferOverride->onReadResource(readNode, serial);
+        }
+        else
+        {
+            ASSERT(mCurrentElementArrayBufferResource);
+            mCurrentElementArrayBufferResource->onReadResource(readNode, serial);
+        }
     }
 }