From 8467279d2b5cd6278c26b94fbe87d8499bb0e6b5 Mon Sep 17 00:00:00 2001 From: John Zulauf Date: Fri, 22 Dec 2017 17:14:54 -0700 Subject: layers: Add validation caching for draw/dispatch Validation of descriptors at draw or dispatch time is now cached, s.t. without changes that affect validity, validation checks are not repeated. Change-Id: I713662d00813989bf4441921456afca431d730d7 --- layers/buffer_validation.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'layers/buffer_validation.cpp') diff --git a/layers/buffer_validation.cpp b/layers/buffer_validation.cpp index 05f2f405..112972f0 100644 --- a/layers/buffer_validation.cpp +++ b/layers/buffer_validation.cpp @@ -228,6 +228,7 @@ void SetLayout(layer_data *device_data, GLOBAL_CB_NODE *pCB, ImageSubresourcePai void SetImageLayout(layer_data *device_data, GLOBAL_CB_NODE *cb_node, const IMAGE_STATE *image_state, VkImageSubresourceRange image_subresource_range, const VkImageLayout &layout) { assert(image_state); + cb_node->image_layout_change_count++; // Change the version of this data to force revalidation for (uint32_t level_index = 0; level_index < image_subresource_range.levelCount; ++level_index) { uint32_t level = image_subresource_range.baseMipLevel + level_index; for (uint32_t layer_index = 0; layer_index < image_subresource_range.layerCount; layer_index++) { @@ -385,6 +386,7 @@ void TransitionImageAspectLayout(layer_data *device_data, GLOBAL_CB_NODE *pCB, c VkImageSubresource sub = {aspect, level, layer}; IMAGE_CMD_BUF_LAYOUT_NODE node; if (!FindCmdBufLayout(device_data, pCB, mem_barrier->image, sub, node)) { + pCB->image_layout_change_count++; // Change the version of this data to force revalidation SetLayout(device_data, pCB, mem_barrier->image, sub, IMAGE_CMD_BUF_LAYOUT_NODE(mem_barrier->oldLayout, mem_barrier->newLayout)); return; -- cgit v1.2.3