diff options
| author | Chris Forbes <chrisforbes@google.com> | 2016-06-15 14:06:23 +1200 |
|---|---|---|
| committer | Mark Lobodzinski <mark@lunarg.com> | 2016-06-20 15:48:32 -0600 |
| commit | 27628cff000b2fbbd29865ae18ca159d4c0fdb3b (patch) | |
| tree | 5d87b40d8dca2ae666e451ea8f4643f85b204b19 | |
| parent | be30e5771399d7efbaf5f686933b70d86625eb16 (diff) | |
| download | usermoji-27628cff000b2fbbd29865ae18ca159d4c0fdb3b.tar.xz | |
layers: use getFenceNode in decrementResources
Change-Id: I8351405299f2f109489fdddfc111412164aded77
Signed-off-by: Chris Forbes <chrisforbes@google.com>
| -rw-r--r-- | layers/core_validation.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index 74f41c31..6396159f 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -4255,23 +4255,23 @@ static bool decrementResources(layer_data *my_data, uint32_t fenceCount, const V bool skip_call = false; std::vector<std::pair<VkFence, FENCE_NODE *>> fence_pairs; for (uint32_t i = 0; i < fenceCount; ++i) { - auto fence_data = my_data->fenceMap.find(pFences[i]); - if (fence_data == my_data->fenceMap.end() || !fence_data->second.needsSignaled) + auto pFence = getFenceNode(my_data, pFences[i]); + if (!pFence || !pFence->needsSignaled) return skip_call; - fence_data->second.needsSignaled = false; - if (fence_data->second.in_use.load()) { - fence_pairs.push_back(std::make_pair(fence_data->first, &fence_data->second)); - fence_data->second.in_use.fetch_sub(1); - } - decrementResources(my_data, static_cast<uint32_t>(fence_data->second.priorFences.size()), - fence_data->second.priorFences.data()); - for (auto & submission : fence_data->second.submissions) { + pFence->needsSignaled = false; + if (pFence->in_use.load()) { + fence_pairs.emplace_back(pFences[i], pFence); + pFence->in_use.fetch_sub(1); + } + decrementResources(my_data, static_cast<uint32_t>(pFence->priorFences.size()), + pFence->priorFences.data()); + for (auto & submission : pFence->submissions) { decrementResources(my_data, &submission); skip_call |= cleanInFlightCmdBuffer(my_data, submission.cb); removeInFlightCmdBuffer(my_data, submission.cb); } - fence_data->second.submissions.clear(); - fence_data->second.priorFences.clear(); + pFence->submissions.clear(); + pFence->priorFences.clear(); } for (auto fence_pair : fence_pairs) { for (auto queue : fence_pair.second->queues) { |
