Commit 8c361c7f by Jamie Madill Committed by Commit Bot

Vulkan: Remove one API from CommandGraphResource.

'checkResourceInUseAndRefreshDeps' can be implemented using other APIs. This simplifies the API surface in CommandGraphResource. Bug: angleproject:2539 Change-Id: I55350ab352c50961736327a867e8403d3b38506b Reviewed-on: https://chromium-review.googlesource.com/1052070 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarLuc Ferron <lucferron@chromium.org> Reviewed-by: 's avatarFrank Henigman <fjhenigman@chromium.org>
parent 95cce74a
...@@ -190,8 +190,10 @@ vk::Error BufferVk::setDataImpl(ContextVk *contextVk, ...@@ -190,8 +190,10 @@ vk::Error BufferVk::setDataImpl(ContextVk *contextVk,
VkDevice device = contextVk->getDevice(); VkDevice device = contextVk->getDevice();
// Use map when available. // Use map when available.
if (checkResourceInUseAndRefreshDeps(renderer)) if (renderer->isResourceInUse(*this))
{ {
updateQueueSerial(renderer->getCurrentQueueSerial());
vk::StagingBuffer stagingBuffer; vk::StagingBuffer stagingBuffer;
ANGLE_TRY(stagingBuffer.init(contextVk, static_cast<VkDeviceSize>(size), ANGLE_TRY(stagingBuffer.init(contextVk, static_cast<VkDeviceSize>(size),
vk::StagingUsage::Write)); vk::StagingUsage::Write));
......
...@@ -278,23 +278,7 @@ void CommandGraphResource::addReadDependency(CommandGraphResource *readingResour ...@@ -278,23 +278,7 @@ void CommandGraphResource::addReadDependency(CommandGraphResource *readingResour
mCurrentReadingNodes.push_back(readingNode); mCurrentReadingNodes.push_back(readingNode);
} }
bool CommandGraphResource::checkResourceInUseAndRefreshDeps(RendererVk *renderer)
{
if (!renderer->isResourceInUse(*this) ||
(renderer->getCurrentQueueSerial() > mStoredQueueSerial))
{
mCurrentReadingNodes.clear();
mCurrentWritingNode = nullptr;
return false;
}
else
{
return true;
}
}
// CommandGraphNode implementation. // CommandGraphNode implementation.
CommandGraphNode::CommandGraphNode() CommandGraphNode::CommandGraphNode()
: mRenderPassClearValues{}, mHasChildren(false), mVisitedState(VisitedState::Unvisited) : mRenderPassClearValues{}, mHasChildren(false), mVisitedState(VisitedState::Unvisited)
{ {
......
...@@ -73,10 +73,6 @@ class CommandGraphResource ...@@ -73,10 +73,6 @@ class CommandGraphResource
// Sets up dependency relations. 'this' resource is the resource being read. // Sets up dependency relations. 'this' resource is the resource being read.
void addReadDependency(CommandGraphResource *readingResource); void addReadDependency(CommandGraphResource *readingResource);
// Returns false if the resource is not in use, and clears any current read/write nodes.
// TODO(jmadill): Remove this. http://anglebug.com/2539
bool checkResourceInUseAndRefreshDeps(RendererVk *renderer);
private: private:
void onWriteImpl(CommandGraphNode *writingNode, Serial currentSerial); void onWriteImpl(CommandGraphNode *writingNode, Serial currentSerial);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment