Remove uses of DrawCallParams.
Packing and referencing this structure was causing unnecessary draw
call overhead. This improves performance on all the back-ends. Impacts
the GL back-end the most.
In total this patch series reduces overhead by up to 5%.
Bug: angleproject:2933
Change-Id: Ief416ab874e481baf960d02965978a311214a146
Reviewed-on: https://chromium-review.googlesource.com/c/1299477
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/ProgramVk.cpp b/src/libANGLE/renderer/vulkan/ProgramVk.cpp
index 2a26b97..705f634 100644
--- a/src/libANGLE/renderer/vulkan/ProgramVk.cpp
+++ b/src/libANGLE/renderer/vulkan/ProgramVk.cpp
@@ -131,10 +131,9 @@
return angle::Result::Continue();
}
-bool UseLineRaster(const ContextVk *contextVk, const gl::DrawCallParams &drawCallParams)
+bool UseLineRaster(const ContextVk *contextVk, gl::PrimitiveMode mode)
{
- return contextVk->getFeatures().basicGLLineRasterization &&
- gl::IsLineMode(drawCallParams.mode());
+ return contextVk->getFeatures().basicGLLineRasterization && gl::IsLineMode(mode);
}
} // anonymous namespace
@@ -742,12 +741,12 @@
}
angle::Result ProgramVk::initShaders(ContextVk *contextVk,
- const gl::DrawCallParams &drawCallParams,
+ gl::PrimitiveMode mode,
const vk::ShaderAndSerial **vertexShaderAndSerialOut,
const vk::ShaderAndSerial **fragmentShaderAndSerialOut,
const vk::PipelineLayout **pipelineLayoutOut)
{
- if (UseLineRaster(contextVk, drawCallParams))
+ if (UseLineRaster(contextVk, mode))
{
ANGLE_TRY(mLineRasterShaderInfo.getShaders(contextVk, mVertexSource, mFragmentSource, true,
vertexShaderAndSerialOut,
@@ -948,7 +947,6 @@
}
angle::Result ProgramVk::updateDescriptorSets(ContextVk *contextVk,
- const gl::DrawCallParams &drawCallParams,
vk::CommandBuffer *commandBuffer)
{
// Can probably use better dirty bits here.