Vulkan: drawElements with GL_LINE_LOOP and an offset

Also enables a test in LineLoopTest that validates this case.

Bug: angleproject:2473

Change-Id: Icb4c5735c11be40cdeceaa051f5a5cef33fd22c6
Reviewed-on: https://chromium-review.googlesource.com/1011669
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 24efd58..81919a7 100644
--- a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
+++ b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
@@ -415,9 +415,11 @@
         }
         else
         {
+            // When using an element array buffer, 'indices' is an offset to the first element.
+            intptr_t offset                = reinterpret_cast<intptr_t>(drawCallParams.indices());
             BufferVk *elementArrayBufferVk = vk::GetImpl(elementArrayBuffer);
             ANGLE_TRY(mLineLoopHelper.getIndexBufferForElementArrayBuffer(
-                renderer, elementArrayBufferVk, indexType, drawCallParams.indexCount(),
+                renderer, elementArrayBufferVk, indexType, drawCallParams.indexCount(), offset,
                 &mCurrentElementArrayBufferHandle, &mCurrentElementArrayBufferOffset));
         }
     }