From 25fa06354defdb2e38535214dbd11c28f18997e9 Mon Sep 17 00:00:00 2001 From: Tobin Ehlis Date: Wed, 6 Jul 2016 08:36:19 -0600 Subject: layers: Migrate to validateImageUsageFlags function At ImageView creation time use validateImageUsageFlags function that avoids an additional look-up for IMAGE_NODE. Kill previous validate_image_usage_flags() function. --- layers/core_validation.cpp | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) (limited to 'layers/core_validation.cpp') diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index 65173daa..43834bb5 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -396,20 +396,6 @@ static bool validate_usage_flags(layer_data *my_data, VkFlags actual, VkFlags de return skip_call; } -// Helper function to validate usage flags for images -// Pulls image info and then sends actual vs. desired usage off to helper above where -// an error will be flagged if usage is not correct -static bool validate_image_usage_flags(layer_data *dev_data, VkImage image, VkFlags desired, VkBool32 strict, - char const *func_name, char const *usage_string) { - bool skip_call = false; - auto const image_node = getImageNode(dev_data, image); - if (image_node) { - skip_call = validate_usage_flags(dev_data, image_node->createInfo.usage, desired, strict, (uint64_t)image, - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, "image", func_name, usage_string); - } - return skip_call; -} - // Helper function to validate usage flags for buffers // For given buffer_node send actual vs. desired usage off to helper above where // an error will be flagged if usage is not correct @@ -5733,11 +5719,11 @@ static void ResolveRemainingLevelsLayers(layer_data *dev_data, uint32_t *levels, static bool PreCallValidateCreateImageView(layer_data *dev_data, const VkImageViewCreateInfo *pCreateInfo) { bool skip_call = false; - skip_call |= validate_image_usage_flags(dev_data, pCreateInfo->image, - VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_STORAGE_BIT | - VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, - false, "vkCreateImageView()", "VK_IMAGE_USAGE_[SAMPLED|STORAGE|COLOR_ATTACHMENT]_BIT"); IMAGE_NODE *image_node = getImageNode(dev_data, pCreateInfo->image); + skip_call |= validateImageUsageFlags(dev_data, image_node, + VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_STORAGE_BIT | + VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, + false, "vkCreateImageView()", "VK_IMAGE_USAGE_[SAMPLED|STORAGE|COLOR_ATTACHMENT]_BIT"); // If this isn't a sparse image, it needs to have memory backing it at CreateImageView time if (0 == (static_cast(image_node->createInfo.flags) & VK_IMAGE_CREATE_SPARSE_BINDING_BIT)) { if (MEMTRACKER_SWAP_CHAIN_IMAGE_KEY != image_node->mem) { -- cgit v1.2.3