Vulkan: Line loop edge case with ubyte indices
Bug: angleproject:2637
Change-Id: I2cec129ed1aa0e55e0dbf1d353caa65a51c528a3
Reviewed-on: https://chromium-review.googlesource.com/1096017
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
index ce991d0..4a72c89 100644
--- a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
+++ b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
@@ -417,8 +417,8 @@
if (!elementArrayBuffer)
{
ANGLE_TRY(mLineLoopHelper.getIndexBufferForClientElementArray(
- renderer, drawCallParams.indices(), indexType, drawCallParams.indexCount(),
- &mCurrentElementArrayBufferHandle, &mCurrentElementArrayBufferOffset));
+ renderer, drawCallParams, &mCurrentElementArrayBufferHandle,
+ &mCurrentElementArrayBufferOffset));
}
else
{
@@ -505,9 +505,10 @@
}
else if (mIndexBufferDirty || newCommandBuffer)
{
- if (drawCallParams.type() == GL_UNSIGNED_BYTE)
+ if (drawCallParams.type() == GL_UNSIGNED_BYTE &&
+ drawCallParams.mode() != gl::PrimitiveMode::LineLoop)
{
- // TODO(fjhenigman): Index format translation.
+ // TODO(fjhenigman): Index format translation for non line-loop calls.
UNIMPLEMENTED();
return gl::InternalError()
<< "Unsigned byte translation is not implemented for indices in a buffer object";