layers: Clean up missing checks list for vkCreateBuffer
authorChris Forbes <chrisforbes@google.com>
Wed, 14 Jun 2017 19:38:01 +0000 (12:38 -0700)
committerChris Forbes <chrisf@ijw.co.nz>
Thu, 15 Jun 2017 16:50:14 +0000 (09:50 -0700)
layers/buffer_validation.cpp
layers/vk_validation_error_database.txt

index 5076376..f04f74f 100644 (file)
@@ -2890,10 +2890,7 @@ bool PreCallValidateCreateBuffer(layer_data *device_data, const VkBufferCreateIn
     bool skip = false;
     const debug_report_data *report_data = core_validation::GetReportData(device_data);
 
-    // TODO: Add check for VALIDATION_ERROR_1ec0071e
-    // TODO: Add check for VALIDATION_ERROR_01400728
-    // TODO: Add check for VALIDATION_ERROR_0140072a
-    // TODO: Add check for VALIDATION_ERROR_0140072c
+    // TODO: Add check for VALIDATION_ERROR_1ec0071e        (sparse address space accounting)
 
     if ((pCreateInfo->flags & VK_BUFFER_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__,
@@ -2906,17 +2903,19 @@ bool PreCallValidateCreateBuffer(layer_data *device_data, const VkBufferCreateIn
     if ((pCreateInfo->flags & VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT) && (!GetEnabledFeatures(device_data)->sparseResidencyBuffer)) {
         skip |=
             log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__,
-                    DRAWSTATE_INVALID_FEATURE, "DS",
+                    VALIDATION_ERROR_01400728, "DS",
                     "vkCreateBuffer(): the sparseResidencyBuffer device feature is disabled: Buffers cannot be created with the "
-                    "VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT set.");
+                    "VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT set. %s",
+                    validation_error_map[VALIDATION_ERROR_01400728]);
     }
 
     if ((pCreateInfo->flags & VK_BUFFER_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",
+                    VALIDATION_ERROR_0140072a, "DS",
                     "vkCreateBuffer(): the sparseResidencyAliased device feature is disabled: Buffers cannot be created with the "
-                    "VK_BUFFER_CREATE_SPARSE_ALIASED_BIT set.");
+                    "VK_BUFFER_CREATE_SPARSE_ALIASED_BIT set. %s",
+                    validation_error_map[VALIDATION_ERROR_0140072a]);
     }
     return skip;
 }
index a53b251..8ac0a5e 100644 (file)
@@ -90,8 +90,8 @@ VALIDATION_ERROR_01400720~^~N~^~None~^~vkCreateBuffer~^~VUID-VkBufferCreateInfo-
 VALIDATION_ERROR_01400722~^~Y~^~None~^~vkCreateBuffer~^~VUID-VkBufferCreateInfo-sharingMode-00913~^~core~^~The spec valid usage text states 'If sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a pointer to an array of queueFamilyIndexCount uint32_t values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-sharingMode-00913)~^~
 VALIDATION_ERROR_01400724~^~Y~^~None~^~vkCreateBuffer~^~VUID-VkBufferCreateInfo-sharingMode-00914~^~core~^~The spec valid usage text states 'If sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-sharingMode-00914)~^~
 VALIDATION_ERROR_01400726~^~Y~^~None~^~vkCreateBuffer~^~VUID-VkBufferCreateInfo-flags-00915~^~core~^~The spec valid usage text states 'If the sparse bindings feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_BINDING_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-flags-00915)~^~
-VALIDATION_ERROR_01400728~^~N~^~None~^~vkCreateBuffer~^~VUID-VkBufferCreateInfo-flags-00916~^~core~^~The spec valid usage text states 'If the sparse buffer residency feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-flags-00916)~^~
-VALIDATION_ERROR_0140072a~^~N~^~None~^~vkCreateBuffer~^~VUID-VkBufferCreateInfo-flags-00917~^~core~^~The spec valid usage text states 'If the sparse aliased residency feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_ALIASED_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-flags-00917)~^~
+VALIDATION_ERROR_01400728~^~Y~^~None~^~vkCreateBuffer~^~VUID-VkBufferCreateInfo-flags-00916~^~core~^~The spec valid usage text states 'If the sparse buffer residency feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-flags-00916)~^~
+VALIDATION_ERROR_0140072a~^~Y~^~None~^~vkCreateBuffer~^~VUID-VkBufferCreateInfo-flags-00917~^~core~^~The spec valid usage text states 'If the sparse aliased residency feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_ALIASED_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-flags-00917)~^~
 VALIDATION_ERROR_0140072c~^~Y~^~SparseBindingImageBufferCreate~^~vkCreateBuffer~^~VUID-VkBufferCreateInfo-flags-00918~^~core~^~The spec valid usage text states 'If flags contains VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT, it must also contain VK_BUFFER_CREATE_SPARSE_BINDING_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkBufferCreateInfo-flags-00918)~^~
 VALIDATION_ERROR_0140072e~^~N~^~Unknown~^~vkCreateBuffer~^~VUID-VkBufferCreateInfo-handleTypes-00919~^~(VK_KHX_external_memory+VK_NV_dedicated_allocation)~^~The spec valid usage text states 'If any of the handle types specified in VkExternalMemoryImageCreateInfoKHX::handleTypes requires dedicated allocation, as reported by vkGetPhysicalDeviceExternalBufferPropertiesKHX in VkExternalBufferPropertiesKHX::externalMemoryProperties::externalMemoryFeatures, the pNext chain must contain an instance of VkDedicatedAllocationBufferCreateInfoNV with its dedicatedAllocation field set to VK_TRUE.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkBufferCreateInfo-handleTypes-00919)~^~
 VALIDATION_ERROR_01400730~^~N~^~Unknown~^~vkCreateBuffer~^~VUID-VkBufferCreateInfo-pNext-00920~^~(VK_KHX_external_memory)~^~The spec valid usage text states 'If the pNext extension contains an instance of VkExternalMemoryBufferCreateInfoKHX, its handleTypes member must only contain bits that are also in VkExternalBufferPropertiesKHX::externalMemoryProperties.pname:compatibleHandleTypes, as returned by vkGetPhysicalDeviceExternalBufferPropertiesKHX with pExternalBufferInfo->handleType equal to any one of the handle types specified in VkExternalMemoryBufferCreateInfoKHX::handleTypes' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VUID-VkBufferCreateInfo-pNext-00920)~^~