Make angle::Result an enum.
This moves away from a class type to a value type. This should improve
performance when using angle::Result as a return value. Previously the
generated code would return a pointer instead of a value.
Improves performance in the most targeted microbenchmark by 10%. In
more realistic scanarios it will have a smaller improvement. Also
simplifies the class implementation and usage.
Includes some unrelated code generation changes.
Bug: angleproject:2491
Change-Id: Ifcf86870bf1c00a2f73c39ea6e4f05ca705050aa
Reviewed-on: https://chromium-review.googlesource.com/c/1356139
Commit-Queue: Jamie Madill <jmadill@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 8476bfa..09a8fd9 100644
--- a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
+++ b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
@@ -57,7 +57,7 @@
vertexLoadFunction(sourceData, stride, vertexCount, dst);
ANGLE_TRY(dynamicBuffer->flush(contextVk));
- return angle::Result::Continue();
+ return angle::Result::Continue;
}
} // anonymous namespace
@@ -167,7 +167,7 @@
memcpy(dst, sourcePointer, amount);
}
ANGLE_TRY(dynamicBuffer->flush(contextVk));
- return angle::Result::Continue();
+ return angle::Result::Continue;
}
// We assume the buffer is completely full of the same kind of data and convert
@@ -190,7 +190,7 @@
// Bytes usable for vertex data.
GLint64 bytes = srcBuffer->getSize() - binding.getOffset();
if (bytes < srcFormatSize)
- return angle::Result::Continue();
+ return angle::Result::Continue;
// Count the last vertex. It may occupy less than a full stride.
size_t numVertices = 1;
@@ -217,7 +217,7 @@
mCurrentArrayBuffers[attribIndex]->getBuffer().getHandle();
mCurrentArrayBufferConversionCanRelease[attribIndex] = true;
- return angle::Result::Continue();
+ return angle::Result::Continue;
}
void VertexArrayVk::ensureConversionReleased(RendererVk *renderer, size_t attribIndex)
@@ -311,7 +311,7 @@
contextVk->invalidateVertexAndIndexBuffers();
}
- return angle::Result::Continue();
+ return angle::Result::Continue;
}
angle::Result VertexArrayVk::syncDirtyAttrib(ContextVk *contextVk,
@@ -344,7 +344,7 @@
ANGLE_TRY(convertVertexBuffer(contextVk, bufferVk, binding, attribIndex));
- releaseConversion = false;
+ releaseConversion = false;
}
else
{
@@ -380,7 +380,7 @@
if (releaseConversion)
ensureConversionReleased(renderer, attribIndex);
- return angle::Result::Continue();
+ return angle::Result::Continue;
}
void VertexArrayVk::getPackedInputDescriptions(vk::GraphicsPipelineDesc *pipelineDesc)
@@ -494,7 +494,7 @@
mCurrentArrayBuffers[attribIndex]->getBuffer().getHandle();
}
- return angle::Result::Continue();
+ return angle::Result::Continue;
}
angle::Result VertexArrayVk::handleLineLoop(ContextVk *contextVk,
@@ -533,7 +533,7 @@
// both calls.
mLineLoopBufferFirstIndex.reset();
mLineLoopBufferLastIndex.reset();
- return angle::Result::Continue();
+ return angle::Result::Continue;
}
// Note: Vertex indexes can be arbitrarily large.
@@ -552,7 +552,7 @@
mLineLoopBufferLastIndex = lastVertex;
}
- return angle::Result::Continue();
+ return angle::Result::Continue;
}
angle::Result VertexArrayVk::updateIndexTranslation(ContextVk *contextVk,
@@ -635,7 +635,7 @@
ANGLE_TRY(bufferVk->unmapImpl(contextVk));
}
- return angle::Result::Continue();
+ return angle::Result::Continue;
}
void VertexArrayVk::updateDefaultAttrib(RendererVk *renderer,