diff options
| author | Tobin Ehlis <tobine@google.com> | 2016-10-25 20:56:47 -0600 |
|---|---|---|
| committer | Tobin Ehlis <tobine@google.com> | 2016-10-25 21:06:32 -0600 |
| commit | 1f732cb40d1a752aa1ebf3c3eb4c1ae7a9c2a04a (patch) | |
| tree | 3cb450a06367b3e5bd071b74781e9c319771158d | |
| parent | d185791e55f8d35eb88e273af9905365d54adac5 (diff) | |
| download | usermoji-1f732cb40d1a752aa1ebf3c3eb4c1ae7a9c2a04a.tar.xz | |
layers:CreateDescriptorSetLayout cleanup
Streamline duplicate binding check, use [] operator instead of emplace,
remove dead comment and add new comment.
| -rw-r--r-- | layers/core_validation.cpp | 2 | ||||
| -rw-r--r-- | layers/descriptor_sets.cpp | 5 |
2 files changed, 3 insertions, 4 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index c2b78c08..4e3c5f31 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -6723,7 +6723,7 @@ static bool PreCallValidateCreateDescriptorSetLayout(layer_data *dev_data, const static void PostCallRecordCreateDescriptorSetLayout(layer_data *dev_data, const VkDescriptorSetLayoutCreateInfo *create_info, VkDescriptorSetLayout set_layout) { - // TODOSC : Capture layout bindings set + // TODO: Convert this to unique_ptr to avoid leaks dev_data->descriptorSetLayoutMap[set_layout] = new cvdescriptorset::DescriptorSetLayout(create_info, set_layout); } diff --git a/layers/descriptor_sets.cpp b/layers/descriptor_sets.cpp index 52c0b339..500957c0 100644 --- a/layers/descriptor_sets.cpp +++ b/layers/descriptor_sets.cpp @@ -30,7 +30,7 @@ cvdescriptorset::DescriptorSetLayout::DescriptorSetLayout(const VkDescriptorSetL uint32_t global_index = 0; for (uint32_t i = 0; i < binding_count_; ++i) { descriptor_count_ += p_create_info->pBindings[i].descriptorCount; - binding_to_index_map_.emplace(p_create_info->pBindings[i].binding, i); + binding_to_index_map_[p_create_info->pBindings[i].binding] = i; binding_to_global_start_index_map_[p_create_info->pBindings[i].binding] = global_index; global_index += p_create_info->pBindings[i].descriptorCount ? p_create_info->pBindings[i].descriptorCount - 1 : 0; binding_to_global_end_index_map_[p_create_info->pBindings[i].binding] = global_index; @@ -55,12 +55,11 @@ bool cvdescriptorset::DescriptorSetLayout::ValidateCreateInfo(debug_report_data bool skip = false; std::unordered_set<uint32_t> bindings; for (uint32_t i = 0; i < create_info->bindingCount; ++i) { - if (bindings.count(create_info->pBindings[i].binding)) { + if (!bindings.insert(create_info->pBindings[i].binding).second) { skip |= log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, VALIDATION_ERROR_02345, "DS", "duplicated binding number in VkDescriptorSetLayoutBinding. %s", validation_error_map[VALIDATION_ERROR_02345]); } - bindings.insert(create_info->pBindings[i].binding); } return skip; } |
