From 27628cff000b2fbbd29865ae18ca159d4c0fdb3b Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Wed, 15 Jun 2016 14:06:23 +1200 Subject: layers: use getFenceNode in decrementResources Change-Id: I8351405299f2f109489fdddfc111412164aded77 Signed-off-by: Chris Forbes --- layers/core_validation.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'layers/core_validation.cpp') 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> 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(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(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) { -- cgit v1.2.3