Vulkan: Make Resource's updateSerial private.
This simplifies the API from the calling resource classes. This method
is called internally instead. beginWriteResource and
appendWriteResource both call updateSerial internally.
Additionally this removes hasStartedRenderPass and instead returns a
boolean from appendToStartedRenderPass indicating success.
Bug: angleproject:2539
Change-Id: Idcf72e6a80dde90e83dabc64644051bb536c6b12
Reviewed-on: https://chromium-review.googlesource.com/1066554
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/CommandGraph.cpp b/src/libANGLE/renderer/vulkan/CommandGraph.cpp
index c6420e8..e9c20d4 100644
--- a/src/libANGLE/renderer/vulkan/CommandGraph.cpp
+++ b/src/libANGLE/renderer/vulkan/CommandGraph.cpp
@@ -179,6 +179,8 @@
Error CommandGraphResource::appendWriteResource(RendererVk *renderer,
CommandBuffer **commandBufferOut)
{
+ updateQueueSerial(renderer->getCurrentQueueSerial());
+
if (!hasChildlessWritingNode())
{
return beginWriteResource(renderer, commandBufferOut);
@@ -198,10 +200,19 @@
return NoError();
}
-void CommandGraphResource::appendToRenderPass(class CommandBuffer **commandBufferOut) const
+bool CommandGraphResource::appendToStartedRenderPass(RendererVk *renderer,
+ CommandBuffer **commandBufferOut)
{
- ASSERT(hasStartedRenderPass());
- *commandBufferOut = mCurrentWritingNode->getInsideRenderPassCommands();
+ updateQueueSerial(renderer->getCurrentQueueSerial());
+ if (hasStartedRenderPass())
+ {
+ *commandBufferOut = mCurrentWritingNode->getInsideRenderPassCommands();
+ return true;
+ }
+ else
+ {
+ return false;
+ }
}
bool CommandGraphResource::hasStartedRenderPass() const