From 43da0bd4137df812a76b7f1488f641a4c8299f35 Mon Sep 17 00:00:00 2001 From: Tobin Ehlis Date: Wed, 14 Sep 2016 08:12:08 -0600 Subject: layers: Update BufferView state tracking Create BUFFER_VIEW_STATE class to hold VkBufferViewCreateInfo and update related state tracking. This class derives from BASE_NODE in preparation for tracking in_use for BufferViews consistent to other object in_use tracking. --- layers/descriptor_sets.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'layers/descriptor_sets.cpp') diff --git a/layers/descriptor_sets.cpp b/layers/descriptor_sets.cpp index 79d9c286..df5dac29 100644 --- a/layers/descriptor_sets.cpp +++ b/layers/descriptor_sets.cpp @@ -498,9 +498,9 @@ uint32_t cvdescriptorset::DescriptorSet::GetStorageUpdates(const std::mapGetDescriptorCountFromBinding(binding); ++i) { if (descriptors_[start_idx + i]->updated) { auto bufferview = static_cast(descriptors_[start_idx + i].get())->GetBufferView(); - auto bv_info = getBufferViewInfo(device_data_, bufferview); - if (bv_info) { - buffer_set->insert(bv_info->buffer); + auto bv_state = getBufferViewState(device_data_, bufferview); + if (bv_state) { + buffer_set->insert(bv_state->create_info.buffer); num_updates++; } } @@ -972,9 +972,9 @@ void cvdescriptorset::TexelDescriptor::CopyUpdate(const Descriptor *src) { } void cvdescriptorset::TexelDescriptor::BindCommandBuffer(const core_validation::layer_data *dev_data, GLOBAL_CB_NODE *cb_node) { - auto bv_info = getBufferViewInfo(dev_data, buffer_view_); - if (bv_info) { - auto buffer_node = getBufferNode(dev_data, bv_info->buffer); + auto bv_state = getBufferViewState(dev_data, buffer_view_); + if (bv_state) { + auto buffer_node = getBufferNode(dev_data, bv_state->create_info.buffer); if (buffer_node) core_validation::AddCommandBufferBindingBuffer(dev_data, cb_node, buffer_node); } @@ -1273,14 +1273,14 @@ bool cvdescriptorset::DescriptorSet::VerifyWriteUpdateContents(const VkWriteDesc case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER: { for (uint32_t di = 0; di < update->descriptorCount; ++di) { auto buffer_view = update->pTexelBufferView[di]; - auto bv_info = getBufferViewInfo(device_data_, buffer_view); - if (!bv_info) { + auto bv_state = getBufferViewState(device_data_, buffer_view); + if (!bv_state) { std::stringstream error_str; error_str << "Attempted write update to texel buffer descriptor with invalid buffer view: " << buffer_view; *error = error_str.str(); return false; } - auto buffer = bv_info->buffer; + auto buffer = bv_state->create_info.buffer; if (!ValidateBufferUsage(getBufferNode(device_data_, buffer), update->descriptorType, error)) { std::stringstream error_str; error_str << "Attempted write update to texel buffer descriptor failed due to: " << error->c_str(); @@ -1374,14 +1374,14 @@ bool cvdescriptorset::DescriptorSet::VerifyCopyUpdateContents(const VkCopyDescri case TexelBuffer: { for (uint32_t di = 0; di < update->descriptorCount; ++di) { auto buffer_view = static_cast(src_set->descriptors_[index + di].get())->GetBufferView(); - auto bv_info = getBufferViewInfo(device_data_, buffer_view); - if (!bv_info) { + auto bv_state = getBufferViewState(device_data_, buffer_view); + if (!bv_state) { std::stringstream error_str; error_str << "Attempted copy update to texel buffer descriptor with invalid buffer view: " << buffer_view; *error = error_str.str(); return false; } - auto buffer = bv_info->buffer; + auto buffer = bv_state->create_info.buffer; if (!ValidateBufferUsage(getBufferNode(device_data_, buffer), type, error)) { std::stringstream error_str; error_str << "Attempted copy update to texel buffer descriptor failed due to: " << error->c_str(); -- cgit v1.2.3