aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Kraus <petr_kraus@email.cz>2017-05-04 17:59:44 +0200
committerMark Lobodzinski <mark@lunarg.com>2017-05-05 07:58:26 -0600
commit8f1546f62fb427a5ff1869dfb78e909c53c2e5a6 (patch)
tree8ba53bb88e381ba7c1e584e153d882abcd388447
parentbc78a926f8d62a2cabe19edcccab0f1e71a3f9a2 (diff)
downloadusermoji-8f1546f62fb427a5ff1869dfb78e909c53c2e5a6.tar.xz
layers: Correct error db of VkDeviceQueueCreateInfo
- validation cmd is vkCreateDevice not Destroy - non-implicit checks are implemented, just didn't use the unique codes
-rw-r--r--layers/core_validation.cpp16
-rw-r--r--layers/core_validation_error_enums.h1
-rw-r--r--layers/vk_validation_error_database.txt16
3 files changed, 17 insertions, 16 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp
index e82b358b..d1afb90d 100644
--- a/layers/core_validation.cpp
+++ b/layers/core_validation.cpp
@@ -3476,8 +3476,9 @@ static bool ValidateRequestedQueueFamilyProperties(instance_layer_data *instance
} else if (QUERY_DETAILS != physical_device_state->vkGetPhysicalDeviceQueueFamilyPropertiesState) {
// TODO: This is not called out as an invalid use in the spec so make more informative recommendation.
skip |= log_msg(instance_data->report_data, VK_DEBUG_REPORT_WARNING_BIT_EXT,
- VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT, 0, __LINE__, DEVLIMITS_INVALID_QUEUE_CREATE_REQUEST, "DL",
- "Call to vkCreateDevice() w/o first calling vkGetPhysicalDeviceQueueFamilyProperties().");
+ VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT, 0, __LINE__, VALIDATION_ERROR_00054, "DL",
+ "Call to vkCreateDevice() w/o first calling vkGetPhysicalDeviceQueueFamilyProperties(). %s",
+ validation_error_map[VALIDATION_ERROR_00054]);
} else {
// Check that the requested queue properties are valid
for (uint32_t i = 0; i < create_info->queueCreateInfoCount; i++) {
@@ -3485,17 +3486,18 @@ static bool ValidateRequestedQueueFamilyProperties(instance_layer_data *instance
if (requestedIndex >= physical_device_state->queue_family_properties.size()) {
skip |= log_msg(
instance_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT, 0,
- __LINE__, DEVLIMITS_INVALID_QUEUE_CREATE_REQUEST, "DL",
- "Invalid queue create request in vkCreateDevice(). Invalid queueFamilyIndex %u requested.", requestedIndex);
+ __LINE__, VALIDATION_ERROR_00054, "DL",
+ "Invalid queue create request in vkCreateDevice(). Invalid queueFamilyIndex %u requested. %s", requestedIndex,
+ validation_error_map[VALIDATION_ERROR_00054]);
} else if (create_info->pQueueCreateInfos[i].queueCount >
physical_device_state->queue_family_properties[requestedIndex].queueCount) {
skip |= log_msg(instance_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT, 0, __LINE__,
- DEVLIMITS_INVALID_QUEUE_CREATE_REQUEST, "DL",
+ VALIDATION_ERROR_02055, "DL",
"Invalid queue create request in vkCreateDevice(). QueueFamilyIndex %u only has %u queues, but "
- "requested queueCount is %u.",
+ "requested queueCount is %u. %s",
requestedIndex, physical_device_state->queue_family_properties[requestedIndex].queueCount,
- create_info->pQueueCreateInfos[i].queueCount);
+ create_info->pQueueCreateInfos[i].queueCount, validation_error_map[VALIDATION_ERROR_02055]);
}
}
}
diff --git a/layers/core_validation_error_enums.h b/layers/core_validation_error_enums.h
index 8875ddb9..ac82b9b4 100644
--- a/layers/core_validation_error_enums.h
+++ b/layers/core_validation_error_enums.h
@@ -193,7 +193,6 @@ enum DEV_LIMITS_ERROR {
DEVLIMITS_MUST_QUERY_COUNT,
DEVLIMITS_INVALID_FEATURE_REQUESTED,
DEVLIMITS_COUNT_MISMATCH,
- DEVLIMITS_INVALID_QUEUE_CREATE_REQUEST,
};
enum IMAGE_ERROR {
diff --git a/layers/vk_validation_error_database.txt b/layers/vk_validation_error_database.txt
index 5b3997de..179a6d9c 100644
--- a/layers/vk_validation_error_database.txt
+++ b/layers/vk_validation_error_database.txt
@@ -56,12 +56,12 @@ VALIDATION_ERROR_00050~^~Y~^~Unknown~^~vkDestroyDevice~^~For more information re
VALIDATION_ERROR_00051~^~Y~^~Unknown~^~vkDestroyDevice~^~For more information refer to Vulkan Spec Section '4.2.4. Device Destruction' which states 'If no VkAllocationCallbacks were provided when device was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkDestroyDevice)~^~
VALIDATION_ERROR_00052~^~Y~^~None~^~vkDestroyDevice~^~For more information refer to Vulkan Spec Section '4.2.4. Device Destruction' which states 'If device is not NULL, device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkDestroyDevice)~^~implicit
VALIDATION_ERROR_00053~^~N~^~Unknown~^~vkDestroyDevice~^~For more information refer to Vulkan Spec Section '4.2.4. Device Destruction' which states 'If pAllocator is not NULL, pAllocator must be a pointer to a valid VkAllocationCallbacks structure' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkDestroyDevice)~^~implicit
-VALIDATION_ERROR_00054~^~N~^~Unknown~^~vkDestroyDevice~^~For more information refer to Vulkan Spec Section '4.3.2. Queue Creation' which states 'queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceQueueCreateInfo)~^~
-VALIDATION_ERROR_00055~^~N~^~Unknown~^~vkDestroyDevice~^~For more information refer to Vulkan Spec Section '4.3.2. Queue Creation' which states 'sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceQueueCreateInfo)~^~implicit, TBD in parameter validation layer.
-VALIDATION_ERROR_00056~^~N~^~Unknown~^~vkDestroyDevice~^~For more information refer to Vulkan Spec Section '4.3.2. Queue Creation' which states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceQueueCreateInfo)~^~implicit, TBD in parameter validation layer.
-VALIDATION_ERROR_00057~^~N~^~Unknown~^~vkDestroyDevice~^~For more information refer to Vulkan Spec Section '4.3.2. Queue Creation' which states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceQueueCreateInfo)~^~implicit, TBD in parameter validation layer.
-VALIDATION_ERROR_00058~^~N~^~Unknown~^~vkDestroyDevice~^~For more information refer to Vulkan Spec Section '4.3.2. Queue Creation' which states 'pQueuePriorities must be a pointer to an array of queueCount float values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceQueueCreateInfo)~^~implicit
-VALIDATION_ERROR_00059~^~N~^~Unknown~^~vkDestroyDevice~^~For more information refer to Vulkan Spec Section '4.3.2. Queue Creation' which states 'queueCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceQueueCreateInfo)~^~implicit
+VALIDATION_ERROR_00054~^~Y~^~Unknown~^~vkCreateDevice~^~For more information refer to Vulkan Spec Section '4.3.2. Queue Creation' which states 'queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceQueueCreateInfo)~^~
+VALIDATION_ERROR_00055~^~N~^~Unknown~^~vkCreateDevice~^~For more information refer to Vulkan Spec Section '4.3.2. Queue Creation' which states 'sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceQueueCreateInfo)~^~implicit, TBD in parameter validation layer.
+VALIDATION_ERROR_00056~^~N~^~Unknown~^~vkCreateDevice~^~For more information refer to Vulkan Spec Section '4.3.2. Queue Creation' which states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceQueueCreateInfo)~^~implicit, TBD in parameter validation layer.
+VALIDATION_ERROR_00057~^~N~^~Unknown~^~vkCreateDevice~^~For more information refer to Vulkan Spec Section '4.3.2. Queue Creation' which states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceQueueCreateInfo)~^~implicit, TBD in parameter validation layer.
+VALIDATION_ERROR_00058~^~N~^~Unknown~^~vkCreateDevice~^~For more information refer to Vulkan Spec Section '4.3.2. Queue Creation' which states 'pQueuePriorities must be a pointer to an array of queueCount float values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceQueueCreateInfo)~^~implicit
+VALIDATION_ERROR_00059~^~N~^~Unknown~^~vkCreateDevice~^~For more information refer to Vulkan Spec Section '4.3.2. Queue Creation' which states 'queueCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceQueueCreateInfo)~^~implicit
VALIDATION_ERROR_00060~^~N~^~Unknown~^~vkGetDeviceQueue~^~For more information refer to Vulkan Spec Section '4.3.2. Queue Creation' which states 'queueFamilyIndex must be one of the queue family indices specified when device was created, via the VkDeviceQueueCreateInfo structure' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkGetDeviceQueue)~^~
VALIDATION_ERROR_00061~^~Y~^~Unknown~^~vkGetDeviceQueue~^~For more information refer to Vulkan Spec Section '4.3.2. Queue Creation' which states 'queueIndex must be less than the number of queues created for the specified queue family index when device was created, via the queueCount member of the VkDeviceQueueCreateInfo structure' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkGetDeviceQueue)~^~
VALIDATION_ERROR_00062~^~Y~^~None~^~vkGetDeviceQueue~^~For more information refer to Vulkan Spec Section '4.3.2. Queue Creation' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkGetDeviceQueue)~^~implicit
@@ -1914,8 +1914,8 @@ VALIDATION_ERROR_02051~^~N~^~Unknown~^~vkDestroyDebugReportCallbackEXT~^~For mor
VALIDATION_ERROR_02052~^~N~^~Unknown~^~vkDestroyDebugReportCallbackEXT~^~For more information refer to Vulkan Spec Section '33.2. Debug Report Callbacks' which states 'callback must be a valid VkDebugReportCallbackEXT handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkDestroyDebugReportCallbackEXT)~^~implicit
VALIDATION_ERROR_02053~^~N~^~Unknown~^~vkDestroyDebugReportCallbackEXT~^~For more information refer to Vulkan Spec Section '33.2. Debug Report Callbacks' which states 'If pAllocator is not NULL, pAllocator must be a pointer to a valid VkAllocationCallbacks structure' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkDestroyDebugReportCallbackEXT)~^~implicit
VALIDATION_ERROR_02054~^~N~^~Unknown~^~vkDestroyDebugReportCallbackEXT~^~For more information refer to Vulkan Spec Section '33.2. Debug Report Callbacks' which states 'callback must have been created, allocated, or retrieved from instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkDestroyDebugReportCallbackEXT)~^~implicit
-VALIDATION_ERROR_02055~^~N~^~Unknown~^~vkDestroyDevice~^~For more information refer to Vulkan Spec Section '4.3.2. Queue Creation' which states 'queueCount must be less than or equal to the queueCount member of the VkQueueFamilyProperties structure, as returned by vkGetPhysicalDeviceQueueFamilyProperties in the pQueueFamilyProperties[queueFamilyIndex]' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceQueueCreateInfo)~^~
-VALIDATION_ERROR_02056~^~N~^~Unknown~^~vkDestroyDevice~^~For more information refer to Vulkan Spec Section '4.3.2. Queue Creation' which states 'Each element of pQueuePriorities must be between 0.0 and 1.0 inclusive' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceQueueCreateInfo)~^~
+VALIDATION_ERROR_02055~^~Y~^~Unknown~^~vkCreateDevice~^~For more information refer to Vulkan Spec Section '4.3.2. Queue Creation' which states 'queueCount must be less than or equal to the queueCount member of the VkQueueFamilyProperties structure, as returned by vkGetPhysicalDeviceQueueFamilyProperties in the pQueueFamilyProperties[queueFamilyIndex]' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceQueueCreateInfo)~^~
+VALIDATION_ERROR_02056~^~N~^~Unknown~^~vkCreateDevice~^~For more information refer to Vulkan Spec Section '4.3.2. Queue Creation' which states 'Each element of pQueuePriorities must be between 0.0 and 1.0 inclusive' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceQueueCreateInfo)~^~
VALIDATION_ERROR_02057~^~Y~^~Unknown~^~vkCmdExecuteCommands~^~For more information refer to Vulkan Spec Section '5.7. Secondary Command Buffer Execution' which states 'If vkCmdExecuteCommands is being called within a render pass instance, any given element of pCommandBuffers must have been recorded with the VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkCmdExecuteCommands)~^~
VALIDATION_ERROR_02058~^~N~^~Unknown~^~vkCmdExecuteCommands~^~For more information refer to Vulkan Spec Section '5.7. Secondary Command Buffer Execution' which states 'If vkCmdExecuteCommands is being called within a render pass instance, any given element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceInfo::subpass set to the index of the subpass which the given command buffer will be executed in' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkCmdExecuteCommands)~^~
VALIDATION_ERROR_02059~^~Y~^~Unknown~^~vkCmdExecuteCommands~^~For more information refer to Vulkan Spec Section '5.7. Secondary Command Buffer Execution' which states 'If vkCmdExecuteCommands is being called within a render pass instance, the render passes specified in the pname::pBeginInfo::pInheritanceInfo::renderPass members of the vkBeginCommandBuffer commands used to begin recording each element of pCommandBuffers must be compatible with the current render pass.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkCmdExecuteCommands)~^~