Vulkan: Translate line loop indices from buffer.
When a line loop is drawn with byte indices from a buffer, translate
to short. Enable test.
BUG=angleproject:2802
Change-Id: Ie178ec866387be85b91291c28e1978db0a09c20a
Reviewed-on: https://chromium-review.googlesource.com/1237293
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
index 30a1665..1e1f07e 100644
--- a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
+++ b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
@@ -479,13 +479,13 @@
if (mDirtyLineLoopTranslation)
{
gl::Buffer *elementArrayBuffer = mState.getElementArrayBuffer().get();
- VkIndexType indexType = gl_vk::GetIndexType(drawCallParams.type());
if (!elementArrayBuffer)
{
- ANGLE_TRY(mLineLoopHelper.getIndexBufferForClientElementArray(
- contextVk, drawCallParams, &mCurrentElementArrayBufferHandle,
- &mCurrentElementArrayBufferOffset));
+ ANGLE_TRY(mLineLoopHelper.streamIndices(
+ contextVk, drawCallParams.type(), drawCallParams.indexCount(),
+ reinterpret_cast<const uint8_t *>(drawCallParams.indices()),
+ &mCurrentElementArrayBufferHandle, &mCurrentElementArrayBufferOffset));
}
else
{
@@ -493,8 +493,9 @@
intptr_t offset = reinterpret_cast<intptr_t>(drawCallParams.indices());
BufferVk *elementArrayBufferVk = vk::GetImpl(elementArrayBuffer);
ANGLE_TRY(mLineLoopHelper.getIndexBufferForElementArrayBuffer(
- contextVk, elementArrayBufferVk, indexType, drawCallParams.indexCount(), offset,
- &mCurrentElementArrayBufferHandle, &mCurrentElementArrayBufferOffset));
+ contextVk, elementArrayBufferVk, drawCallParams.type(),
+ drawCallParams.indexCount(), offset, &mCurrentElementArrayBufferHandle,
+ &mCurrentElementArrayBufferOffset));
}
}