From 7eeae36c5a4bce6ea199bd4c87550088bf80e2af Mon Sep 17 00:00:00 2001 From: Petr Kraus Date: Tue, 13 Mar 2018 12:31:39 +0100 Subject: layers: Move sparseBinding feature vs flag check --- layers/buffer_validation.cpp | 8 -------- layers/parameter_validation_utils.cpp | 8 ++++++++ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/layers/buffer_validation.cpp b/layers/buffer_validation.cpp index 518bcfd8..ebf99a87 100644 --- a/layers/buffer_validation.cpp +++ b/layers/buffer_validation.cpp @@ -884,14 +884,6 @@ bool PreCallValidateCreateImage(layer_data *device_data, const VkImageCreateInfo validation_error_map[VALIDATION_ERROR_09e0078e]); } - if ((pCreateInfo->flags & VK_IMAGE_CREATE_SPARSE_BINDING_BIT) && (!GetEnabledFeatures(device_data)->sparseBinding)) { - skip |= log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, - VALIDATION_ERROR_09e00792, "DS", - "vkCreateImage(): the sparseBinding device feature is disabled: Images cannot be created with the " - "VK_IMAGE_CREATE_SPARSE_BINDING_BIT set. %s", - validation_error_map[VALIDATION_ERROR_09e00792]); - } - if ((pCreateInfo->flags & VK_IMAGE_CREATE_SPARSE_ALIASED_BIT) && (!GetEnabledFeatures(device_data)->sparseResidencyAliased)) { skip |= log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, DRAWSTATE_INVALID_FEATURE, "DS", diff --git a/layers/parameter_validation_utils.cpp b/layers/parameter_validation_utils.cpp index bcc4a05d..6bebe874 100644 --- a/layers/parameter_validation_utils.cpp +++ b/layers/parameter_validation_utils.cpp @@ -984,6 +984,14 @@ bool pv_vkCreateImage(VkDevice device, const VkImageCreateInfo *pCreateInfo, con validation_error_map[VALIDATION_ERROR_09e0077c]); } + if ((pCreateInfo->flags & VK_IMAGE_CREATE_SPARSE_BINDING_BIT) && (!device_data->physical_device_features.sparseBinding)) { + skip |= log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, VK_NULL_HANDLE, + __LINE__, VALIDATION_ERROR_09e00792, LayerName, + "vkCreateImage(): pCreateInfo->flags contains VK_IMAGE_CREATE_SPARSE_BINDING_BIT, but the " + "VkPhysicalDeviceFeatures::sparseBinding feature is disabled. %s", + validation_error_map[VALIDATION_ERROR_09e00792]); + } + // If flags contains VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, it must also contain // VK_IMAGE_CREATE_SPARSE_BINDING_BIT if (((pCreateInfo->flags & (VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT | VK_IMAGE_CREATE_SPARSE_ALIASED_BIT)) != 0) && -- cgit v1.2.3