aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Schuchardt <mikes@lunarg.com>2017-02-23 15:57:37 -0700
committerMike Schuchardt <mikes@lunarg.com>2017-03-23 11:32:03 -0600
commitb8ba12167798f6c07e9208a0b09cb563e673977e (patch)
tree78bcfb7551334d6be608dab0ab16ca46bd98bb45
parentc322b1ada13f246f8a76f0b578dafe5dd87567d2 (diff)
downloadusermoji-b8ba12167798f6c07e9208a0b09cb563e673977e.tar.xz
layers: Add VU enums to VkQueueFlag checks
Split validation of command pool queue flag checks into a dedicated function and add valid usage error enums. Change-Id: I4fc4e71d96b818c281ad310dd0d15bca508efb94
-rw-r--r--layers/buffer_validation.cpp14
-rw-r--r--layers/core_validation.cpp182
-rw-r--r--layers/core_validation_types.h2
-rw-r--r--layers/vk_validation_error_database.txt84
4 files changed, 144 insertions, 138 deletions
diff --git a/layers/buffer_validation.cpp b/layers/buffer_validation.cpp
index a3aee898..2dca9ed0 100644
--- a/layers/buffer_validation.cpp
+++ b/layers/buffer_validation.cpp
@@ -945,6 +945,8 @@ bool PreCallValidateCmdClearColorImage(layer_data *dev_data, VkCommandBuffer com
auto image_state = GetImageState(dev_data, image);
if (cb_node && image_state) {
skip |= ValidateMemoryIsBoundToImage(dev_data, image_state, "vkCmdClearColorImage()", VALIDATION_ERROR_02527);
+ skip |= ValidateCmdQueueFlags(dev_data, cb_node, "vkCmdClearColorImage()", VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT,
+ VALIDATION_ERROR_01095);
skip |= ValidateCmd(dev_data, cb_node, CMD_CLEARCOLORIMAGE, "vkCmdClearColorImage()");
skip |= insideRenderPass(dev_data, cb_node, "vkCmdClearColorImage()", VALIDATION_ERROR_01096);
for (uint32_t i = 0; i < rangeCount; ++i) {
@@ -985,6 +987,8 @@ bool PreCallValidateCmdClearDepthStencilImage(layer_data *device_data, VkCommand
auto image_state = GetImageState(device_data, image);
if (cb_node && image_state) {
skip |= ValidateMemoryIsBoundToImage(device_data, image_state, "vkCmdClearDepthStencilImage()", VALIDATION_ERROR_02528);
+ skip |= ValidateCmdQueueFlags(device_data, cb_node, "vkCmdClearDepthStencilImage()", VK_QUEUE_GRAPHICS_BIT,
+ VALIDATION_ERROR_01110);
skip |= ValidateCmd(device_data, cb_node, CMD_CLEARDEPTHSTENCILIMAGE, "vkCmdClearDepthStencilImage()");
skip |= insideRenderPass(device_data, cb_node, "vkCmdClearDepthStencilImage()", VALIDATION_ERROR_01111);
for (uint32_t i = 0; i < rangeCount; ++i) {
@@ -1481,6 +1485,8 @@ bool PreCallValidateCmdCopyImage(layer_data *device_data, GLOBAL_CB_NODE *cb_nod
"vkCmdCopyImage()", "VK_IMAGE_USAGE_TRANSFER_SRC_BIT");
skip |= ValidateImageUsageFlags(device_data, dst_image_state, VK_IMAGE_USAGE_TRANSFER_DST_BIT, true, VALIDATION_ERROR_01181,
"vkCmdCopyImage()", "VK_IMAGE_USAGE_TRANSFER_DST_BIT");
+ skip |= ValidateCmdQueueFlags(device_data, cb_node, "vkCmdCopyImage()",
+ VK_QUEUE_TRANSFER_BIT | VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, VALIDATION_ERROR_01193);
skip |= ValidateCmd(device_data, cb_node, CMD_COPYIMAGE, "vkCmdCopyImage()");
skip |= insideRenderPass(device_data, cb_node, "vkCmdCopyImage()", VALIDATION_ERROR_01194);
for (uint32_t i = 0; i < region_count; ++i) {
@@ -1542,6 +1548,8 @@ bool PreCallValidateCmdClearAttachments(layer_data *device_data, VkCommandBuffer
bool skip = false;
if (cb_node) {
+ skip |=
+ ValidateCmdQueueFlags(device_data, cb_node, "vkCmdClearAttachments()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01121);
skip |= ValidateCmd(device_data, cb_node, CMD_CLEARATTACHMENTS, "vkCmdClearAttachments()");
core_validation::UpdateCmdBufferLastCmd(cb_node, CMD_CLEARATTACHMENTS);
// Warn if this is issued prior to Draw Cmd and clearing the entire attachment
@@ -1661,6 +1669,7 @@ bool PreCallValidateCmdResolveImage(layer_data *device_data, GLOBAL_CB_NODE *cb_
if (cb_node && src_image_state && dst_image_state) {
skip |= ValidateMemoryIsBoundToImage(device_data, src_image_state, "vkCmdResolveImage()", VALIDATION_ERROR_02541);
skip |= ValidateMemoryIsBoundToImage(device_data, dst_image_state, "vkCmdResolveImage()", VALIDATION_ERROR_02542);
+ skip |= ValidateCmdQueueFlags(device_data, cb_node, "vkCmdResolveImage()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01334);
skip |= ValidateCmd(device_data, cb_node, CMD_RESOLVEIMAGE, "vkCmdResolveImage()");
skip |= insideRenderPass(device_data, cb_node, "vkCmdResolveImage()", VALIDATION_ERROR_01335);
@@ -1760,6 +1769,7 @@ bool PreCallValidateCmdBlitImage(layer_data *device_data, GLOBAL_CB_NODE *cb_nod
"vkCmdBlitImage()", "VK_IMAGE_USAGE_TRANSFER_SRC_BIT");
skip |= ValidateImageUsageFlags(device_data, dst_image_state, VK_IMAGE_USAGE_TRANSFER_DST_BIT, true, VALIDATION_ERROR_02186,
"vkCmdBlitImage()", "VK_IMAGE_USAGE_TRANSFER_DST_BIT");
+ skip |= ValidateCmdQueueFlags(device_data, cb_node, "vkCmdBlitImage()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01299);
skip |= ValidateCmd(device_data, cb_node, CMD_BLITIMAGE, "vkCmdBlitImage()");
skip |= insideRenderPass(device_data, cb_node, "vkCmdBlitImage()", VALIDATION_ERROR_01300);
@@ -2516,6 +2526,8 @@ bool PreCallValidateCmdCopyBuffer(layer_data *device_data, GLOBAL_CB_NODE *cb_no
"vkCmdCopyBuffer()", "VK_BUFFER_USAGE_TRANSFER_SRC_BIT");
skip |= ValidateBufferUsageFlags(device_data, dst_buffer_state, VK_BUFFER_USAGE_TRANSFER_DST_BIT, true, VALIDATION_ERROR_01165,
"vkCmdCopyBuffer()", "VK_BUFFER_USAGE_TRANSFER_DST_BIT");
+ skip |= ValidateCmdQueueFlags(device_data, cb_node, "vkCmdCopyBuffer()",
+ VK_QUEUE_TRANSFER_BIT | VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, VALIDATION_ERROR_01171);
skip |= ValidateCmd(device_data, cb_node, CMD_COPYBUFFER, "vkCmdCopyBuffer()");
skip |= insideRenderPass(device_data, cb_node, "vkCmdCopyBuffer()", VALIDATION_ERROR_01172);
return skip;
@@ -2622,6 +2634,8 @@ void PostCallRecordDestroyBufferView(layer_data *device_data, VkBufferView buffe
bool PreCallValidateCmdFillBuffer(layer_data *device_data, GLOBAL_CB_NODE *cb_node, BUFFER_STATE *buffer_state) {
bool skip = false;
skip |= ValidateMemoryIsBoundToBuffer(device_data, buffer_state, "vkCmdFillBuffer()", VALIDATION_ERROR_02529);
+ skip |= ValidateCmdQueueFlags(device_data, cb_node, "vkCmdFillBuffer()",
+ VK_QUEUE_TRANSFER_BIT | VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, VALIDATION_ERROR_01141);
skip |= ValidateCmd(device_data, cb_node, CMD_FILLBUFFER, "vkCmdFillBuffer()");
// Validate that DST buffer has correct usage flags set
skip |= ValidateBufferUsageFlags(device_data, buffer_state, VK_BUFFER_USAGE_TRANSFER_DST_BIT, true, VALIDATION_ERROR_01137,
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp
index ffe8e7ad..0ac46a00 100644
--- a/layers/core_validation.cpp
+++ b/layers/core_validation.cpp
@@ -3452,28 +3452,27 @@ bool ValidateCmdSubpassState(const layer_data *dev_data, const GLOBAL_CB_NODE *p
return skip_call;
}
-static bool checkGraphicsBit(const layer_data *dev_data, VkCommandBuffer command_buffer, VkQueueFlags flags, const char *name) {
- if (!(flags & VK_QUEUE_GRAPHICS_BIT))
- return log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
- reinterpret_cast<uint64_t>(command_buffer), __LINE__, DRAWSTATE_INVALID_COMMAND_BUFFER, "DS",
- "Cannot call %s on a command buffer allocated from a pool without graphics capabilities.", name);
- return false;
-}
-
-static bool checkComputeBit(const layer_data *dev_data, VkCommandBuffer command_buffer, VkQueueFlags flags, const char *name) {
- if (!(flags & VK_QUEUE_COMPUTE_BIT))
- return log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
- reinterpret_cast<uint64_t>(command_buffer), __LINE__, DRAWSTATE_INVALID_COMMAND_BUFFER, "DS",
- "Cannot call %s on a command buffer allocated from a pool without compute capabilities.", name);
- return false;
-}
-
-static bool checkGraphicsOrComputeBit(const layer_data *dev_data, VkCommandBuffer command_buffer, VkQueueFlags flags,
- const char *name) {
- if (!((flags & VK_QUEUE_GRAPHICS_BIT) || (flags & VK_QUEUE_COMPUTE_BIT)))
- return log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
- reinterpret_cast<uint64_t>(command_buffer), __LINE__, DRAWSTATE_INVALID_COMMAND_BUFFER, "DS",
- "Cannot call %s on a command buffer allocated from a pool without graphics or compute capabilities.", name);
+bool ValidateCmdQueueFlags(layer_data *dev_data, GLOBAL_CB_NODE *cb_node, const char *caller_name, VkQueueFlags required_flags,
+ UNIQUE_VALIDATION_ERROR_CODE error_code) {
+ auto pool = GetCommandPoolNode(dev_data, cb_node->createInfo.commandPool);
+ if (pool) {
+ VkQueueFlags queue_flags = dev_data->phys_dev_properties.queue_family_properties[pool->queueFamilyIndex].queueFlags;
+ if (!(required_flags & queue_flags)) {
+ string required_flags_string;
+ for (auto flag : {VK_QUEUE_TRANSFER_BIT, VK_QUEUE_GRAPHICS_BIT, VK_QUEUE_COMPUTE_BIT}) {
+ if (flag & required_flags) {
+ if (required_flags_string.size()) {
+ required_flags_string += " or ";
+ }
+ required_flags_string += string_VkQueueFlagBits(flag);
+ }
+ }
+ return log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
+ reinterpret_cast<uint64_t>(cb_node->commandBuffer), __LINE__, error_code, "DS",
+ "Cannot call %s on a command buffer allocated from a pool without %s capabilities. %s.", caller_name,
+ required_flags_string.c_str(), validation_error_map[error_code]);
+ }
+ }
return false;
}
@@ -3495,67 +3494,6 @@ static bool ReportInvalidCommandBuffer(layer_data *dev_data, GLOBAL_CB_NODE *cb_
// there's an issue with the Cmd ordering
bool ValidateCmd(layer_data *dev_data, GLOBAL_CB_NODE *cb_state, const CMD_TYPE cmd, const char *caller_name) {
bool skip = false;
- auto command_pool = GetCommandPoolNode(dev_data, cb_state->createInfo.commandPool);
- if (command_pool) {
- VkQueueFlags flags = dev_data->phys_dev_properties.queue_family_properties[command_pool->queueFamilyIndex].queueFlags;
- switch (cmd) {
- case CMD_BINDPIPELINE:
- case CMD_BINDPIPELINEDELTA:
- case CMD_BINDDESCRIPTORSETS:
- case CMD_FILLBUFFER:
- case CMD_CLEARCOLORIMAGE:
- case CMD_SETEVENT:
- case CMD_RESETEVENT:
- case CMD_WAITEVENTS:
- case CMD_BEGINQUERY:
- case CMD_ENDQUERY:
- case CMD_RESETQUERYPOOL:
- case CMD_COPYQUERYPOOLRESULTS:
- case CMD_WRITETIMESTAMP:
- skip |= checkGraphicsOrComputeBit(dev_data, cb_state->commandBuffer, flags, cmdTypeToString(cmd).c_str());
- break;
- case CMD_SETVIEWPORTSTATE:
- case CMD_SETSCISSORSTATE:
- case CMD_SETLINEWIDTHSTATE:
- case CMD_SETDEPTHBIASSTATE:
- case CMD_SETBLENDSTATE:
- case CMD_SETDEPTHBOUNDSSTATE:
- case CMD_SETSTENCILREADMASKSTATE:
- case CMD_SETSTENCILWRITEMASKSTATE:
- case CMD_SETSTENCILREFERENCESTATE:
- case CMD_BINDINDEXBUFFER:
- case CMD_BINDVERTEXBUFFER:
- case CMD_DRAW:
- case CMD_DRAWINDEXED:
- case CMD_DRAWINDIRECT:
- case CMD_DRAWINDEXEDINDIRECT:
- case CMD_BLITIMAGE:
- case CMD_CLEARATTACHMENTS:
- case CMD_CLEARDEPTHSTENCILIMAGE:
- case CMD_RESOLVEIMAGE:
- case CMD_BEGINRENDERPASS:
- case CMD_NEXTSUBPASS:
- case CMD_ENDRENDERPASS:
- skip |= checkGraphicsBit(dev_data, cb_state->commandBuffer, flags, cmdTypeToString(cmd).c_str());
- break;
- case CMD_DISPATCH:
- case CMD_DISPATCHINDIRECT:
- skip |= checkComputeBit(dev_data, cb_state->commandBuffer, flags, cmdTypeToString(cmd).c_str());
- break;
- case CMD_COPYBUFFER:
- case CMD_COPYIMAGE:
- case CMD_COPYBUFFERTOIMAGE:
- case CMD_COPYIMAGETOBUFFER:
- case CMD_CLONEIMAGEDATA:
- case CMD_UPDATEBUFFER:
- case CMD_PIPELINEBARRIER:
- case CMD_EXECUTECOMMANDS:
- case CMD_END:
- break;
- default:
- break;
- }
- }
if (cb_state->state != CB_RECORDING) {
if (cb_state->state == CB_INVALID) {
skip |= ReportInvalidCommandBuffer(dev_data, cb_state, caller_name);
@@ -7117,6 +7055,8 @@ VKAPI_ATTR void VKAPI_CALL CmdBindPipeline(VkCommandBuffer commandBuffer, VkPipe
std::unique_lock<std::mutex> lock(global_lock);
GLOBAL_CB_NODE *cb_state = GetCBNode(dev_data, commandBuffer);
if (cb_state) {
+ skip |= ValidateCmdQueueFlags(dev_data, cb_state, "vkCmdBindPipeline()", VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT,
+ VALIDATION_ERROR_00603);
skip |= ValidateCmd(dev_data, cb_state, CMD_BINDPIPELINE, "vkCmdBindPipeline()");
UpdateCmdBufferLastCmd(cb_state, CMD_BINDPIPELINE);
if ((VK_PIPELINE_BIND_POINT_COMPUTE == pipelineBindPoint) && (cb_state->activeRenderPass)) {
@@ -7163,6 +7103,7 @@ VKAPI_ATTR void VKAPI_CALL CmdSetViewport(VkCommandBuffer commandBuffer, uint32_
std::unique_lock<std::mutex> lock(global_lock);
GLOBAL_CB_NODE *pCB = GetCBNode(dev_data, commandBuffer);
if (pCB) {
+ skip_call |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetViewport()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01446);
skip_call |= ValidateCmd(dev_data, pCB, CMD_SETVIEWPORTSTATE, "vkCmdSetViewport()");
UpdateCmdBufferLastCmd(pCB, CMD_SETVIEWPORTSTATE);
pCB->viewportMask |= ((1u << viewportCount) - 1u) << firstViewport;
@@ -7178,6 +7119,7 @@ VKAPI_ATTR void VKAPI_CALL CmdSetScissor(VkCommandBuffer commandBuffer, uint32_t
std::unique_lock<std::mutex> lock(global_lock);
GLOBAL_CB_NODE *pCB = GetCBNode(dev_data, commandBuffer);
if (pCB) {
+ skip_call |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetScissor()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01495);
skip_call |= ValidateCmd(dev_data, pCB, CMD_SETSCISSORSTATE, "vkCmdSetScissor()");
UpdateCmdBufferLastCmd(pCB, CMD_SETSCISSORSTATE);
pCB->scissorMask |= ((1u << scissorCount) - 1u) << firstScissor;
@@ -7192,6 +7134,7 @@ VKAPI_ATTR void VKAPI_CALL CmdSetLineWidth(VkCommandBuffer commandBuffer, float
std::unique_lock<std::mutex> lock(global_lock);
GLOBAL_CB_NODE *pCB = GetCBNode(dev_data, commandBuffer);
if (pCB) {
+ skip_call |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetLineWidth()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01480);
skip_call |= ValidateCmd(dev_data, pCB, CMD_SETLINEWIDTHSTATE, "vkCmdSetLineWidth()");
UpdateCmdBufferLastCmd(pCB, CMD_SETLINEWIDTHSTATE);
pCB->status |= CBSTATUS_LINE_WIDTH_SET;
@@ -7220,6 +7163,7 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDepthBias(VkCommandBuffer commandBuffer, float
std::unique_lock<std::mutex> lock(global_lock);
GLOBAL_CB_NODE *pCB = GetCBNode(dev_data, commandBuffer);
if (pCB) {
+ skip_call |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetDepthBias()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01485);
skip_call |= ValidateCmd(dev_data, pCB, CMD_SETDEPTHBIASSTATE, "vkCmdSetDepthBias()");
if ((depthBiasClamp != 0.0) && (!dev_data->enabled_features.depthBiasClamp)) {
skip_call |=
@@ -7245,6 +7189,8 @@ VKAPI_ATTR void VKAPI_CALL CmdSetBlendConstants(VkCommandBuffer commandBuffer, c
std::unique_lock<std::mutex> lock(global_lock);
GLOBAL_CB_NODE *pCB = GetCBNode(dev_data, commandBuffer);
if (pCB) {
+ skip_call |=
+ ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetBlendConstants()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01553);
skip_call |= ValidateCmd(dev_data, pCB, CMD_SETBLENDSTATE, "vkCmdSetBlendConstants()");
UpdateCmdBufferLastCmd(pCB, CMD_SETBLENDSTATE);
pCB->status |= CBSTATUS_BLEND_CONSTANTS_SET;
@@ -7259,6 +7205,7 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDepthBounds(VkCommandBuffer commandBuffer, floa
std::unique_lock<std::mutex> lock(global_lock);
GLOBAL_CB_NODE *pCB = GetCBNode(dev_data, commandBuffer);
if (pCB) {
+ skip_call |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetDepthBounds()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01509);
skip_call |= ValidateCmd(dev_data, pCB, CMD_SETDEPTHBOUNDSSTATE, "vkCmdSetDepthBounds()");
UpdateCmdBufferLastCmd(pCB, CMD_SETDEPTHBOUNDSSTATE);
pCB->status |= CBSTATUS_DEPTH_BOUNDS_SET;
@@ -7274,6 +7221,8 @@ VKAPI_ATTR void VKAPI_CALL CmdSetStencilCompareMask(VkCommandBuffer commandBuffe
std::unique_lock<std::mutex> lock(global_lock);
GLOBAL_CB_NODE *pCB = GetCBNode(dev_data, commandBuffer);
if (pCB) {
+ skip_call |=
+ ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetStencilCompareMask()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01519);
skip_call |= ValidateCmd(dev_data, pCB, CMD_SETSTENCILREADMASKSTATE, "vkCmdSetStencilCompareMask()");
UpdateCmdBufferLastCmd(pCB, CMD_SETSTENCILREADMASKSTATE);
pCB->status |= CBSTATUS_STENCIL_READ_MASK_SET;
@@ -7288,6 +7237,8 @@ VKAPI_ATTR void VKAPI_CALL CmdSetStencilWriteMask(VkCommandBuffer commandBuffer,
std::unique_lock<std::mutex> lock(global_lock);
GLOBAL_CB_NODE *pCB = GetCBNode(dev_data, commandBuffer);
if (pCB) {
+ skip_call |=
+ ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetStencilWriteMask()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01525);
skip_call |= ValidateCmd(dev_data, pCB, CMD_SETSTENCILWRITEMASKSTATE, "vkCmdSetStencilWriteMask()");
UpdateCmdBufferLastCmd(pCB, CMD_SETSTENCILWRITEMASKSTATE);
pCB->status |= CBSTATUS_STENCIL_WRITE_MASK_SET;
@@ -7302,6 +7253,8 @@ VKAPI_ATTR void VKAPI_CALL CmdSetStencilReference(VkCommandBuffer commandBuffer,
std::unique_lock<std::mutex> lock(global_lock);
GLOBAL_CB_NODE *pCB = GetCBNode(dev_data, commandBuffer);
if (pCB) {
+ skip_call |=
+ ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetStencilReference()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01531);
skip_call |= ValidateCmd(dev_data, pCB, CMD_SETSTENCILREFERENCESTATE, "vkCmdSetStencilReference()");
UpdateCmdBufferLastCmd(pCB, CMD_SETSTENCILREFERENCESTATE);
pCB->status |= CBSTATUS_STENCIL_REFERENCE_SET;
@@ -7319,6 +7272,8 @@ VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorSets(VkCommandBuffer commandBuffer,
std::unique_lock<std::mutex> lock(global_lock);
GLOBAL_CB_NODE *cb_state = GetCBNode(dev_data, commandBuffer);
if (cb_state) {
+ skip |= ValidateCmdQueueFlags(dev_data, cb_state, "vkCmdBindDescriptorSets()", VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT,
+ VALIDATION_ERROR_00985);
skip |= ValidateCmd(dev_data, cb_state, CMD_BINDDESCRIPTORSETS, "vkCmdBindDescriptorSets()");
// Track total count of dynamic descriptor types to make sure we have an offset for each one
uint32_t total_dynamic_descriptors = 0;
@@ -7483,6 +7438,7 @@ VKAPI_ATTR void VKAPI_CALL CmdBindIndexBuffer(VkCommandBuffer commandBuffer, VkB
auto buffer_state = GetBufferState(dev_data, buffer);
auto cb_node = GetCBNode(dev_data, commandBuffer);
if (cb_node && buffer_state) {
+ skip |= ValidateCmdQueueFlags(dev_data, cb_node, "vkCmdBindIndexBuffer()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01357);
skip |= ValidateCmd(dev_data, cb_node, CMD_BINDINDEXBUFFER, "vkCmdBindIndexBuffer()");
skip |= ValidateMemoryIsBoundToBuffer(dev_data, buffer_state, "vkCmdBindIndexBuffer()", VALIDATION_ERROR_02543);
std::function<bool()> function = [=]() {
@@ -7537,7 +7493,8 @@ VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers(VkCommandBuffer commandBuffer, u
auto cb_node = GetCBNode(dev_data, commandBuffer);
if (cb_node) {
- skip |= ValidateCmd(dev_data, cb_node, CMD_BINDVERTEXBUFFER, "vkCmdBindVertexBuffer()");
+ skip |= ValidateCmdQueueFlags(dev_data, cb_node, "vkCmdBindVertexBuffers()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01423);
+ skip |= ValidateCmd(dev_data, cb_node, CMD_BINDVERTEXBUFFER, "vkCmdBindVertexBuffers()");
for (uint32_t i = 0; i < bindingCount; ++i) {
auto buffer_state = GetBufferState(dev_data, pBuffers[i]);
assert(buffer_state);
@@ -7583,11 +7540,13 @@ static void MarkStoreImagesAndBuffersAsWritten(layer_data *dev_data, GLOBAL_CB_N
// Generic function to handle validation for all CmdDraw* type functions
static bool ValidateCmdDrawType(layer_data *dev_data, VkCommandBuffer cmd_buffer, bool indexed, VkPipelineBindPoint bind_point,
- CMD_TYPE cmd_type, GLOBAL_CB_NODE **cb_state, const char *caller,
- UNIQUE_VALIDATION_ERROR_CODE msg_code, UNIQUE_VALIDATION_ERROR_CODE const dynamic_state_msg_code) {
+ CMD_TYPE cmd_type, GLOBAL_CB_NODE **cb_state, const char *caller, VkQueueFlags queue_flags,
+ UNIQUE_VALIDATION_ERROR_CODE queue_flag_code, UNIQUE_VALIDATION_ERROR_CODE msg_code,
+ UNIQUE_VALIDATION_ERROR_CODE const dynamic_state_msg_code) {
bool skip = false;
*cb_state = GetCBNode(dev_data, cmd_buffer);
if (*cb_state) {
+ skip |= ValidateCmdQueueFlags(dev_data, *cb_state, caller, queue_flags, queue_flag_code);
skip |= ValidateCmd(dev_data, *cb_state, cmd_type, caller);
skip |= ValidateDrawState(dev_data, *cb_state, indexed, bind_point, caller, dynamic_state_msg_code);
skip |= (VK_PIPELINE_BIND_POINT_GRAPHICS == bind_point) ? outsideRenderPass(dev_data, *cb_state, caller, msg_code)
@@ -7614,8 +7573,8 @@ static void UpdateStateCmdDrawType(layer_data *dev_data, GLOBAL_CB_NODE *cb_stat
static bool PreCallValidateCmdDraw(layer_data *dev_data, VkCommandBuffer cmd_buffer, bool indexed, VkPipelineBindPoint bind_point,
GLOBAL_CB_NODE **cb_state, const char *caller) {
- return ValidateCmdDrawType(dev_data, cmd_buffer, indexed, bind_point, CMD_DRAW, cb_state, caller, VALIDATION_ERROR_01365,
- VALIDATION_ERROR_02203);
+ return ValidateCmdDrawType(dev_data, cmd_buffer, indexed, bind_point, CMD_DRAW, cb_state, caller, VK_QUEUE_GRAPHICS_BIT,
+ VALIDATION_ERROR_01364, VALIDATION_ERROR_01365, VALIDATION_ERROR_02203);
}
static void PostCallRecordCmdDraw(layer_data *dev_data, GLOBAL_CB_NODE *cb_state, VkPipelineBindPoint bind_point) {
@@ -7639,8 +7598,8 @@ VKAPI_ATTR void VKAPI_CALL CmdDraw(VkCommandBuffer commandBuffer, uint32_t verte
static bool PreCallValidateCmdDrawIndexed(layer_data *dev_data, VkCommandBuffer cmd_buffer, bool indexed,
VkPipelineBindPoint bind_point, GLOBAL_CB_NODE **cb_state, const char *caller) {
- return ValidateCmdDrawType(dev_data, cmd_buffer, indexed, bind_point, CMD_DRAWINDEXED, cb_state, caller, VALIDATION_ERROR_01372,
- VALIDATION_ERROR_02216);
+ return ValidateCmdDrawType(dev_data, cmd_buffer, indexed, bind_point, CMD_DRAWINDEXED, cb_state, caller, VK_QUEUE_GRAPHICS_BIT,
+ VALIDATION_ERROR_01371, VALIDATION_ERROR_01372, VALIDATION_ERROR_02216);
}
static void PostCallRecordCmdDrawIndexed(layer_data *dev_data, GLOBAL_CB_NODE *cb_state, VkPipelineBindPoint bind_point) {
@@ -7667,7 +7626,7 @@ static bool PreCallValidateCmdDrawIndirect(layer_data *dev_data, VkCommandBuffer
VkPipelineBindPoint bind_point, GLOBAL_CB_NODE **cb_state, BUFFER_STATE **buffer_state,
const char *caller) {
bool skip = ValidateCmdDrawType(dev_data, cmd_buffer, indexed, bind_point, CMD_DRAWINDIRECT, cb_state, caller,
- VALIDATION_ERROR_01381, VALIDATION_ERROR_02234);
+ VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01380, VALIDATION_ERROR_01381, VALIDATION_ERROR_02234);
*buffer_state = GetBufferState(dev_data, buffer);
skip |= ValidateMemoryIsBoundToBuffer(dev_data, *buffer_state, caller, VALIDATION_ERROR_02544);
// TODO: If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the
@@ -7702,7 +7661,7 @@ static bool PreCallValidateCmdDrawIndexedIndirect(layer_data *dev_data, VkComman
VkPipelineBindPoint bind_point, GLOBAL_CB_NODE **cb_state,
BUFFER_STATE **buffer_state, const char *caller) {
bool skip = ValidateCmdDrawType(dev_data, cmd_buffer, indexed, bind_point, CMD_DRAWINDEXEDINDIRECT, cb_state, caller,
- VALIDATION_ERROR_01393, VALIDATION_ERROR_02272);
+ VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01392, VALIDATION_ERROR_01393, VALIDATION_ERROR_02272);
*buffer_state = GetBufferState(dev_data, buffer);
skip |= ValidateMemoryIsBoundToBuffer(dev_data, *buffer_state, caller, VALIDATION_ERROR_02545);
// TODO: If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the
@@ -7736,8 +7695,8 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirect(VkCommandBuffer commandBuffer,
static bool PreCallValidateCmdDispatch(layer_data *dev_data, VkCommandBuffer cmd_buffer, bool indexed,
VkPipelineBindPoint bind_point, GLOBAL_CB_NODE **cb_state, const char *caller) {
- return ValidateCmdDrawType(dev_data, cmd_buffer, indexed, bind_point, CMD_DISPATCH, cb_state, caller, VALIDATION_ERROR_01562,
- VALIDATION_ERROR_UNDEFINED);
+ return ValidateCmdDrawType(dev_data, cmd_buffer, indexed, bind_point, CMD_DISPATCH, cb_state, caller, VK_QUEUE_COMPUTE_BIT,
+ VALIDATION_ERROR_01561, VALIDATION_ERROR_01562, VALIDATION_ERROR_UNDEFINED);
}
static void PostCallRecordCmdDispatch(layer_data *dev_data, GLOBAL_CB_NODE *cb_state, VkPipelineBindPoint bind_point) {
@@ -7762,8 +7721,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDispatch(VkCommandBuffer commandBuffer, uint32_t x
static bool PreCallValidateCmdDispatchIndirect(layer_data *dev_data, VkCommandBuffer cmd_buffer, VkBuffer buffer, bool indexed,
VkPipelineBindPoint bind_point, GLOBAL_CB_NODE **cb_state,
BUFFER_STATE **buffer_state, const char *caller) {
- bool skip = ValidateCmdDrawType(dev_data, cmd_buffer, indexed, bind_point, CMD_DISPATCHINDIRECT, cb_state, caller,
- VALIDATION_ERROR_01569, VALIDATION_ERROR_UNDEFINED);
+ bool skip =
+ ValidateCmdDrawType(dev_data, cmd_buffer, indexed, bind_point, CMD_DISPATCHINDIRECT, cb_state, caller, VK_QUEUE_COMPUTE_BIT,
+ VALIDATION_ERROR_01568, VALIDATION_ERROR_01569, VALIDATION_ERROR_UNDEFINED);
*buffer_state = GetBufferState(dev_data, buffer);
skip |= ValidateMemoryIsBoundToBuffer(dev_data, *buffer_state, caller, VALIDATION_ERROR_02547);
return skip;
@@ -7945,6 +7905,9 @@ VKAPI_ATTR void VKAPI_CALL CmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuff
};
cb_node->validate_functions.push_back(function);
+ skip_call |=
+ ValidateCmdQueueFlags(dev_data, cb_node, "vkCmdUpdateBuffer()",
+ VK_QUEUE_TRANSFER_BIT | VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, VALIDATION_ERROR_01154);
skip_call |= ValidateCmd(dev_data, cb_node, CMD_UPDATEBUFFER, "vkCmdUpdateBuffer()");
UpdateCmdBufferLastCmd(cb_node, CMD_UPDATEBUFFER);
skip_call |= insideRenderPass(dev_data, cb_node, "vkCmdUpdateBuffer()", VALIDATION_ERROR_01155);
@@ -8064,6 +8027,8 @@ VKAPI_ATTR void VKAPI_CALL CmdSetEvent(VkCommandBuffer commandBuffer, VkEvent ev
std::unique_lock<std::mutex> lock(global_lock);
GLOBAL_CB_NODE *pCB = GetCBNode(dev_data, commandBuffer);
if (pCB) {
+ skip_call |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetEvent()", VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT,
+ VALIDATION_ERROR_00237);
skip_call |= ValidateCmd(dev_data, pCB, CMD_SETEVENT, "vkCmdSetEvent()");
UpdateCmdBufferLastCmd(pCB, CMD_SETEVENT);
skip_call |= insideRenderPass(dev_data, pCB, "vkCmdSetEvent()", VALIDATION_ERROR_00238);
@@ -8093,6 +8058,8 @@ VKAPI_ATTR void VKAPI_CALL CmdResetEvent(VkCommandBuffer commandBuffer, VkEvent
std::unique_lock<std::mutex> lock(global_lock);
GLOBAL_CB_NODE *pCB = GetCBNode(dev_data, commandBuffer);
if (pCB) {
+ skip_call |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdResetEvent()", VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT,
+ VALIDATION_ERROR_00248);
skip_call |= ValidateCmd(dev_data, pCB, CMD_RESETEVENT, "vkCmdResetEvent()");
UpdateCmdBufferLastCmd(pCB, CMD_RESETEVENT);
skip_call |= insideRenderPass(dev_data, pCB, "vkCmdResetEvent()", VALIDATION_ERROR_00249);
@@ -8449,6 +8416,8 @@ VKAPI_ATTR void VKAPI_CALL CmdWaitEvents(VkCommandBuffer commandBuffer, uint32_t
std::function<bool(VkQueue)> event_update =
std::bind(validateEventStageMask, std::placeholders::_1, cb_state, eventCount, first_event_index, sourceStageMask);
cb_state->eventUpdates.push_back(event_update);
+ skip |= ValidateCmdQueueFlags(dev_data, cb_state, "vkCmdWaitEvents()", VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT,
+ VALIDATION_ERROR_00262);
skip |= ValidateCmd(dev_data, cb_state, CMD_WAITEVENTS, "vkCmdWaitEvents()");
UpdateCmdBufferLastCmd(cb_state, CMD_WAITEVENTS);
skip |=
@@ -8475,6 +8444,8 @@ static bool PreCallValidateCmdPipelineBarrier(layer_data *device_data, GLOBAL_CB
bool skip = false;
skip |= ValidateStageMasksAgainstQueueCapabilities(device_data, cb_state, srcStageMask, dstStageMask, "vkCmdPipelineBarrier",
VALIDATION_ERROR_02513);
+ skip |= ValidateCmdQueueFlags(device_data, cb_state, "vkCmdPipelineBarrier()",
+ VK_QUEUE_TRANSFER_BIT | VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, VALIDATION_ERROR_00280);
skip |= ValidateCmd(device_data, cb_state, CMD_PIPELINEBARRIER, "vkCmdPipelineBarrier()");
skip |= ValidateStageMaskGsTsEnables(device_data, srcStageMask, "vkCmdPipelineBarrier()", VALIDATION_ERROR_00265,
VALIDATION_ERROR_00267);
@@ -8544,6 +8515,8 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryP
if (!pCB->startedQueries.count(query)) {
pCB->startedQueries.insert(query);
}
+ skip_call |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdBeginQuery()", VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT,
+ VALIDATION_ERROR_01039);
skip_call |= ValidateCmd(dev_data, pCB, CMD_BEGINQUERY, "vkCmdBeginQuery()");
UpdateCmdBufferLastCmd(pCB, CMD_BEGINQUERY);
addCommandBufferBinding(&GetQueryPoolNode(dev_data, queryPool)->cb_bindings,
@@ -8570,6 +8543,8 @@ VKAPI_ATTR void VKAPI_CALL CmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPoo
}
std::function<bool(VkQueue)> query_update = std::bind(setQueryState, std::placeholders::_1, commandBuffer, query, true);
cb_state->queryUpdates.push_back(query_update);
+ skip |= ValidateCmdQueueFlags(dev_data, cb_state, "VkCmdEndQuery()", VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT,
+ VALIDATION_ERROR_01046);
skip |= ValidateCmd(dev_data, cb_state, CMD_ENDQUERY, "VkCmdEndQuery()");
UpdateCmdBufferLastCmd(cb_state, CMD_ENDQUERY);
addCommandBufferBinding(&GetQueryPoolNode(dev_data, queryPool)->cb_bindings,
@@ -8593,6 +8568,8 @@ VKAPI_ATTR void VKAPI_CALL CmdResetQueryPool(VkCommandBuffer commandBuffer, VkQu
std::bind(setQueryState, std::placeholders::_1, commandBuffer, query, false);
cb_state->queryUpdates.push_back(query_update);
}
+ skip |= ValidateCmdQueueFlags(dev_data, cb_state, "VkCmdResetQueryPool()", VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT,
+ VALIDATION_ERROR_01024);
skip |= ValidateCmd(dev_data, cb_state, CMD_RESETQUERYPOOL, "VkCmdResetQueryPool()");
UpdateCmdBufferLastCmd(cb_state, CMD_RESETQUERYPOOL);
skip |= insideRenderPass(dev_data, cb_state, "vkCmdResetQueryPool()", VALIDATION_ERROR_01025);
@@ -8661,6 +8638,8 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyQueryPoolResults(VkCommandBuffer commandBuffer
std::function<bool(VkQueue)> query_update =
std::bind(validateQuery, std::placeholders::_1, cb_node, queryPool, queryCount, firstQuery);
cb_node->queryUpdates.push_back(query_update);
+ skip |= ValidateCmdQueueFlags(dev_data, cb_node, "vkCmdCopyQueryPoolResults()",
+ VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, VALIDATION_ERROR_01073);
skip |= ValidateCmd(dev_data, cb_node, CMD_COPYQUERYPOOLRESULTS, "vkCmdCopyQueryPoolResults()");
UpdateCmdBufferLastCmd(cb_node, CMD_COPYQUERYPOOLRESULTS);
skip |= insideRenderPass(dev_data, cb_node, "vkCmdCopyQueryPoolResults()", VALIDATION_ERROR_01074);
@@ -8682,6 +8661,8 @@ VKAPI_ATTR void VKAPI_CALL CmdPushConstants(VkCommandBuffer commandBuffer, VkPip
std::unique_lock<std::mutex> lock(global_lock);
GLOBAL_CB_NODE *cb_state = GetCBNode(dev_data, commandBuffer);
if (cb_state) {
+ skip |= ValidateCmdQueueFlags(dev_data, cb_state, "vkCmdPushConstants()", VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT,
+ VALIDATION_ERROR_00999);
skip |= ValidateCmd(dev_data, cb_state, CMD_PUSHCONSTANTS, "vkCmdPushConstants()");
UpdateCmdBufferLastCmd(cb_state, CMD_PUSHCONSTANTS);
}
@@ -8728,6 +8709,8 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPi
QueryObject query = {queryPool, slot};
std::function<bool(VkQueue)> query_update = std::bind(setQueryState, std::placeholders::_1, commandBuffer, query, true);
cb_state->queryUpdates.push_back(query_update);
+ skip |= ValidateCmdQueueFlags(dev_data, cb_state, "vkCmdWriteTimestamp()", VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT,
+ VALIDATION_ERROR_01082);
skip |= ValidateCmd(dev_data, cb_state, CMD_WRITETIMESTAMP, "vkCmdWriteTimestamp()");
UpdateCmdBufferLastCmd(cb_state, CMD_WRITETIMESTAMP);
}
@@ -9548,6 +9531,8 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginRenderPass(VkCommandBuffer commandBuffer, con
skip_call |= insideRenderPass(dev_data, cb_node, "vkCmdBeginRenderPass()", VALIDATION_ERROR_00440);
skip_call |= ValidateDependencies(dev_data, framebuffer, render_pass_state);
skip_call |= validatePrimaryCommandBuffer(dev_data, cb_node, "vkCmdBeginRenderPass", VALIDATION_ERROR_00441);
+ skip_call |=
+ ValidateCmdQueueFlags(dev_data, cb_node, "vkCmdBeginRenderPass()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_00439);
skip_call |= ValidateCmd(dev_data, cb_node, CMD_BEGINRENDERPASS, "vkCmdBeginRenderPass()");
UpdateCmdBufferLastCmd(cb_node, CMD_BEGINRENDERPASS);
cb_node->activeRenderPass = render_pass_state;
@@ -9575,6 +9560,7 @@ VKAPI_ATTR void VKAPI_CALL CmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpa
GLOBAL_CB_NODE *pCB = GetCBNode(dev_data, commandBuffer);
if (pCB) {
skip_call |= validatePrimaryCommandBuffer(dev_data, pCB, "vkCmdNextSubpass", VALIDATION_ERROR_00459);
+ skip_call |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdNextSubpass()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_00457);
skip_call |= ValidateCmd(dev_data, pCB, CMD_NEXTSUBPASS, "vkCmdNextSubpass()");
UpdateCmdBufferLastCmd(pCB, CMD_NEXTSUBPASS);
skip_call |= outsideRenderPass(dev_data, pCB, "vkCmdNextSubpass()", VALIDATION_ERROR_00458);
@@ -9641,6 +9627,7 @@ VKAPI_ATTR void VKAPI_CALL CmdEndRenderPass(VkCommandBuffer commandBuffer) {
}
skip_call |= outsideRenderPass(dev_data, pCB, "vkCmdEndRenderpass()", VALIDATION_ERROR_00464);
skip_call |= validatePrimaryCommandBuffer(dev_data, pCB, "vkCmdEndRenderPass", VALIDATION_ERROR_00465);
+ skip_call |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdEndRenderPass()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_00463);
skip_call |= ValidateCmd(dev_data, pCB, CMD_ENDRENDERPASS, "vkCmdEndRenderPass()");
UpdateCmdBufferLastCmd(pCB, CMD_ENDRENDERPASS);
}
@@ -9977,6 +9964,9 @@ VKAPI_ATTR void VKAPI_CALL CmdExecuteCommands(VkCommandBuffer commandBuffer, uin
}
}
skip_call |= validatePrimaryCommandBuffer(dev_data, pCB, "vkCmdExecuteComands", VALIDATION_ERROR_00163);
+ skip_call |=
+ ValidateCmdQueueFlags(dev_data, pCB, "vkCmdExecuteComands()",
+ VK_QUEUE_TRANSFER_BIT | VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, VALIDATION_ERROR_00162);
skip_call |= ValidateCmd(dev_data, pCB, CMD_EXECUTECOMMANDS, "vkCmdExecuteComands()");
UpdateCmdBufferLastCmd(pCB, CMD_EXECUTECOMMANDS);
}
diff --git a/layers/core_validation_types.h b/layers/core_validation_types.h
index f2659aed..f80a5853 100644
--- a/layers/core_validation_types.h
+++ b/layers/core_validation_types.h
@@ -814,6 +814,8 @@ void invalidateCommandBuffers(const layer_data *dev_data, std::unordered_set<GLO
void RemoveImageMemoryRange(uint64_t handle, DEVICE_MEM_INFO *mem_info);
void RemoveBufferMemoryRange(uint64_t handle, DEVICE_MEM_INFO *mem_info);
bool ClearMemoryObjectBindings(layer_data *dev_data, uint64_t handle, VkDebugReportObjectTypeEXT type);
+bool ValidateCmdQueueFlags(layer_data *dev_data, GLOBAL_CB_NODE *cb_node, const char *caller_name, VkQueueFlags flags,
+ UNIQUE_VALIDATION_ERROR_CODE error_code);
bool ValidateCmd(layer_data *my_data, GLOBAL_CB_NODE *pCB, const CMD_TYPE cmd, const char *caller_name);
bool insideRenderPass(const layer_data *my_data, GLOBAL_CB_NODE *pCB, const char *apiName, UNIQUE_VALIDATION_ERROR_CODE msgCode);
void SetImageMemoryValid(layer_data *dev_data, IMAGE_STATE *image_state, bool valid);
diff --git a/layers/vk_validation_error_database.txt b/layers/vk_validation_error_database.txt
index 0409c999..1b98364e 100644
--- a/layers/vk_validation_error_database.txt
+++ b/layers/vk_validation_error_database.txt
@@ -164,7 +164,7 @@ VALIDATION_ERROR_00158~^~N~^~Unknown~^~vkCmdExecuteCommands~^~For more informati
VALIDATION_ERROR_00159~^~Y~^~None~^~vkCmdExecuteCommands~^~For more information refer to Vulkan Spec Section '5.6. Secondary Command Buffer Execution' which states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdExecuteCommands)~^~implicit
VALIDATION_ERROR_00160~^~Y~^~None~^~vkCmdExecuteCommands~^~For more information refer to Vulkan Spec Section '5.6. Secondary Command Buffer Execution' which states 'pCommandBuffers must be a pointer to an array of commandBufferCount valid VkCommandBuffer handles' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdExecuteCommands)~^~implicit
VALIDATION_ERROR_00161~^~N~^~Unknown~^~vkCmdExecuteCommands~^~For more information refer to Vulkan Spec Section '5.6. Secondary Command Buffer Execution' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdExecuteCommands)~^~implicit
-VALIDATION_ERROR_00162~^~N~^~Unknown~^~vkCmdExecuteCommands~^~For more information refer to Vulkan Spec Section '5.6. Secondary Command Buffer Execution' which states 'The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdExecuteCommands)~^~implicit
+VALIDATION_ERROR_00162~^~Y~^~Unknown~^~vkCmdExecuteCommands~^~For more information refer to Vulkan Spec Section '5.6. Secondary Command Buffer Execution' which states 'The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdExecuteCommands)~^~implicit
VALIDATION_ERROR_00163~^~Y~^~Unknown~^~vkCmdExecuteCommands~^~For more information refer to Vulkan Spec Section '5.6. Secondary Command Buffer Execution' which states 'commandBuffer must be a primary VkCommandBuffer' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdExecuteCommands)~^~implicit
VALIDATION_ERROR_00164~^~N~^~Unknown~^~vkCmdExecuteCommands~^~For more information refer to Vulkan Spec Section '5.6. Secondary Command Buffer Execution' which states 'commandBufferCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdExecuteCommands)~^~implicit
VALIDATION_ERROR_00165~^~Y~^~Unknown~^~vkCmdExecuteCommands~^~For more information refer to Vulkan Spec Section '5.6. Secondary Command Buffer Execution' which states 'Both of commandBuffer, and the elements of pCommandBuffers must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdExecuteCommands)~^~implicit
@@ -239,7 +239,7 @@ VALIDATION_ERROR_00233~^~Y~^~None~^~vkCmdSetEvent~^~For more information refer t
VALIDATION_ERROR_00234~^~N~^~Unknown~^~vkCmdSetEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'stageMask must be a valid combination of VkPipelineStageFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetEvent)~^~implicit
VALIDATION_ERROR_00235~^~N~^~Unknown~^~vkCmdSetEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'stageMask must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetEvent)~^~implicit
VALIDATION_ERROR_00236~^~N~^~Unknown~^~vkCmdSetEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetEvent)~^~implicit
-VALIDATION_ERROR_00237~^~N~^~Unknown~^~vkCmdSetEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetEvent)~^~implicit
+VALIDATION_ERROR_00237~^~Y~^~Unknown~^~vkCmdSetEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetEvent)~^~implicit
VALIDATION_ERROR_00238~^~Y~^~Unknown~^~vkCmdSetEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'This command must only be called outside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetEvent)~^~implicit
VALIDATION_ERROR_00239~^~Y~^~Unknown~^~vkCmdSetEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetEvent)~^~implicit
VALIDATION_ERROR_00240~^~Y~^~Unknown~^~vkCmdResetEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'If the geometry shaders feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResetEvent)~^~
@@ -250,7 +250,7 @@ VALIDATION_ERROR_00244~^~Y~^~None~^~vkCmdResetEvent~^~For more information refer
VALIDATION_ERROR_00245~^~N~^~Unknown~^~vkCmdResetEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'stageMask must be a valid combination of VkPipelineStageFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResetEvent)~^~implicit
VALIDATION_ERROR_00246~^~N~^~Unknown~^~vkCmdResetEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'stageMask must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResetEvent)~^~implicit
VALIDATION_ERROR_00247~^~N~^~Unknown~^~vkCmdResetEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResetEvent)~^~implicit
-VALIDATION_ERROR_00248~^~N~^~Unknown~^~vkCmdResetEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResetEvent)~^~implicit
+VALIDATION_ERROR_00248~^~Y~^~Unknown~^~vkCmdResetEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResetEvent)~^~implicit
VALIDATION_ERROR_00249~^~Y~^~Unknown~^~vkCmdResetEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'This command must only be called outside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResetEvent)~^~implicit
VALIDATION_ERROR_00250~^~Y~^~Unknown~^~vkCmdResetEvent~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResetEvent)~^~implicit
VALIDATION_ERROR_00252~^~Y~^~None~^~vkCmdWaitEvents~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdWaitEvents)~^~implicit
@@ -263,7 +263,7 @@ VALIDATION_ERROR_00258~^~N~^~Unknown~^~vkCmdWaitEvents~^~For more information re
VALIDATION_ERROR_00259~^~Y~^~None~^~vkCmdWaitEvents~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'If bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdWaitEvents)~^~implicit
VALIDATION_ERROR_00260~^~Y~^~None~^~vkCmdWaitEvents~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdWaitEvents)~^~implicit
VALIDATION_ERROR_00261~^~N~^~Unknown~^~vkCmdWaitEvents~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdWaitEvents)~^~implicit
-VALIDATION_ERROR_00262~^~N~^~Unknown~^~vkCmdWaitEvents~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdWaitEvents)~^~implicit
+VALIDATION_ERROR_00262~^~Y~^~Unknown~^~vkCmdWaitEvents~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdWaitEvents)~^~implicit
VALIDATION_ERROR_00263~^~N~^~Unknown~^~vkCmdWaitEvents~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'eventCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdWaitEvents)~^~implicit
VALIDATION_ERROR_00264~^~Y~^~Unknown~^~vkCmdWaitEvents~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'Both of commandBuffer, and the elements of pEvents must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdWaitEvents)~^~implicit
VALIDATION_ERROR_00265~^~Y~^~Unknown~^~vkCmdPipelineBarrier~^~For more information refer to Vulkan Spec Section '6.5. Pipeline Barriers' which states 'If the geometry shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDependencyFlagBits)~^~
@@ -281,7 +281,7 @@ VALIDATION_ERROR_00276~^~N~^~Unknown~^~vkCmdPipelineBarrier~^~For more informati
VALIDATION_ERROR_00277~^~Y~^~None~^~vkCmdPipelineBarrier~^~For more information refer to Vulkan Spec Section '6.5. Pipeline Barriers' which states 'If bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDependencyFlagBits)~^~implicit
VALIDATION_ERROR_00278~^~Y~^~None~^~vkCmdPipelineBarrier~^~For more information refer to Vulkan Spec Section '6.5. Pipeline Barriers' which states 'If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDependencyFlagBits)~^~implicit
VALIDATION_ERROR_00279~^~N~^~Unknown~^~vkCmdPipelineBarrier~^~For more information refer to Vulkan Spec Section '6.5. Pipeline Barriers' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDependencyFlagBits)~^~implicit
-VALIDATION_ERROR_00280~^~N~^~Unknown~^~vkCmdPipelineBarrier~^~For more information refer to Vulkan Spec Section '6.5. Pipeline Barriers' which states 'The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDependencyFlagBits)~^~implicit
+VALIDATION_ERROR_00280~^~Y~^~Unknown~^~vkCmdPipelineBarrier~^~For more information refer to Vulkan Spec Section '6.5. Pipeline Barriers' which states 'The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDependencyFlagBits)~^~implicit
VALIDATION_ERROR_00281~^~N~^~Unknown~^~vkCmdPipelineBarrier~^~For more information refer to Vulkan Spec Section '6.6.1. Global Memory Barriers' which states 'sType must be VK_STRUCTURE_TYPE_MEMORY_BARRIER' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkMemoryBarrier)~^~implicit, TBD in parameter validation layer.
VALIDATION_ERROR_00282~^~N~^~Unknown~^~vkCmdPipelineBarrier~^~For more information refer to Vulkan Spec Section '6.6.1. Global Memory Barriers' which states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkMemoryBarrier)~^~implicit, TBD in parameter validation layer.
VALIDATION_ERROR_00283~^~N~^~Unknown~^~vkCmdPipelineBarrier~^~For more information refer to Vulkan Spec Section '6.6.1. Global Memory Barriers' which states 'srcAccessMask must be a valid combination of VkAccessFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkMemoryBarrier)~^~implicit
@@ -427,7 +427,7 @@ VALIDATION_ERROR_00435~^~Y~^~None~^~vkCmdBeginRenderPass~^~For more information
VALIDATION_ERROR_00436~^~N~^~Unknown~^~vkCmdBeginRenderPass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'pRenderPassBegin must be a pointer to a valid VkRenderPassBeginInfo structure' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkSubpassContents)~^~implicit
VALIDATION_ERROR_00437~^~N~^~Unknown~^~vkCmdBeginRenderPass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'contents must be a valid VkSubpassContents value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkSubpassContents)~^~implicit
VALIDATION_ERROR_00438~^~N~^~Unknown~^~vkCmdBeginRenderPass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkSubpassContents)~^~implicit
-VALIDATION_ERROR_00439~^~N~^~Unknown~^~vkCmdBeginRenderPass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkSubpassContents)~^~implicit
+VALIDATION_ERROR_00439~^~Y~^~Unknown~^~vkCmdBeginRenderPass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkSubpassContents)~^~implicit
VALIDATION_ERROR_00440~^~Y~^~Unknown~^~vkCmdBeginRenderPass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'This command must only be called outside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkSubpassContents)~^~implicit
VALIDATION_ERROR_00441~^~Y~^~Unknown~^~vkCmdBeginRenderPass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'commandBuffer must be a primary VkCommandBuffer' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkSubpassContents)~^~implicit
VALIDATION_ERROR_00442~^~Y~^~RenderPassClearOpMismatch~^~vkCmdBeginRenderPass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'clearValueCount must be greater than the largest attachment index in renderPass that specifies a loadOp (or stencilLoadOp, if the attachment has a depth/stencil format) of VK_ATTACHMENT_LOAD_OP_CLEAR' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkRenderPassBeginInfo)~^~
@@ -445,13 +445,13 @@ VALIDATION_ERROR_00453~^~Y~^~Unknown~^~vkCmdNextSubpass~^~For more information r
VALIDATION_ERROR_00454~^~Y~^~None~^~vkCmdNextSubpass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdNextSubpass)~^~implicit
VALIDATION_ERROR_00455~^~N~^~Unknown~^~vkCmdNextSubpass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'contents must be a valid VkSubpassContents value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdNextSubpass)~^~implicit
VALIDATION_ERROR_00456~^~N~^~Unknown~^~vkCmdNextSubpass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdNextSubpass)~^~implicit
-VALIDATION_ERROR_00457~^~N~^~Unknown~^~vkCmdNextSubpass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdNextSubpass)~^~implicit
+VALIDATION_ERROR_00457~^~Y~^~Unknown~^~vkCmdNextSubpass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdNextSubpass)~^~implicit
VALIDATION_ERROR_00458~^~Y~^~Unknown~^~vkCmdNextSubpass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'This command must only be called inside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdNextSubpass)~^~implicit
VALIDATION_ERROR_00459~^~Y~^~Unknown~^~vkCmdNextSubpass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'commandBuffer must be a primary VkCommandBuffer' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdNextSubpass)~^~implicit
VALIDATION_ERROR_00460~^~Y~^~Unknown~^~vkCmdEndRenderPass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'The current subpass index must be equal to the number of subpasses in the render pass minus one' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdEndRenderPass)~^~
VALIDATION_ERROR_00461~^~Y~^~None~^~vkCmdEndRenderPass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdEndRenderPass)~^~implicit
VALIDATION_ERROR_00462~^~N~^~Unknown~^~vkCmdEndRenderPass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdEndRenderPass)~^~implicit
-VALIDATION_ERROR_00463~^~N~^~Unknown~^~vkCmdEndRenderPass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdEndRenderPass)~^~implicit
+VALIDATION_ERROR_00463~^~Y~^~Unknown~^~vkCmdEndRenderPass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdEndRenderPass)~^~implicit
VALIDATION_ERROR_00464~^~Y~^~Unknown~^~vkCmdEndRenderPass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'This command must only be called inside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdEndRenderPass)~^~implicit
VALIDATION_ERROR_00465~^~Y~^~Unknown~^~vkCmdEndRenderPass~^~For more information refer to Vulkan Spec Section '7.4. Render Pass Commands' which states 'commandBuffer must be a primary VkCommandBuffer' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdEndRenderPass)~^~implicit
VALIDATION_ERROR_00466~^~Y~^~None~^~vkCreateShaderModule~^~For more information refer to Vulkan Spec Section '8.1. Shader Modules' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCreateShaderModule)~^~implicit
@@ -591,7 +591,7 @@ VALIDATION_ERROR_00599~^~Y~^~None~^~vkCmdBindPipeline~^~For more information ref
VALIDATION_ERROR_00600~^~Y~^~Unknown~^~vkCmdBindPipeline~^~For more information refer to Vulkan Spec Section '9.8. Pipeline Binding' which states 'pipelineBindPoint must be a valid VkPipelineBindPoint value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineBindPoint)~^~implicit
VALIDATION_ERROR_00601~^~Y~^~PipelineNotBound,InvalidPipeline~^~vkCmdBindPipeline~^~For more information refer to Vulkan Spec Section '9.8. Pipeline Binding' which states 'pipeline must be a valid VkPipeline handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineBindPoint)~^~implicit
VALIDATION_ERROR_00602~^~N~^~Unknown~^~vkCmdBindPipeline~^~For more information refer to Vulkan Spec Section '9.8. Pipeline Binding' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineBindPoint)~^~implicit
-VALIDATION_ERROR_00603~^~N~^~Unknown~^~vkCmdBindPipeline~^~For more information refer to Vulkan Spec Section '9.8. Pipeline Binding' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineBindPoint)~^~implicit
+VALIDATION_ERROR_00603~^~Y~^~Unknown~^~vkCmdBindPipeline~^~For more information refer to Vulkan Spec Section '9.8. Pipeline Binding' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineBindPoint)~^~implicit
VALIDATION_ERROR_00604~^~Y~^~Unknown~^~vkCmdBindPipeline~^~For more information refer to Vulkan Spec Section '9.8. Pipeline Binding' which states 'Both of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineBindPoint)~^~implicit
VALIDATION_ERROR_00605~^~N~^~Unknown~^~vkCmdBindPipeline~^~For more information refer to Vulkan Spec Section '10.1. Host Memory' which states 'pfnAllocation must be a pointer to a valid user-defined PFN_vkAllocationFunction' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkAllocationCallbacks)~^~
VALIDATION_ERROR_00606~^~N~^~Unknown~^~vkCmdBindPipeline~^~For more information refer to Vulkan Spec Section '10.1. Host Memory' which states 'pfnReallocation must be a pointer to a valid user-defined PFN_vkReallocationFunction' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkAllocationCallbacks)~^~
@@ -973,7 +973,7 @@ VALIDATION_ERROR_00981~^~Y~^~DescriptorSetCompatibility~^~vkCmdBindDescriptorSet
VALIDATION_ERROR_00982~^~Y~^~InvalidDescriptorSet~^~vkCmdBindDescriptorSets~^~For more information refer to Vulkan Spec Section '13.2.5. Descriptor Set Binding' which states 'pDescriptorSets must be a pointer to an array of descriptorSetCount valid VkDescriptorSet handles' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBindDescriptorSets)~^~implicit
VALIDATION_ERROR_00983~^~N~^~Unknown~^~vkCmdBindDescriptorSets~^~For more information refer to Vulkan Spec Section '13.2.5. Descriptor Set Binding' which states 'If dynamicOffsetCount is not 0, pDynamicOffsets must be a pointer to an array of dynamicOffsetCount uint32_t values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBindDescriptorSets)~^~implicit
VALIDATION_ERROR_00984~^~N~^~Unknown~^~vkCmdBindDescriptorSets~^~For more information refer to Vulkan Spec Section '13.2.5. Descriptor Set Binding' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBindDescriptorSets)~^~implicit
-VALIDATION_ERROR_00985~^~N~^~Unknown~^~vkCmdBindDescriptorSets~^~For more information refer to Vulkan Spec Section '13.2.5. Descriptor Set Binding' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBindDescriptorSets)~^~implicit
+VALIDATION_ERROR_00985~^~Y~^~Unknown~^~vkCmdBindDescriptorSets~^~For more information refer to Vulkan Spec Section '13.2.5. Descriptor Set Binding' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBindDescriptorSets)~^~implicit
VALIDATION_ERROR_00986~^~N~^~Unknown~^~vkCmdBindDescriptorSets~^~For more information refer to Vulkan Spec Section '13.2.5. Descriptor Set Binding' which states 'descriptorSetCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBindDescriptorSets)~^~implicit
VALIDATION_ERROR_00987~^~Y~^~Unknown~^~vkCmdBindDescriptorSets~^~For more information refer to Vulkan Spec Section '13.2.5. Descriptor Set Binding' which states 'Each of commandBuffer, layout, and the elements of pDescriptorSets must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBindDescriptorSets)~^~implicit
VALIDATION_ERROR_00988~^~Y~^~InvalidPushConstants~^~vkCmdPushConstants~^~For more information refer to Vulkan Spec Section '13.2.6. Push Constant Updates' which states 'stageFlags must match exactly the shader stages used in layout for the range specified by offset and size' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdPushConstants)~^~
@@ -987,7 +987,7 @@ VALIDATION_ERROR_00995~^~N~^~Unknown~^~vkCmdPushConstants~^~For more information
VALIDATION_ERROR_00996~^~Y~^~Unknown~^~vkCmdPushConstants~^~For more information refer to Vulkan Spec Section '13.2.6. Push Constant Updates' which states 'stageFlags must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdPushConstants)~^~implicit
VALIDATION_ERROR_00997~^~N~^~Unknown~^~vkCmdPushConstants~^~For more information refer to Vulkan Spec Section '13.2.6. Push Constant Updates' which states 'pValues must be a pointer to an array of size bytes' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdPushConstants)~^~implicit
VALIDATION_ERROR_00998~^~N~^~Unknown~^~vkCmdPushConstants~^~For more information refer to Vulkan Spec Section '13.2.6. Push Constant Updates' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdPushConstants)~^~implicit
-VALIDATION_ERROR_00999~^~N~^~Unknown~^~vkCmdPushConstants~^~For more information refer to Vulkan Spec Section '13.2.6. Push Constant Updates' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdPushConstants)~^~implicit
+VALIDATION_ERROR_00999~^~Y~^~Unknown~^~vkCmdPushConstants~^~For more information refer to Vulkan Spec Section '13.2.6. Push Constant Updates' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdPushConstants)~^~implicit
VALIDATION_ERROR_01000~^~Y~^~Unknown~^~vkCmdPushConstants~^~For more information refer to Vulkan Spec Section '13.2.6. Push Constant Updates' which states 'size must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdPushConstants)~^~implicit
VALIDATION_ERROR_01001~^~Y~^~Unknown~^~vkCmdPushConstants~^~For more information refer to Vulkan Spec Section '13.2.6. Push Constant Updates' which states 'Both of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdPushConstants)~^~implicit
VALIDATION_ERROR_01002~^~Y~^~None~^~vkCreateQueryPool~^~For more information refer to Vulkan Spec Section '16.1. Query Pools' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCreateQueryPool)~^~implicit
@@ -1012,7 +1012,7 @@ VALIDATION_ERROR_01020~^~N~^~Unknown~^~vkCmdResetQueryPool~^~For more informatio
VALIDATION_ERROR_01021~^~Y~^~None~^~vkCmdResetQueryPool~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResetQueryPool)~^~implicit
VALIDATION_ERROR_01022~^~Y~^~None~^~vkCmdResetQueryPool~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'queryPool must be a valid VkQueryPool handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResetQueryPool)~^~implicit
VALIDATION_ERROR_01023~^~N~^~Unknown~^~vkCmdResetQueryPool~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResetQueryPool)~^~implicit
-VALIDATION_ERROR_01024~^~N~^~Unknown~^~vkCmdResetQueryPool~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResetQueryPool)~^~implicit
+VALIDATION_ERROR_01024~^~Y~^~Unknown~^~vkCmdResetQueryPool~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResetQueryPool)~^~implicit
VALIDATION_ERROR_01025~^~Y~^~Unknown~^~vkCmdResetQueryPool~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'This command must only be called outside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResetQueryPool)~^~implicit
VALIDATION_ERROR_01026~^~Y~^~Unknown~^~vkCmdResetQueryPool~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResetQueryPool)~^~implicit
VALIDATION_ERROR_01027~^~N~^~Unknown~^~vkCmdBeginQuery~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'The query identified by queryPool and query must currently not be active' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkQueryControlFlagBits)~^~
@@ -1027,14 +1027,14 @@ VALIDATION_ERROR_01035~^~Y~^~None~^~vkCmdBeginQuery~^~For more information refer
VALIDATION_ERROR_01036~^~Y~^~None~^~vkCmdBeginQuery~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'queryPool must be a valid VkQueryPool handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkQueryControlFlagBits)~^~implicit
VALIDATION_ERROR_01037~^~N~^~Unknown~^~vkCmdBeginQuery~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'flags must be a valid combination of VkQueryControlFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkQueryControlFlagBits)~^~implicit, TBD in parameter validation layer.
VALIDATION_ERROR_01038~^~N~^~Unknown~^~vkCmdBeginQuery~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkQueryControlFlagBits)~^~implicit
-VALIDATION_ERROR_01039~^~N~^~Unknown~^~vkCmdBeginQuery~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkQueryControlFlagBits)~^~implicit
+VALIDATION_ERROR_01039~^~Y~^~Unknown~^~vkCmdBeginQuery~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkQueryControlFlagBits)~^~implicit
VALIDATION_ERROR_01040~^~Y~^~Unknown~^~vkCmdBeginQuery~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkQueryControlFlagBits)~^~implicit
VALIDATION_ERROR_01041~^~Y~^~Unknown~^~vkCmdEndQuery~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'The query identified by queryPool and query must currently be active' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdEndQuery)~^~
VALIDATION_ERROR_01042~^~N~^~Unknown~^~vkCmdEndQuery~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'query must be less than the number of queries in queryPool' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdEndQuery)~^~
VALIDATION_ERROR_01043~^~Y~^~None~^~vkCmdEndQuery~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdEndQuery)~^~implicit
VALIDATION_ERROR_01044~^~Y~^~None~^~vkCmdEndQuery~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'queryPool must be a valid VkQueryPool handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdEndQuery)~^~implicit
VALIDATION_ERROR_01045~^~N~^~Unknown~^~vkCmdEndQuery~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdEndQuery)~^~implicit
-VALIDATION_ERROR_01046~^~N~^~Unknown~^~vkCmdEndQuery~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdEndQuery)~^~implicit
+VALIDATION_ERROR_01046~^~Y~^~Unknown~^~vkCmdEndQuery~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdEndQuery)~^~implicit
VALIDATION_ERROR_01047~^~Y~^~Unknown~^~vkCmdEndQuery~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdEndQuery)~^~implicit
VALIDATION_ERROR_01048~^~N~^~Unknown~^~vkGetQueryPoolResults~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'firstQuery must be less than the number of queries in queryPool' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkQueryResultFlagBits)~^~
VALIDATION_ERROR_01049~^~N~^~Unknown~^~vkGetQueryPoolResults~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'If VK_QUERY_RESULT_64_BIT is not set in flags then pData and stride must be multiples of 4' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkQueryResultFlagBits)~^~
@@ -1061,7 +1061,7 @@ VALIDATION_ERROR_01069~^~Y~^~None~^~vkCmdCopyQueryPoolResults~^~For more informa
VALIDATION_ERROR_01070~^~Y~^~None~^~vkCmdCopyQueryPoolResults~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'dstBuffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyQueryPoolResults)~^~implicit
VALIDATION_ERROR_01071~^~N~^~Unknown~^~vkCmdCopyQueryPoolResults~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'flags must be a valid combination of VkQueryResultFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyQueryPoolResults)~^~implicit, TBD in parameter validation layer.
VALIDATION_ERROR_01072~^~N~^~Unknown~^~vkCmdCopyQueryPoolResults~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyQueryPoolResults)~^~implicit
-VALIDATION_ERROR_01073~^~N~^~Unknown~^~vkCmdCopyQueryPoolResults~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyQueryPoolResults)~^~implicit
+VALIDATION_ERROR_01073~^~Y~^~Unknown~^~vkCmdCopyQueryPoolResults~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyQueryPoolResults)~^~implicit
VALIDATION_ERROR_01074~^~Y~^~Unknown~^~vkCmdCopyQueryPoolResults~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'This command must only be called outside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyQueryPoolResults)~^~implicit
VALIDATION_ERROR_01075~^~Y~^~Unknown~^~vkCmdCopyQueryPoolResults~^~For more information refer to Vulkan Spec Section '16.2. Query Operation' which states 'Each of commandBuffer, dstBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyQueryPoolResults)~^~implicit
VALIDATION_ERROR_01076~^~N~^~Unknown~^~vkCmdWriteTimestamp~^~For more information refer to Vulkan Spec Section '16.5. Timestamp Queries' which states 'The query identified by queryPool and query must be unavailable' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdWriteTimestamp)~^~
@@ -1070,7 +1070,7 @@ VALIDATION_ERROR_01078~^~Y~^~None~^~vkCmdWriteTimestamp~^~For more information r
VALIDATION_ERROR_01079~^~N~^~Unknown~^~vkCmdWriteTimestamp~^~For more information refer to Vulkan Spec Section '16.5. Timestamp Queries' which states 'pipelineStage must be a valid VkPipelineStageFlagBits value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdWriteTimestamp)~^~implicit
VALIDATION_ERROR_01080~^~Y~^~None~^~vkCmdWriteTimestamp~^~For more information refer to Vulkan Spec Section '16.5. Timestamp Queries' which states 'queryPool must be a valid VkQueryPool handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdWriteTimestamp)~^~implicit
VALIDATION_ERROR_01081~^~N~^~Unknown~^~vkCmdWriteTimestamp~^~For more information refer to Vulkan Spec Section '16.5. Timestamp Queries' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdWriteTimestamp)~^~implicit
-VALIDATION_ERROR_01082~^~N~^~Unknown~^~vkCmdWriteTimestamp~^~For more information refer to Vulkan Spec Section '16.5. Timestamp Queries' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdWriteTimestamp)~^~implicit
+VALIDATION_ERROR_01082~^~Y~^~Unknown~^~vkCmdWriteTimestamp~^~For more information refer to Vulkan Spec Section '16.5. Timestamp Queries' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdWriteTimestamp)~^~implicit
VALIDATION_ERROR_01083~^~Y~^~Unknown~^~vkCmdWriteTimestamp~^~For more information refer to Vulkan Spec Section '16.5. Timestamp Queries' which states 'Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdWriteTimestamp)~^~implicit
VALIDATION_ERROR_01084~^~Y~^~Unknown~^~vkCmdClearColorImage~^~For more information refer to Vulkan Spec Section '17.1. Clearing Images Outside A Render Pass Instance' which states 'image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearColorImage)~^~
VALIDATION_ERROR_01085~^~Y~^~InvalidImageLayout~^~vkCmdClearColorImage~^~For more information refer to Vulkan Spec Section '17.1. Clearing Images Outside A Render Pass Instance' which states 'imageLayout must specify the layout of the image subresource ranges of image specified in pRanges at the time this command is executed on a VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearColorImage)~^~
@@ -1083,7 +1083,7 @@ VALIDATION_ERROR_01091~^~N~^~Unknown~^~vkCmdClearColorImage~^~For more informati
VALIDATION_ERROR_01092~^~N~^~Unknown~^~vkCmdClearColorImage~^~For more information refer to Vulkan Spec Section '17.1. Clearing Images Outside A Render Pass Instance' which states 'pColor must be a pointer to a valid VkClearColorValue union' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearColorImage)~^~implicit
VALIDATION_ERROR_01093~^~N~^~Unknown~^~vkCmdClearColorImage~^~For more information refer to Vulkan Spec Section '17.1. Clearing Images Outside A Render Pass Instance' which states 'pRanges must be a pointer to an array of rangeCount valid VkImageSubresourceRange structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearColorImage)~^~implicit
VALIDATION_ERROR_01094~^~N~^~Unknown~^~vkCmdClearColorImage~^~For more information refer to Vulkan Spec Section '17.1. Clearing Images Outside A Render Pass Instance' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearColorImage)~^~implicit
-VALIDATION_ERROR_01095~^~N~^~Unknown~^~vkCmdClearColorImage~^~For more information refer to Vulkan Spec Section '17.1. Clearing Images Outside A Render Pass Instance' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearColorImage)~^~implicit
+VALIDATION_ERROR_01095~^~Y~^~Unknown~^~vkCmdClearColorImage~^~For more information refer to Vulkan Spec Section '17.1. Clearing Images Outside A Render Pass Instance' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearColorImage)~^~implicit
VALIDATION_ERROR_01096~^~Y~^~Unknown~^~vkCmdClearColorImage~^~For more information refer to Vulkan Spec Section '17.1. Clearing Images Outside A Render Pass Instance' which states 'This command must only be called outside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearColorImage)~^~implicit
VALIDATION_ERROR_01097~^~N~^~Unknown~^~vkCmdClearColorImage~^~For more information refer to Vulkan Spec Section '17.1. Clearing Images Outside A Render Pass Instance' which states 'rangeCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearColorImage)~^~implicit
VALIDATION_ERROR_01098~^~Y~^~Unknown~^~vkCmdClearColorImage~^~For more information refer to Vulkan Spec Section '17.1. Clearing Images Outside A Render Pass Instance' which states 'Both of commandBuffer, and image must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearColorImage)~^~implicit
@@ -1098,7 +1098,7 @@ VALIDATION_ERROR_01106~^~N~^~Unknown~^~vkCmdClearDepthStencilImage~^~For more in
VALIDATION_ERROR_01107~^~N~^~Unknown~^~vkCmdClearDepthStencilImage~^~For more information refer to Vulkan Spec Section '17.1. Clearing Images Outside A Render Pass Instance' which states 'pDepthStencil must be a pointer to a valid VkClearDepthStencilValue structure' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearDepthStencilImage)~^~implicit
VALIDATION_ERROR_01108~^~N~^~Unknown~^~vkCmdClearDepthStencilImage~^~For more information refer to Vulkan Spec Section '17.1. Clearing Images Outside A Render Pass Instance' which states 'pRanges must be a pointer to an array of rangeCount valid VkImageSubresourceRange structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearDepthStencilImage)~^~implicit
VALIDATION_ERROR_01109~^~N~^~Unknown~^~vkCmdClearDepthStencilImage~^~For more information refer to Vulkan Spec Section '17.1. Clearing Images Outside A Render Pass Instance' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearDepthStencilImage)~^~implicit
-VALIDATION_ERROR_01110~^~N~^~Unknown~^~vkCmdClearDepthStencilImage~^~For more information refer to Vulkan Spec Section '17.1. Clearing Images Outside A Render Pass Instance' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearDepthStencilImage)~^~implicit
+VALIDATION_ERROR_01110~^~Y~^~Unknown~^~vkCmdClearDepthStencilImage~^~For more information refer to Vulkan Spec Section '17.1. Clearing Images Outside A Render Pass Instance' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearDepthStencilImage)~^~implicit
VALIDATION_ERROR_01111~^~Y~^~Unknown~^~vkCmdClearDepthStencilImage~^~For more information refer to Vulkan Spec Section '17.1. Clearing Images Outside A Render Pass Instance' which states 'This command must only be called outside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearDepthStencilImage)~^~implicit
VALIDATION_ERROR_01112~^~N~^~Unknown~^~vkCmdClearDepthStencilImage~^~For more information refer to Vulkan Spec Section '17.1. Clearing Images Outside A Render Pass Instance' which states 'rangeCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearDepthStencilImage)~^~implicit
VALIDATION_ERROR_01113~^~Y~^~Unknown~^~vkCmdClearDepthStencilImage~^~For more information refer to Vulkan Spec Section '17.1. Clearing Images Outside A Render Pass Instance' which states 'Both of commandBuffer, and image must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearDepthStencilImage)~^~implicit
@@ -1109,7 +1109,7 @@ VALIDATION_ERROR_01117~^~Y~^~None~^~vkCmdClearAttachments~^~For more information
VALIDATION_ERROR_01118~^~N~^~Unknown~^~vkCmdClearAttachments~^~For more information refer to Vulkan Spec Section '17.2. Clearing Images Inside A Render Pass Instance' which states 'pAttachments must be a pointer to an array of attachmentCount valid VkClearAttachment structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearAttachments)~^~implicit
VALIDATION_ERROR_01119~^~N~^~Unknown~^~vkCmdClearAttachments~^~For more information refer to Vulkan Spec Section '17.2. Clearing Images Inside A Render Pass Instance' which states 'pRects must be a pointer to an array of rectCount VkClearRect structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearAttachments)~^~implicit
VALIDATION_ERROR_01120~^~N~^~Unknown~^~vkCmdClearAttachments~^~For more information refer to Vulkan Spec Section '17.2. Clearing Images Inside A Render Pass Instance' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearAttachments)~^~implicit
-VALIDATION_ERROR_01121~^~N~^~Unknown~^~vkCmdClearAttachments~^~For more information refer to Vulkan Spec Section '17.2. Clearing Images Inside A Render Pass Instance' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearAttachments)~^~implicit
+VALIDATION_ERROR_01121~^~Y~^~Unknown~^~vkCmdClearAttachments~^~For more information refer to Vulkan Spec Section '17.2. Clearing Images Inside A Render Pass Instance' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearAttachments)~^~implicit
VALIDATION_ERROR_01122~^~Y~^~Unknown~^~vkCmdClearAttachments~^~For more information refer to Vulkan Spec Section '17.2. Clearing Images Inside A Render Pass Instance' which states 'This command must only be called inside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearAttachments)~^~implicit
VALIDATION_ERROR_01123~^~N~^~Unknown~^~vkCmdClearAttachments~^~For more information refer to Vulkan Spec Section '17.2. Clearing Images Inside A Render Pass Instance' which states 'attachmentCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearAttachments)~^~implicit
VALIDATION_ERROR_01124~^~N~^~Unknown~^~vkCmdClearAttachments~^~For more information refer to Vulkan Spec Section '17.2. Clearing Images Inside A Render Pass Instance' which states 'rectCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdClearAttachments)~^~implicit
@@ -1129,7 +1129,7 @@ VALIDATION_ERROR_01137~^~Y~^~None~^~vkCmdFillBuffer~^~For more information refer
VALIDATION_ERROR_01138~^~Y~^~None~^~vkCmdFillBuffer~^~For more information refer to Vulkan Spec Section '17.4. Filling Buffers' which states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdFillBuffer)~^~implicit
VALIDATION_ERROR_01139~^~Y~^~None~^~vkCmdFillBuffer~^~For more information refer to Vulkan Spec Section '17.4. Filling Buffers' which states 'dstBuffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdFillBuffer)~^~implicit
VALIDATION_ERROR_01140~^~N~^~Unknown~^~vkCmdFillBuffer~^~For more information refer to Vulkan Spec Section '17.4. Filling Buffers' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdFillBuffer)~^~implicit
-VALIDATION_ERROR_01141~^~N~^~Unknown~^~vkCmdFillBuffer~^~For more information refer to Vulkan Spec Section '17.4. Filling Buffers' which states 'The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdFillBuffer)~^~implicit
+VALIDATION_ERROR_01141~^~Y~^~Unknown~^~vkCmdFillBuffer~^~For more information refer to Vulkan Spec Section '17.4. Filling Buffers' which states 'The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdFillBuffer)~^~implicit
VALIDATION_ERROR_01142~^~Y~^~Unknown~^~vkCmdFillBuffer~^~For more information refer to Vulkan Spec Section '17.4. Filling Buffers' which states 'This command must only be called outside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdFillBuffer)~^~implicit
VALIDATION_ERROR_01143~^~Y~^~Unknown~^~vkCmdFillBuffer~^~For more information refer to Vulkan Spec Section '17.4. Filling Buffers' which states 'Both of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdFillBuffer)~^~implicit
VALIDATION_ERROR_01144~^~N~^~Unknown~^~vkCmdUpdateBuffer~^~For more information refer to Vulkan Spec Section '17.5. Updating Buffers' which states 'dstOffset must be less than the size of dstBuffer' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdUpdateBuffer)~^~
@@ -1142,7 +1142,7 @@ VALIDATION_ERROR_01150~^~Y~^~None~^~vkCmdUpdateBuffer~^~For more information ref
VALIDATION_ERROR_01151~^~Y~^~None~^~vkCmdUpdateBuffer~^~For more information refer to Vulkan Spec Section '17.5. Updating Buffers' which states 'dstBuffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdUpdateBuffer)~^~implicit
VALIDATION_ERROR_01152~^~N~^~Unknown~^~vkCmdUpdateBuffer~^~For more information refer to Vulkan Spec Section '17.5. Updating Buffers' which states 'pData must be a pointer to an array of dataSize bytes' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdUpdateBuffer)~^~implicit
VALIDATION_ERROR_01153~^~N~^~Unknown~^~vkCmdUpdateBuffer~^~For more information refer to Vulkan Spec Section '17.5. Updating Buffers' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdUpdateBuffer)~^~implicit
-VALIDATION_ERROR_01154~^~N~^~Unknown~^~vkCmdUpdateBuffer~^~For more information refer to Vulkan Spec Section '17.5. Updating Buffers' which states 'The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdUpdateBuffer)~^~implicit
+VALIDATION_ERROR_01154~^~Y~^~Unknown~^~vkCmdUpdateBuffer~^~For more information refer to Vulkan Spec Section '17.5. Updating Buffers' which states 'The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdUpdateBuffer)~^~implicit
VALIDATION_ERROR_01155~^~Y~^~Unknown~^~vkCmdUpdateBuffer~^~For more information refer to Vulkan Spec Section '17.5. Updating Buffers' which states 'This command must only be called outside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdUpdateBuffer)~^~implicit
VALIDATION_ERROR_01156~^~N~^~Unknown~^~vkCmdUpdateBuffer~^~For more information refer to Vulkan Spec Section '17.5. Updating Buffers' which states 'dataSize must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdUpdateBuffer)~^~implicit
VALIDATION_ERROR_01157~^~Y~^~Unknown~^~vkCmdUpdateBuffer~^~For more information refer to Vulkan Spec Section '17.5. Updating Buffers' which states 'Both of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdUpdateBuffer)~^~implicit
@@ -1159,7 +1159,7 @@ VALIDATION_ERROR_01167~^~Y~^~None~^~vkCmdCopyBuffer~^~For more information refer
VALIDATION_ERROR_01168~^~Y~^~None~^~vkCmdCopyBuffer~^~For more information refer to Vulkan Spec Section '18.2. Copying Data Between Buffers' which states 'dstBuffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyBuffer)~^~implicit
VALIDATION_ERROR_01169~^~N~^~Unknown~^~vkCmdCopyBuffer~^~For more information refer to Vulkan Spec Section '18.2. Copying Data Between Buffers' which states 'pRegions must be a pointer to an array of regionCount VkBufferCopy structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyBuffer)~^~implicit
VALIDATION_ERROR_01170~^~N~^~Unknown~^~vkCmdCopyBuffer~^~For more information refer to Vulkan Spec Section '18.2. Copying Data Between Buffers' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyBuffer)~^~implicit
-VALIDATION_ERROR_01171~^~N~^~Unknown~^~vkCmdCopyBuffer~^~For more information refer to Vulkan Spec Section '18.2. Copying Data Between Buffers' which states 'The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyBuffer)~^~implicit
+VALIDATION_ERROR_01171~^~Y~^~Unknown~^~vkCmdCopyBuffer~^~For more information refer to Vulkan Spec Section '18.2. Copying Data Between Buffers' which states 'The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyBuffer)~^~implicit
VALIDATION_ERROR_01172~^~Y~^~Unknown~^~vkCmdCopyBuffer~^~For more information refer to Vulkan Spec Section '18.2. Copying Data Between Buffers' which states 'This command must only be called outside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyBuffer)~^~implicit
VALIDATION_ERROR_01173~^~N~^~Unknown~^~vkCmdCopyBuffer~^~For more information refer to Vulkan Spec Section '18.2. Copying Data Between Buffers' which states 'regionCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyBuffer)~^~implicit
VALIDATION_ERROR_01174~^~Y~^~Unknown~^~vkCmdCopyBuffer~^~For more information refer to Vulkan Spec Section '18.2. Copying Data Between Buffers' which states 'Each of commandBuffer, dstBuffer, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyBuffer)~^~implicit
@@ -1181,7 +1181,7 @@ VALIDATION_ERROR_01189~^~Y~^~None~^~vkCmdCopyImage~^~For more information refer
VALIDATION_ERROR_01190~^~N~^~Unknown~^~vkCmdCopyImage~^~For more information refer to Vulkan Spec Section '18.3. Copying Data Between Images' which states 'dstImageLayout must be a valid VkImageLayout value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyImage)~^~implicit
VALIDATION_ERROR_01191~^~N~^~Unknown~^~vkCmdCopyImage~^~For more information refer to Vulkan Spec Section '18.3. Copying Data Between Images' which states 'pRegions must be a pointer to an array of regionCount valid VkImageCopy structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyImage)~^~implicit
VALIDATION_ERROR_01192~^~N~^~Unknown~^~vkCmdCopyImage~^~For more information refer to Vulkan Spec Section '18.3. Copying Data Between Images' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyImage)~^~implicit
-VALIDATION_ERROR_01193~^~N~^~Unknown~^~vkCmdCopyImage~^~For more information refer to Vulkan Spec Section '18.3. Copying Data Between Images' which states 'The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyImage)~^~implicit
+VALIDATION_ERROR_01193~^~Y~^~Unknown~^~vkCmdCopyImage~^~For more information refer to Vulkan Spec Section '18.3. Copying Data Between Images' which states 'The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyImage)~^~implicit
VALIDATION_ERROR_01194~^~Y~^~Unknown~^~vkCmdCopyImage~^~For more information refer to Vulkan Spec Section '18.3. Copying Data Between Images' which states 'This command must only be called outside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyImage)~^~implicit
VALIDATION_ERROR_01195~^~N~^~Unknown~^~vkCmdCopyImage~^~For more information refer to Vulkan Spec Section '18.3. Copying Data Between Images' which states 'regionCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyImage)~^~implicit
VALIDATION_ERROR_01196~^~Y~^~Unknown~^~vkCmdCopyImage~^~For more information refer to Vulkan Spec Section '18.3. Copying Data Between Images' which states 'Each of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdCopyImage)~^~implicit
@@ -1284,7 +1284,7 @@ VALIDATION_ERROR_01295~^~N~^~Unknown~^~vkCmdBlitImage~^~For more information ref
VALIDATION_ERROR_01296~^~N~^~Unknown~^~vkCmdBlitImage~^~For more information refer to Vulkan Spec Section '18.5. Image Copies with Scaling' which states 'pRegions must be a pointer to an array of regionCount valid VkImageBlit structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBlitImage)~^~implicit
VALIDATION_ERROR_01297~^~N~^~Unknown~^~vkCmdBlitImage~^~For more information refer to Vulkan Spec Section '18.5. Image Copies with Scaling' which states 'filter must be a valid VkFilter value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBlitImage)~^~implicit
VALIDATION_ERROR_01298~^~N~^~Unknown~^~vkCmdBlitImage~^~For more information refer to Vulkan Spec Section '18.5. Image Copies with Scaling' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBlitImage)~^~implicit
-VALIDATION_ERROR_01299~^~N~^~Unknown~^~vkCmdBlitImage~^~For more information refer to Vulkan Spec Section '18.5. Image Copies with Scaling' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBlitImage)~^~implicit
+VALIDATION_ERROR_01299~^~Y~^~Unknown~^~vkCmdBlitImage~^~For more information refer to Vulkan Spec Section '18.5. Image Copies with Scaling' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBlitImage)~^~implicit
VALIDATION_ERROR_01300~^~Y~^~Unknown~^~vkCmdBlitImage~^~For more information refer to Vulkan Spec Section '18.5. Image Copies with Scaling' which states 'This command must only be called outside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBlitImage)~^~implicit
VALIDATION_ERROR_01301~^~N~^~Unknown~^~vkCmdBlitImage~^~For more information refer to Vulkan Spec Section '18.5. Image Copies with Scaling' which states 'regionCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBlitImage)~^~implicit
VALIDATION_ERROR_01302~^~Y~^~Unknown~^~vkCmdBlitImage~^~For more information refer to Vulkan Spec Section '18.5. Image Copies with Scaling' which states 'Each of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBlitImage)~^~implicit
@@ -1319,7 +1319,7 @@ VALIDATION_ERROR_01330~^~Y~^~None~^~vkCmdResolveImage~^~For more information ref
VALIDATION_ERROR_01331~^~N~^~Unknown~^~vkCmdResolveImage~^~For more information refer to Vulkan Spec Section '18.6. Resolving Multisample Images' which states 'dstImageLayout must be a valid VkImageLayout value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResolveImage)~^~implicit
VALIDATION_ERROR_01332~^~N~^~Unknown~^~vkCmdResolveImage~^~For more information refer to Vulkan Spec Section '18.6. Resolving Multisample Images' which states 'pRegions must be a pointer to an array of regionCount valid VkImageResolve structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResolveImage)~^~implicit
VALIDATION_ERROR_01333~^~N~^~Unknown~^~vkCmdResolveImage~^~For more information refer to Vulkan Spec Section '18.6. Resolving Multisample Images' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResolveImage)~^~implicit
-VALIDATION_ERROR_01334~^~N~^~Unknown~^~vkCmdResolveImage~^~For more information refer to Vulkan Spec Section '18.6. Resolving Multisample Images' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResolveImage)~^~implicit
+VALIDATION_ERROR_01334~^~Y~^~Unknown~^~vkCmdResolveImage~^~For more information refer to Vulkan Spec Section '18.6. Resolving Multisample Images' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResolveImage)~^~implicit
VALIDATION_ERROR_01335~^~Y~^~Unknown~^~vkCmdResolveImage~^~For more information refer to Vulkan Spec Section '18.6. Resolving Multisample Images' which states 'This command must only be called outside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResolveImage)~^~implicit
VALIDATION_ERROR_01336~^~N~^~Unknown~^~vkCmdResolveImage~^~For more information refer to Vulkan Spec Section '18.6. Resolving Multisample Images' which states 'regionCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResolveImage)~^~implicit
VALIDATION_ERROR_01337~^~Y~^~Unknown~^~vkCmdResolveImage~^~For more information refer to Vulkan Spec Section '18.6. Resolving Multisample Images' which states 'Each of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdResolveImage)~^~implicit
@@ -1342,21 +1342,21 @@ VALIDATION_ERROR_01353~^~Y~^~None~^~vkCmdBindIndexBuffer~^~For more information
VALIDATION_ERROR_01354~^~Y~^~None~^~vkCmdBindIndexBuffer~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'buffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkIndexType)~^~implicit
VALIDATION_ERROR_01355~^~N~^~Unknown~^~vkCmdBindIndexBuffer~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'indexType must be a valid VkIndexType value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkIndexType)~^~implicit
VALIDATION_ERROR_01356~^~N~^~Unknown~^~vkCmdBindIndexBuffer~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkIndexType)~^~implicit
-VALIDATION_ERROR_01357~^~N~^~Unknown~^~vkCmdBindIndexBuffer~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkIndexType)~^~implicit
+VALIDATION_ERROR_01357~^~Y~^~Unknown~^~vkCmdBindIndexBuffer~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkIndexType)~^~implicit
VALIDATION_ERROR_01358~^~Y~^~Unknown~^~vkCmdBindIndexBuffer~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkIndexType)~^~implicit
VALIDATION_ERROR_01359~^~N~^~Unknown~^~vkCmdDraw~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'For each set n that is statically used by the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a descriptor set must have been bound to n at VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in [descriptorsets-compatibility]' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDraw)~^~
VALIDATION_ERROR_01360~^~N~^~Unknown~^~vkCmdDraw~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'For each push constant that is statically used by the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a push constant value must have been set for VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in [descriptorsets-compatibility]' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDraw)~^~
VALIDATION_ERROR_01361~^~N~^~Unknown~^~vkCmdDraw~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the currently bound VkPipeline object, specified via vkCmdBindPipeline' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDraw)~^~
VALIDATION_ERROR_01362~^~Y~^~None~^~vkCmdDraw~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDraw)~^~implicit
VALIDATION_ERROR_01363~^~N~^~Unknown~^~vkCmdDraw~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDraw)~^~implicit
-VALIDATION_ERROR_01364~^~N~^~Unknown~^~vkCmdDraw~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDraw)~^~implicit
+VALIDATION_ERROR_01364~^~Y~^~Unknown~^~vkCmdDraw~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDraw)~^~implicit
VALIDATION_ERROR_01365~^~Y~^~Unknown~^~vkCmdDraw~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'This command must only be called inside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDraw)~^~implicit
VALIDATION_ERROR_01366~^~N~^~Unknown~^~vkCmdDrawIndexed~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'For each set n that is statically used by the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a descriptor set must have been bound to n at VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in [descriptorsets-compatibility]' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndexed)~^~
VALIDATION_ERROR_01367~^~N~^~Unknown~^~vkCmdDrawIndexed~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'For each push constant that is statically used by the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_GRAPHICS, a push constant value must have been set for VK_PIPELINE_BIND_POINT_GRAPHICS, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in [descriptorsets-compatibility]' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndexed)~^~
VALIDATION_ERROR_01368~^~N~^~Unknown~^~vkCmdDrawIndexed~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the currently bound VkPipeline object, specified via vkCmdBindPipeline' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndexed)~^~
VALIDATION_ERROR_01369~^~Y~^~None~^~vkCmdDrawIndexed~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndexed)~^~implicit
VALIDATION_ERROR_01370~^~N~^~Unknown~^~vkCmdDrawIndexed~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndexed)~^~implicit
-VALIDATION_ERROR_01371~^~N~^~Unknown~^~vkCmdDrawIndexed~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndexed)~^~implicit
+VALIDATION_ERROR_01371~^~Y~^~Unknown~^~vkCmdDrawIndexed~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndexed)~^~implicit
VALIDATION_ERROR_01372~^~Y~^~Unknown~^~vkCmdDrawIndexed~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'This command must only be called inside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndexed)~^~implicit
VALIDATION_ERROR_01373~^~N~^~Unknown~^~vkCmdDrawIndirect~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'offset must be a multiple of 4' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndirect)~^~
VALIDATION_ERROR_01374~^~N~^~Unknown~^~vkCmdDrawIndirect~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'If drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndirectCommand)' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndirect)~^~
@@ -1365,7 +1365,7 @@ VALIDATION_ERROR_01376~^~N~^~Unknown~^~vkCmdDrawIndirect~^~For more information
VALIDATION_ERROR_01377~^~Y~^~None~^~vkCmdDrawIndirect~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndirect)~^~implicit
VALIDATION_ERROR_01378~^~Y~^~None~^~vkCmdDrawIndirect~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'buffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndirect)~^~implicit
VALIDATION_ERROR_01379~^~N~^~Unknown~^~vkCmdDrawIndirect~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndirect)~^~implicit
-VALIDATION_ERROR_01380~^~N~^~Unknown~^~vkCmdDrawIndirect~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndirect)~^~implicit
+VALIDATION_ERROR_01380~^~Y~^~Unknown~^~vkCmdDrawIndirect~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndirect)~^~implicit
VALIDATION_ERROR_01381~^~Y~^~Unknown~^~vkCmdDrawIndirect~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'This command must only be called inside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndirect)~^~implicit
VALIDATION_ERROR_01382~^~Y~^~Unknown~^~vkCmdDrawIndirect~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndirect)~^~implicit
VALIDATION_ERROR_01383~^~N~^~Unknown~^~vkCmdDrawIndirect~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in [fxvertex-input]' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDrawIndirectCommand)~^~
@@ -1377,7 +1377,7 @@ VALIDATION_ERROR_01388~^~N~^~Unknown~^~vkCmdDrawIndexedIndirect~^~For more infor
VALIDATION_ERROR_01389~^~Y~^~None~^~vkCmdDrawIndexedIndirect~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndexedIndirect)~^~implicit
VALIDATION_ERROR_01390~^~Y~^~None~^~vkCmdDrawIndexedIndirect~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'buffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndexedIndirect)~^~implicit
VALIDATION_ERROR_01391~^~N~^~Unknown~^~vkCmdDrawIndexedIndirect~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndexedIndirect)~^~implicit
-VALIDATION_ERROR_01392~^~N~^~Unknown~^~vkCmdDrawIndexedIndirect~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndexedIndirect)~^~implicit
+VALIDATION_ERROR_01392~^~Y~^~Unknown~^~vkCmdDrawIndexedIndirect~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndexedIndirect)~^~implicit
VALIDATION_ERROR_01393~^~Y~^~Unknown~^~vkCmdDrawIndexedIndirect~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'This command must only be called inside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndexedIndirect)~^~implicit
VALIDATION_ERROR_01394~^~Y~^~Unknown~^~vkCmdDrawIndexedIndirect~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDrawIndexedIndirect)~^~implicit
VALIDATION_ERROR_01395~^~N~^~Unknown~^~vkCmdDrawIndexedIndirect~^~For more information refer to Vulkan Spec Section '19.2. Programmable Primitive Shading' which states 'For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in [fxvertex-input]' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDrawIndexedIndirectCommand)~^~
@@ -1408,7 +1408,7 @@ VALIDATION_ERROR_01419~^~Y~^~None~^~vkCmdBindVertexBuffers~^~For more informatio
VALIDATION_ERROR_01420~^~Y~^~None~^~vkCmdBindVertexBuffers~^~For more information refer to Vulkan Spec Section '20.2. Vertex Input Description' which states 'pBuffers must be a pointer to an array of bindingCount valid VkBuffer handles' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBindVertexBuffers)~^~implicit
VALIDATION_ERROR_01421~^~N~^~Unknown~^~vkCmdBindVertexBuffers~^~For more information refer to Vulkan Spec Section '20.2. Vertex Input Description' which states 'pOffsets must be a pointer to an array of bindingCount VkDeviceSize values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBindVertexBuffers)~^~implicit
VALIDATION_ERROR_01422~^~N~^~Unknown~^~vkCmdBindVertexBuffers~^~For more information refer to Vulkan Spec Section '20.2. Vertex Input Description' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBindVertexBuffers)~^~implicit
-VALIDATION_ERROR_01423~^~N~^~Unknown~^~vkCmdBindVertexBuffers~^~For more information refer to Vulkan Spec Section '20.2. Vertex Input Description' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBindVertexBuffers)~^~implicit
+VALIDATION_ERROR_01423~^~Y~^~Unknown~^~vkCmdBindVertexBuffers~^~For more information refer to Vulkan Spec Section '20.2. Vertex Input Description' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBindVertexBuffers)~^~implicit
VALIDATION_ERROR_01424~^~N~^~Unknown~^~vkCmdBindVertexBuffers~^~For more information refer to Vulkan Spec Section '20.2. Vertex Input Description' which states 'bindingCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBindVertexBuffers)~^~implicit
VALIDATION_ERROR_01425~^~Y~^~Unknown~^~vkCmdBindVertexBuffers~^~For more information refer to Vulkan Spec Section '20.2. Vertex Input Description' which states 'Both of commandBuffer, and the elements of pBuffers must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdBindVertexBuffers)~^~implicit
VALIDATION_ERROR_01426~^~Y~^~Unknown~^~vkCmdBindVertexBuffers~^~For more information refer to Vulkan Spec Section '21.7. Tessellation Pipeline State' which states 'patchControlPoints must be greater than zero and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineTessellationStateCreateInfo)~^~
@@ -1431,7 +1431,7 @@ VALIDATION_ERROR_01442~^~N~^~Unknown~^~vkCmdSetViewport~^~For more information r
VALIDATION_ERROR_01443~^~Y~^~None~^~vkCmdSetViewport~^~For more information refer to Vulkan Spec Section '23.5. Controlling the Viewport' which states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetViewport)~^~implicit
VALIDATION_ERROR_01444~^~N~^~Unknown~^~vkCmdSetViewport~^~For more information refer to Vulkan Spec Section '23.5. Controlling the Viewport' which states 'pViewports must be a pointer to an array of viewportCount valid VkViewport structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetViewport)~^~
VALIDATION_ERROR_01445~^~N~^~Unknown~^~vkCmdSetViewport~^~For more information refer to Vulkan Spec Section '23.5. Controlling the Viewport' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetViewport)~^~implicit
-VALIDATION_ERROR_01446~^~N~^~Unknown~^~vkCmdSetViewport~^~For more information refer to Vulkan Spec Section '23.5. Controlling the Viewport' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetViewport)~^~implicit
+VALIDATION_ERROR_01446~^~Y~^~Unknown~^~vkCmdSetViewport~^~For more information refer to Vulkan Spec Section '23.5. Controlling the Viewport' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetViewport)~^~implicit
VALIDATION_ERROR_01447~^~N~^~Unknown~^~vkCmdSetViewport~^~For more information refer to Vulkan Spec Section '23.5. Controlling the Viewport' which states 'viewportCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetViewport)~^~implicit
VALIDATION_ERROR_01448~^~Y~^~ViewportAndScissorBoundsChecking~^~vkCmdSetViewport~^~For more information refer to Vulkan Spec Section '23.5. Controlling the Viewport' which states 'width must be greater than 0.0 and less than or equal to VkPhysicalDeviceLimits::maxViewportDimensions[0]' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkViewport)~^~
VALIDATION_ERROR_01449~^~Y~^~ViewportAndScissorBoundsChecking~^~vkCmdSetViewport~^~For more information refer to Vulkan Spec Section '23.5. Controlling the Viewport' which states 'height must be greater than or equal to -VkPhysicalDeviceLimits::maxViewportDimensions[1] and less than or equal to VkPhysicalDeviceLimits::maxViewportDimensions[1]' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkViewport)~^~
@@ -1460,12 +1460,12 @@ VALIDATION_ERROR_01476~^~Y~^~Unknown~^~vkCmdSetLineWidth~^~For more information
VALIDATION_ERROR_01477~^~N~^~Unknown~^~vkCmdSetLineWidth~^~For more information refer to Vulkan Spec Section '24.6. Line Segments' which states 'If the wide lines feature is not enabled, lineWidth must be 1.0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetLineWidth)~^~
VALIDATION_ERROR_01478~^~Y~^~None~^~vkCmdSetLineWidth~^~For more information refer to Vulkan Spec Section '24.6. Line Segments' which states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetLineWidth)~^~implicit
VALIDATION_ERROR_01479~^~N~^~Unknown~^~vkCmdSetLineWidth~^~For more information refer to Vulkan Spec Section '24.6. Line Segments' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetLineWidth)~^~implicit
-VALIDATION_ERROR_01480~^~N~^~Unknown~^~vkCmdSetLineWidth~^~For more information refer to Vulkan Spec Section '24.6. Line Segments' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetLineWidth)~^~implicit
+VALIDATION_ERROR_01480~^~Y~^~Unknown~^~vkCmdSetLineWidth~^~For more information refer to Vulkan Spec Section '24.6. Line Segments' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetLineWidth)~^~implicit
VALIDATION_ERROR_01481~^~N~^~Unknown~^~vkCmdSetDepthBias~^~For more information refer to Vulkan Spec Section '24.7.3. Depth Bias' which states 'The currently bound graphics pipeline must have been created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetDepthBias)~^~
VALIDATION_ERROR_01482~^~Y~^~None~^~vkCmdSetDepthBias~^~For more information refer to Vulkan Spec Section '24.7.3. Depth Bias' which states 'If the depth bias clamping feature is not enabled, depthBiasClamp must be 0.0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetDepthBias)~^~
VALIDATION_ERROR_01483~^~Y~^~None~^~vkCmdSetDepthBias~^~For more information refer to Vulkan Spec Section '24.7.3. Depth Bias' which states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetDepthBias)~^~implicit
VALIDATION_ERROR_01484~^~N~^~Unknown~^~vkCmdSetDepthBias~^~For more information refer to Vulkan Spec Section '24.7.3. Depth Bias' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetDepthBias)~^~implicit
-VALIDATION_ERROR_01485~^~N~^~Unknown~^~vkCmdSetDepthBias~^~For more information refer to Vulkan Spec Section '24.7.3. Depth Bias' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetDepthBias)~^~implicit
+VALIDATION_ERROR_01485~^~Y~^~Unknown~^~vkCmdSetDepthBias~^~For more information refer to Vulkan Spec Section '24.7.3. Depth Bias' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetDepthBias)~^~implicit
VALIDATION_ERROR_01486~^~N~^~Unknown~^~vkCmdSetScissor~^~For more information refer to Vulkan Spec Section '25.2. Scissor Test' which states 'The currently bound graphics pipeline must have been created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetScissor)~^~
VALIDATION_ERROR_01487~^~N~^~Unknown~^~vkCmdSetScissor~^~For more information refer to Vulkan Spec Section '25.2. Scissor Test' which states 'firstScissor must be less than VkPhysicalDeviceLimits::maxViewports' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetScissor)~^~
VALIDATION_ERROR_01488~^~N~^~Unknown~^~vkCmdSetScissor~^~For more information refer to Vulkan Spec Section '25.2. Scissor Test' which states 'The sum of firstScissor and scissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetScissor)~^~
@@ -1475,7 +1475,7 @@ VALIDATION_ERROR_01491~^~Y~^~ViewportAndScissorBoundsChecking~^~vkCmdSetScissor~
VALIDATION_ERROR_01492~^~Y~^~None~^~vkCmdSetScissor~^~For more information refer to Vulkan Spec Section '25.2. Scissor Test' which states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetScissor)~^~implicit
VALIDATION_ERROR_01493~^~N~^~Unknown~^~vkCmdSetScissor~^~For more information refer to Vulkan Spec Section '25.2. Scissor Test' which states 'pScissors must be a pointer to an array of scissorCount VkRect2D structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetScissor)~^~implicit
VALIDATION_ERROR_01494~^~N~^~Unknown~^~vkCmdSetScissor~^~For more information refer to Vulkan Spec Section '25.2. Scissor Test' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetScissor)~^~implicit
-VALIDATION_ERROR_01495~^~N~^~Unknown~^~vkCmdSetScissor~^~For more information refer to Vulkan Spec Section '25.2. Scissor Test' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetScissor)~^~implicit
+VALIDATION_ERROR_01495~^~Y~^~Unknown~^~vkCmdSetScissor~^~For more information refer to Vulkan Spec Section '25.2. Scissor Test' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetScissor)~^~implicit
VALIDATION_ERROR_01496~^~N~^~Unknown~^~vkCmdSetScissor~^~For more information refer to Vulkan Spec Section '25.2. Scissor Test' which states 'scissorCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetScissor)~^~implicit
VALIDATION_ERROR_01497~^~N~^~Unknown~^~vkCmdSetScissor~^~For more information refer to Vulkan Spec Section '25.7. Depth and Stencil Operations' which states 'If the depth bounds testing feature is not enabled, depthBoundsTestEnable must be VK_FALSE' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineDepthStencilStateCreateInfo)~^~
VALIDATION_ERROR_01498~^~N~^~Unknown~^~vkCmdSetScissor~^~For more information refer to Vulkan Spec Section '25.7. Depth and Stencil Operations' which states 'sType must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineDepthStencilStateCreateInfo)~^~implicit, TBD in parameter validation layer.
@@ -1489,7 +1489,7 @@ VALIDATION_ERROR_01505~^~N~^~Unknown~^~vkCmdSetDepthBounds~^~For more informatio
VALIDATION_ERROR_01506~^~N~^~Unknown~^~vkCmdSetDepthBounds~^~For more information refer to Vulkan Spec Section '25.8. Depth Bounds Test' which states 'maxDepthBounds must be between 0.0 and 1.0, inclusive' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetDepthBounds)~^~
VALIDATION_ERROR_01507~^~Y~^~None~^~vkCmdSetDepthBounds~^~For more information refer to Vulkan Spec Section '25.8. Depth Bounds Test' which states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetDepthBounds)~^~implicit
VALIDATION_ERROR_01508~^~N~^~Unknown~^~vkCmdSetDepthBounds~^~For more information refer to Vulkan Spec Section '25.8. Depth Bounds Test' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetDepthBounds)~^~implicit
-VALIDATION_ERROR_01509~^~N~^~Unknown~^~vkCmdSetDepthBounds~^~For more information refer to Vulkan Spec Section '25.8. Depth Bounds Test' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetDepthBounds)~^~implicit
+VALIDATION_ERROR_01509~^~Y~^~Unknown~^~vkCmdSetDepthBounds~^~For more information refer to Vulkan Spec Section '25.8. Depth Bounds Test' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetDepthBounds)~^~implicit
VALIDATION_ERROR_01510~^~N~^~Unknown~^~vkCmdSetDepthBounds~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'failOp must be a valid VkStencilOp value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkStencilOpState)~^~implicit
VALIDATION_ERROR_01511~^~N~^~Unknown~^~vkCmdSetDepthBounds~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'passOp must be a valid VkStencilOp value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkStencilOpState)~^~implicit
VALIDATION_ERROR_01512~^~N~^~Unknown~^~vkCmdSetDepthBounds~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'depthFailOp must be a valid VkStencilOp value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkStencilOpState)~^~implicit
@@ -1499,19 +1499,19 @@ VALIDATION_ERROR_01515~^~Y~^~None~^~vkCmdSetStencilCompareMask~^~For more inform
VALIDATION_ERROR_01516~^~N~^~Unknown~^~vkCmdSetStencilCompareMask~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'faceMask must be a valid combination of VkStencilFaceFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkStencilFaceFlagBits)~^~implicit
VALIDATION_ERROR_01517~^~N~^~Unknown~^~vkCmdSetStencilCompareMask~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'faceMask must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkStencilFaceFlagBits)~^~implicit
VALIDATION_ERROR_01518~^~N~^~Unknown~^~vkCmdSetStencilCompareMask~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkStencilFaceFlagBits)~^~implicit
-VALIDATION_ERROR_01519~^~N~^~Unknown~^~vkCmdSetStencilCompareMask~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkStencilFaceFlagBits)~^~implicit
+VALIDATION_ERROR_01519~^~Y~^~Unknown~^~vkCmdSetStencilCompareMask~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkStencilFaceFlagBits)~^~implicit
VALIDATION_ERROR_01520~^~N~^~Unknown~^~vkCmdSetStencilWriteMask~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'The currently bound graphics pipeline must have been created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetStencilWriteMask)~^~
VALIDATION_ERROR_01521~^~Y~^~None~^~vkCmdSetStencilWriteMask~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetStencilWriteMask)~^~implicit
VALIDATION_ERROR_01522~^~N~^~Unknown~^~vkCmdSetStencilWriteMask~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'faceMask must be a valid combination of VkStencilFaceFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetStencilWriteMask)~^~implicit
VALIDATION_ERROR_01523~^~N~^~Unknown~^~vkCmdSetStencilWriteMask~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'faceMask must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetStencilWriteMask)~^~implicit
VALIDATION_ERROR_01524~^~N~^~Unknown~^~vkCmdSetStencilWriteMask~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetStencilWriteMask)~^~implicit
-VALIDATION_ERROR_01525~^~N~^~Unknown~^~vkCmdSetStencilWriteMask~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetStencilWriteMask)~^~implicit
+VALIDATION_ERROR_01525~^~Y~^~Unknown~^~vkCmdSetStencilWriteMask~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetStencilWriteMask)~^~implicit
VALIDATION_ERROR_01526~^~N~^~Unknown~^~vkCmdSetStencilReference~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'The currently bound graphics pipeline must have been created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetStencilReference)~^~
VALIDATION_ERROR_01527~^~Y~^~None~^~vkCmdSetStencilReference~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetStencilReference)~^~implicit
VALIDATION_ERROR_01528~^~N~^~Unknown~^~vkCmdSetStencilReference~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'faceMask must be a valid combination of VkStencilFaceFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetStencilReference)~^~implicit
VALIDATION_ERROR_01529~^~N~^~Unknown~^~vkCmdSetStencilReference~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'faceMask must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetStencilReference)~^~implicit
VALIDATION_ERROR_01530~^~N~^~Unknown~^~vkCmdSetStencilReference~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetStencilReference)~^~implicit
-VALIDATION_ERROR_01531~^~N~^~Unknown~^~vkCmdSetStencilReference~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetStencilReference)~^~implicit
+VALIDATION_ERROR_01531~^~Y~^~Unknown~^~vkCmdSetStencilReference~^~For more information refer to Vulkan Spec Section '25.9. Stencil Test' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetStencilReference)~^~implicit
VALIDATION_ERROR_01532~^~Y~^~Unknown~^~vkCmdSetStencilReference~^~For more information refer to Vulkan Spec Section '26.1. Blending' which states 'If the independent blending feature is not enabled, all elements of pAttachments must be identical' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineColorBlendStateCreateInfo)~^~
VALIDATION_ERROR_01533~^~Y~^~Unknown~^~vkCmdSetStencilReference~^~For more information refer to Vulkan Spec Section '26.1. Blending' which states 'If the logic operations feature is not enabled, logicOpEnable must be VK_FALSE' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineColorBlendStateCreateInfo)~^~
VALIDATION_ERROR_01534~^~N~^~Unknown~^~vkCmdSetStencilReference~^~For more information refer to Vulkan Spec Section '26.1. Blending' which states 'If logicOpEnable is VK_TRUE, logicOp must be a valid VkLogicOp value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineColorBlendStateCreateInfo)~^~
@@ -1533,7 +1533,7 @@ VALIDATION_ERROR_01549~^~N~^~Unknown~^~vkCmdSetStencilReference~^~For more infor
VALIDATION_ERROR_01550~^~N~^~Unknown~^~vkCmdSetBlendConstants~^~For more information refer to Vulkan Spec Section '26.1.1. Blend Factors' which states 'The currently bound graphics pipeline must have been created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetBlendConstants)~^~
VALIDATION_ERROR_01551~^~Y~^~None~^~vkCmdSetBlendConstants~^~For more information refer to Vulkan Spec Section '26.1.1. Blend Factors' which states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetBlendConstants)~^~implicit
VALIDATION_ERROR_01552~^~N~^~Unknown~^~vkCmdSetBlendConstants~^~For more information refer to Vulkan Spec Section '26.1.1. Blend Factors' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetBlendConstants)~^~implicit
-VALIDATION_ERROR_01553~^~N~^~Unknown~^~vkCmdSetBlendConstants~^~For more information refer to Vulkan Spec Section '26.1.1. Blend Factors' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetBlendConstants)~^~implicit
+VALIDATION_ERROR_01553~^~Y~^~Unknown~^~vkCmdSetBlendConstants~^~For more information refer to Vulkan Spec Section '26.1.1. Blend Factors' which states 'The VkCommandPool that commandBuffer was allocated from must support graphics operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdSetBlendConstants)~^~implicit
VALIDATION_ERROR_01554~^~N~^~Unknown~^~vkCmdDispatch~^~For more information refer to Vulkan Spec Section '27. Dispatching Commands' which states 'x must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDispatch)~^~
VALIDATION_ERROR_01555~^~N~^~Unknown~^~vkCmdDispatch~^~For more information refer to Vulkan Spec Section '27. Dispatching Commands' which states 'y must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDispatch)~^~
VALIDATION_ERROR_01556~^~N~^~Unknown~^~vkCmdDispatch~^~For more information refer to Vulkan Spec Section '27. Dispatching Commands' which states 'z must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDispatch)~^~
@@ -1541,14 +1541,14 @@ VALIDATION_ERROR_01557~^~N~^~Unknown~^~vkCmdDispatch~^~For more information refe
VALIDATION_ERROR_01558~^~N~^~Unknown~^~vkCmdDispatch~^~For more information refer to Vulkan Spec Section '27. Dispatching Commands' which states 'Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the currently bound VkPipeline object, specified via vkCmdBindPipeline' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDispatch)~^~
VALIDATION_ERROR_01559~^~Y~^~None~^~vkCmdDispatch~^~For more information refer to Vulkan Spec Section '27. Dispatching Commands' which states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDispatch)~^~implicit
VALIDATION_ERROR_01560~^~N~^~Unknown~^~vkCmdDispatch~^~For more information refer to Vulkan Spec Section '27. Dispatching Commands' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDispatch)~^~implicit
-VALIDATION_ERROR_01561~^~N~^~Unknown~^~vkCmdDispatch~^~For more information refer to Vulkan Spec Section '27. Dispatching Commands' which states 'The VkCommandPool that commandBuffer was allocated from must support compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDispatch)~^~implicit
+VALIDATION_ERROR_01561~^~Y~^~Unknown~^~vkCmdDispatch~^~For more information refer to Vulkan Spec Section '27. Dispatching Commands' which states 'The VkCommandPool that commandBuffer was allocated from must support compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDispatch)~^~implicit
VALIDATION_ERROR_01562~^~Y~^~Unknown~^~vkCmdDispatch~^~For more information refer to Vulkan Spec Section '27. Dispatching Commands' which states 'This command must only be called outside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDispatch)~^~implicit
VALIDATION_ERROR_01563~^~N~^~Unknown~^~vkCmdDispatchIndirect~^~For more information refer to Vulkan Spec Section '27. Dispatching Commands' which states 'For each set n that is statically used by the VkPipeline currently bound to VK_PIPELINE_BIND_POINT_COMPUTE, a descriptor set must have been bound to n at VK_PIPELINE_BIND_POINT_COMPUTE, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in [descriptorsets-compatibility]' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDispatchIndirect)~^~
VALIDATION_ERROR_01564~^~N~^~Unknown~^~vkCmdDispatchIndirect~^~For more information refer to Vulkan Spec Section '27. Dispatching Commands' which states 'Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the currently bound VkPipeline object, specified via vkCmdBindPipeline' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDispatchIndirect)~^~
VALIDATION_ERROR_01565~^~Y~^~None~^~vkCmdDispatchIndirect~^~For more information refer to Vulkan Spec Section '27. Dispatching Commands' which states 'commandBuffer must be a valid VkCommandBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDispatchIndirect)~^~implicit
VALIDATION_ERROR_01566~^~Y~^~None~^~vkCmdDispatchIndirect~^~For more information refer to Vulkan Spec Section '27. Dispatching Commands' which states 'buffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDispatchIndirect)~^~implicit
VALIDATION_ERROR_01567~^~N~^~Unknown~^~vkCmdDispatchIndirect~^~For more information refer to Vulkan Spec Section '27. Dispatching Commands' which states 'commandBuffer must be in the recording state' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDispatchIndirect)~^~implicit
-VALIDATION_ERROR_01568~^~N~^~Unknown~^~vkCmdDispatchIndirect~^~For more information refer to Vulkan Spec Section '27. Dispatching Commands' which states 'The VkCommandPool that commandBuffer was allocated from must support compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDispatchIndirect)~^~implicit
+VALIDATION_ERROR_01568~^~Y~^~Unknown~^~vkCmdDispatchIndirect~^~For more information refer to Vulkan Spec Section '27. Dispatching Commands' which states 'The VkCommandPool that commandBuffer was allocated from must support compute operations' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDispatchIndirect)~^~implicit
VALIDATION_ERROR_01569~^~Y~^~Unknown~^~vkCmdDispatchIndirect~^~For more information refer to Vulkan Spec Section '27. Dispatching Commands' which states 'This command must only be called outside of a render pass instance' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDispatchIndirect)~^~implicit
VALIDATION_ERROR_01570~^~Y~^~Unknown~^~vkCmdDispatchIndirect~^~For more information refer to Vulkan Spec Section '27. Dispatching Commands' which states 'Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdDispatchIndirect)~^~implicit
VALIDATION_ERROR_01571~^~N~^~Unknown~^~vkCmdDispatchIndirect~^~For more information refer to Vulkan Spec Section '27. Dispatching Commands' which states 'x must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDispatchIndirectCommand)~^~