From: Tobin Ehlis Date: Wed, 9 Aug 2017 15:10:37 +0000 (-0600) Subject: layers:Fix consecutive binding updates X-Git-Tag: upstream/1.1.92~846 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2567a3589fadccfabd4e75d0772eb5c79c497324;p=platform%2Fupstream%2FVulkan-Tools.git layers:Fix consecutive binding updates Fixes #1992 When we're wrapping a descriptor update for consecutive bindings, fix code so that index into update array consistently increases. --- diff --git a/layers/descriptor_sets.cpp b/layers/descriptor_sets.cpp index 3f159b2..693b3ae 100644 --- a/layers/descriptor_sets.cpp +++ b/layers/descriptor_sets.cpp @@ -604,12 +604,13 @@ void cvdescriptorset::DescriptorSet::PerformWriteUpdate(const VkWriteDescriptorS auto descriptors_remaining = update->descriptorCount; auto binding_being_updated = update->dstBinding; auto offset = update->dstArrayElement; + uint32_t update_index = 0; while (descriptors_remaining) { uint32_t update_count = std::min(descriptors_remaining, GetDescriptorCountFromBinding(binding_being_updated)); auto global_idx = p_layout_->GetGlobalStartIndexFromBinding(binding_being_updated) + offset; // Loop over the updates for a single binding at a time - for (uint32_t di = 0; di < update_count; ++di) { - descriptors_[global_idx + di]->WriteUpdate(update, di); + for (uint32_t di = 0; di < update_count; ++di, ++update_index) { + descriptors_[global_idx + di]->WriteUpdate(update, update_index); } // Roll over to next binding in case of consecutive update descriptors_remaining -= update_count;