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.h b/src/libANGLE/renderer/vulkan/CommandGraph.h
index 914dadd..93a54d7 100644
--- a/src/libANGLE/renderer/vulkan/CommandGraph.h
+++ b/src/libANGLE/renderer/vulkan/CommandGraph.h
@@ -31,7 +31,6 @@
CommandGraphResource();
virtual ~CommandGraphResource();
- void updateQueueSerial(Serial queueSerial);
Serial getQueueSerial() const;
// Allocates a write node via getNewWriteNode and returns a started command buffer.
@@ -55,11 +54,9 @@
const std::vector<VkClearValue> &clearValues,
CommandBuffer **commandBufferOut) const;
- // Checks if we're in a RenderPass.
- bool hasStartedRenderPass() const;
-
- // Returns a started command buffer if we've already called beginRenderPass.
- void appendToRenderPass(CommandBuffer **commandBufferOut) const;
+ // Checks if we're in a RenderPass, returning true if so. Updates serial internally.
+ // Returns the started command buffer in commandBufferOut.
+ bool appendToStartedRenderPass(RendererVk *renderer, CommandBuffer **commandBufferOut);
// Accessor for RenderPass RenderArea.
const gl::Rectangle &getRenderPassRenderArea() const;
@@ -82,6 +79,13 @@
// Allocates a new write node and calls onWriteResource internally.
CommandGraphNode *getNewWritingNode(RendererVk *renderer);
+ // Checks if we're in a RenderPass without children.
+ bool hasStartedRenderPass() const;
+
+ // Updates the in-use serial tracked for this resource. Will clear dependencies if the resource
+ // was not used in this set of command nodes.
+ void updateQueueSerial(Serial queueSerial);
+
Serial mStoredQueueSerial;
std::vector<CommandGraphNode *> mCurrentReadingNodes;
CommandGraphNode *mCurrentWritingNode;