Vulkan: Optimize ContextVk::setupDraw.
This improves performance significantly in the Vulkan CPU overhead
test.
Bug: angleproject:2786
Change-Id: I911bc66a6b2d11dd3848ffa90927b314aeadfc24
Reviewed-on: https://chromium-review.googlesource.com/1194301
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/FramebufferVk.cpp b/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
index 0b72091..e1ad661 100644
--- a/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
+++ b/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
@@ -1087,6 +1087,12 @@
return angle::Result::Continue();
}
+ return startNewRenderPass(contextVk, commandBufferOut);
+}
+
+angle::Result FramebufferVk::startNewRenderPass(ContextVk *contextVk,
+ vk::CommandBuffer **commandBufferOut)
+{
vk::Framebuffer *framebuffer = nullptr;
ANGLE_TRY(getFramebuffer(contextVk, &framebuffer));
@@ -1120,7 +1126,6 @@
gl::Rectangle renderArea =
gl::Rectangle(0, 0, mState.getDimensions().width, mState.getDimensions().height);
- *modeOut = vk::RecordingMode::Start;
return beginRenderPass(contextVk, *framebuffer, renderArea, mRenderPassDesc.value(),
attachmentClearValues, commandBufferOut);
}