From b0fe4a6480b366e3c4b4f77d94a5ee3e18a6c859 Mon Sep 17 00:00:00 2001 From: Tobin Ehlis Date: Wed, 28 Sep 2016 07:12:28 -0600 Subject: layers: Add binding between cmd buffer and bufferView For a texel descriptor update, add binding between bufferView and the command buffer as well as between underlying buffer and command buffer. --- layers/core_validation.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'layers/core_validation.cpp') diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index bf6d957e..1cc6887f 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -621,6 +621,19 @@ void AddCommandBufferBindingBuffer(const layer_data *dev_data, GLOBAL_CB_NODE *c buff_node->cb_bindings.insert(cb_node); } +// Create binding link between given buffer view node and its buffer with command buffer node +void AddCommandBufferBindingBufferView(const layer_data *dev_data, GLOBAL_CB_NODE *cb_node, BUFFER_VIEW_STATE *view_state) { + // First add bindings for bufferView + view_state->cb_bindings.insert(cb_node); + cb_node->object_bindings.insert( + {reinterpret_cast(view_state->buffer_view), VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT}); + auto buffer_node = getBufferNode(dev_data, view_state->create_info.buffer); + // Add bindings for buffer within bufferView + if (buffer_node) { + AddCommandBufferBindingBuffer(dev_data, cb_node, buffer_node); + } +} + // For every mem obj bound to particular CB, free bindings related to that CB static void clear_cmd_buf_and_mem_references(layer_data *dev_data, GLOBAL_CB_NODE *pCBNode) { if (pCBNode) { -- cgit v1.2.3