diff options
Diffstat (limited to 'layers/core_validation.cpp')
| -rw-r--r-- | layers/core_validation.cpp | 840 |
1 files changed, 427 insertions, 413 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index 8b33c2d7..4a15ced7 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -686,10 +686,10 @@ static bool ValidateSetMemBinding(layer_data *dev_data, VkDeviceMemory mem, uint BINDABLE *mem_binding = GetObjectMemBinding(dev_data, handle, type); assert(mem_binding); if (mem_binding->sparse) { - UNIQUE_VALIDATION_ERROR_CODE error_code = VALIDATION_ERROR_00804; + UNIQUE_VALIDATION_ERROR_CODE error_code = VALIDATION_ERROR_1740082a; const char *handle_type = "IMAGE"; if (strcmp(apiName, "vkBindBufferMemory()") == 0) { - error_code = VALIDATION_ERROR_00792; + error_code = VALIDATION_ERROR_1700080c; handle_type = "BUFFER"; } else { assert(strcmp(apiName, "vkBindImageMemory()") == 0); @@ -704,9 +704,9 @@ static bool ValidateSetMemBinding(layer_data *dev_data, VkDeviceMemory mem, uint if (mem_info) { DEVICE_MEM_INFO *prev_binding = GetMemObjInfo(dev_data, mem_binding->binding.mem); if (prev_binding) { - UNIQUE_VALIDATION_ERROR_CODE error_code = VALIDATION_ERROR_00803; + UNIQUE_VALIDATION_ERROR_CODE error_code = VALIDATION_ERROR_17400828; if (strcmp(apiName, "vkBindBufferMemory()") == 0) { - error_code = VALIDATION_ERROR_00791; + error_code = VALIDATION_ERROR_1700080a; } else { assert(strcmp(apiName, "vkBindImageMemory()") == 0); } @@ -1478,7 +1478,7 @@ static bool validate_vi_consistency(debug_report_data *report_data, VkPipelineVe auto desc = &vi->pVertexBindingDescriptions[i]; auto &binding = bindings[desc->binding]; if (binding) { - // TODO: VALIDATION_ERROR_02105 perhaps? + // TODO: VALIDATION_ERROR_096005cc perhaps? skip |= log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, SHADER_CHECKER_INCONSISTENT_VI, "SC", "Duplicate vertex input binding descriptions for binding %d", desc->binding); @@ -2031,16 +2031,16 @@ static bool validate_specialization_offsets(debug_report_data *report_data, VkPi if (spec) { for (auto i = 0u; i < spec->mapEntryCount; i++) { - // TODO: This is a good place for VALIDATION_ERROR_00589. + // TODO: This is a good place for VALIDATION_ERROR_1360060a. if (spec->pMapEntries[i].offset + spec->pMapEntries[i].size > spec->dataSize) { skip |= log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, 0, __LINE__, - VALIDATION_ERROR_00590, "SC", + VALIDATION_ERROR_1360060c, "SC", "Specialization entry %u (for constant id %u) references memory outside provided " "specialization data (bytes %u.." PRINTF_SIZE_T_SPECIFIER "; " PRINTF_SIZE_T_SPECIFIER " bytes provided). %s.", i, spec->pMapEntries[i].constantID, spec->pMapEntries[i].offset, spec->pMapEntries[i].offset + spec->pMapEntries[i].size - 1, spec->dataSize, - validation_error_map[VALIDATION_ERROR_00590]); + validation_error_map[VALIDATION_ERROR_1360060c]); } } } @@ -2289,8 +2289,8 @@ static bool validate_pipeline_shader_stage( auto entrypoint = *out_entrypoint = find_entrypoint(module, pStage->pName, pStage->stage); if (entrypoint == module->end()) { if (log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, - VALIDATION_ERROR_00510, "SC", "No entrypoint found named `%s` for stage %s. %s.", pStage->pName, - string_VkShaderStageFlagBits(pStage->stage), validation_error_map[VALIDATION_ERROR_00510])) { + VALIDATION_ERROR_10600586, "SC", "No entrypoint found named `%s` for stage %s. %s.", pStage->pName, + string_VkShaderStageFlagBits(pStage->stage), validation_error_map[VALIDATION_ERROR_10600586])) { return true; // no point continuing beyond here, any analysis is just going to be garbage. } } @@ -2735,7 +2735,7 @@ static bool verifyPipelineCreateState(layer_data *dev_data, std::vector<PIPELINE PIPELINE_STATE *pBasePipeline = nullptr; if (!((pPipeline->graphicsPipelineCI.basePipelineHandle != VK_NULL_HANDLE) ^ (pPipeline->graphicsPipelineCI.basePipelineIndex != -1))) { - // This check is a superset of VALIDATION_ERROR_00526 and VALIDATION_ERROR_00528 + // This check is a superset of VALIDATION_ERROR_096005a8 and VALIDATION_ERROR_096005aa skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, HandleToUint64(pPipeline->pipeline), __LINE__, DRAWSTATE_INVALID_PIPELINE_CREATE_STATE, "DS", "Invalid Pipeline CreateInfo: exactly one of base pipeline index and handle must be specified"); @@ -2743,9 +2743,9 @@ static bool verifyPipelineCreateState(layer_data *dev_data, std::vector<PIPELINE if (pPipeline->graphicsPipelineCI.basePipelineIndex >= pipelineIndex) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, - HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_00518, "DS", + HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_208005a0, "DS", "Invalid Pipeline CreateInfo: base pipeline must occur earlier in array than derivative pipeline. %s", - validation_error_map[VALIDATION_ERROR_00518]); + validation_error_map[VALIDATION_ERROR_208005a0]); } else { pBasePipeline = pPipelines[pPipeline->graphicsPipelineCI.basePipelineIndex]; } @@ -2767,12 +2767,12 @@ static bool verifyPipelineCreateState(layer_data *dev_data, std::vector<PIPELINE if (color_blend_state->attachmentCount != subpass_desc->colorAttachmentCount) { skip |= log_msg( dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, - HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_02109, "DS", + HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_096005d4, "DS", "vkCreateGraphicsPipelines(): Render pass (0x%" PRIxLEAST64 ") subpass %u has colorAttachmentCount of %u which doesn't match the pColorBlendState->attachmentCount of %u. %s", HandleToUint64(pPipeline->graphicsPipelineCI.renderPass), pPipeline->graphicsPipelineCI.subpass, subpass_desc->colorAttachmentCount, color_blend_state->attachmentCount, - validation_error_map[VALIDATION_ERROR_02109]); + validation_error_map[VALIDATION_ERROR_096005d4]); } if (!dev_data->enabled_features.independentBlend) { if (pPipeline->attachments.size() > 1) { @@ -2785,10 +2785,10 @@ static bool verifyPipelineCreateState(layer_data *dev_data, std::vector<PIPELINE sizeof(pAttachments[0]))) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, - HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_01532, "DS", + HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_0f4004ba, "DS", "Invalid Pipeline CreateInfo: If independent blend feature not " "enabled, all elements of pAttachments must be identical. %s", - validation_error_map[VALIDATION_ERROR_01532]); + validation_error_map[VALIDATION_ERROR_0f4004ba]); break; } } @@ -2797,9 +2797,9 @@ static bool verifyPipelineCreateState(layer_data *dev_data, std::vector<PIPELINE if (!dev_data->enabled_features.logicOp && (pPipeline->graphicsPipelineCI.pColorBlendState->logicOpEnable != VK_FALSE)) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, - HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_01533, "DS", + HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_0f4004bc, "DS", "Invalid Pipeline CreateInfo: If logic operations feature not enabled, logicOpEnable must be VK_FALSE. %s", - validation_error_map[VALIDATION_ERROR_01533]); + validation_error_map[VALIDATION_ERROR_0f4004bc]); } } @@ -2809,11 +2809,11 @@ static bool verifyPipelineCreateState(layer_data *dev_data, std::vector<PIPELINE auto renderPass = GetRenderPassState(dev_data, pPipeline->graphicsPipelineCI.renderPass); if (renderPass && pPipeline->graphicsPipelineCI.subpass >= renderPass->createInfo.subpassCount) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, - HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_02122, "DS", + HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_096005ee, "DS", "Invalid Pipeline CreateInfo State: Subpass index %u " "is out of range for this renderpass (0..%u). %s", pPipeline->graphicsPipelineCI.subpass, renderPass->createInfo.subpassCount - 1, - validation_error_map[VALIDATION_ERROR_02122]); + validation_error_map[VALIDATION_ERROR_096005ee]); } if (!GetDisables(dev_data)->shader_validation && validate_and_capture_pipeline_shader_state(dev_data, pPipeline)) { @@ -2832,32 +2832,32 @@ static bool verifyPipelineCreateState(layer_data *dev_data, std::vector<PIPELINE } // VS is required if (!(pPipeline->active_shaders & VK_SHADER_STAGE_VERTEX_BIT)) { - skip |= - log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, - HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_00532, "DS", - "Invalid Pipeline CreateInfo State: Vertex Shader required. %s", validation_error_map[VALIDATION_ERROR_00532]); + skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, + HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_096005ae, "DS", + "Invalid Pipeline CreateInfo State: Vertex Shader required. %s", + validation_error_map[VALIDATION_ERROR_096005ae]); } // Either both or neither TC/TE shaders should be defined bool has_control = (pPipeline->active_shaders & VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT) != 0; bool has_eval = (pPipeline->active_shaders & VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT) != 0; if (has_control && !has_eval) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, - HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_00534, "DS", + HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_096005b2, "DS", "Invalid Pipeline CreateInfo State: TE and TC shaders must be included or excluded as a pair. %s", - validation_error_map[VALIDATION_ERROR_00534]); + validation_error_map[VALIDATION_ERROR_096005b2]); } if (!has_control && has_eval) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, - HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_00535, "DS", + HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_096005b4, "DS", "Invalid Pipeline CreateInfo State: TE and TC shaders must be included or excluded as a pair. %s", - validation_error_map[VALIDATION_ERROR_00535]); + validation_error_map[VALIDATION_ERROR_096005b4]); } // Compute shaders should be specified independent of Gfx shaders if (pPipeline->active_shaders & VK_SHADER_STAGE_COMPUTE_BIT) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, - HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_00533, "DS", + HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_096005b0, "DS", "Invalid Pipeline CreateInfo State: Do not specify Compute Shader for Gfx Pipeline. %s", - validation_error_map[VALIDATION_ERROR_00533]); + validation_error_map[VALIDATION_ERROR_096005b0]); } // VK_PRIMITIVE_TOPOLOGY_PATCH_LIST primitive topology is only valid for tessellation pipelines. // Mismatching primitive topology and tessellation fails graphics pipeline creation. @@ -2865,21 +2865,21 @@ static bool verifyPipelineCreateState(layer_data *dev_data, std::vector<PIPELINE (!pPipeline->graphicsPipelineCI.pInputAssemblyState || pPipeline->graphicsPipelineCI.pInputAssemblyState->topology != VK_PRIMITIVE_TOPOLOGY_PATCH_LIST)) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, - HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_02099, "DS", + HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_096005c0, "DS", "Invalid Pipeline CreateInfo State: " "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST must be set as IA " "topology for tessellation pipelines. %s", - validation_error_map[VALIDATION_ERROR_02099]); + validation_error_map[VALIDATION_ERROR_096005c0]); } if (pPipeline->graphicsPipelineCI.pInputAssemblyState && pPipeline->graphicsPipelineCI.pInputAssemblyState->topology == VK_PRIMITIVE_TOPOLOGY_PATCH_LIST) { if (!has_control || !has_eval) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, - HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_02100, "DS", + HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_096005c2, "DS", "Invalid Pipeline CreateInfo State: " "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST primitive " "topology is only valid for tessellation pipelines. %s", - validation_error_map[VALIDATION_ERROR_02100]); + validation_error_map[VALIDATION_ERROR_096005c2]); } } @@ -2895,10 +2895,10 @@ static bool verifyPipelineCreateState(layer_data *dev_data, std::vector<PIPELINE if ((pPipeline->graphicsPipelineCI.pRasterizationState->depthClampEnable == VK_TRUE) && (!dev_data->enabled_features.depthClamp)) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, - HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_01455, "DS", + HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_1020061c, "DS", "vkCreateGraphicsPipelines(): the depthClamp device feature is disabled: the depthClampEnable " "member of the VkPipelineRasterizationStateCreateInfo structure must be set to VK_FALSE. %s", - validation_error_map[VALIDATION_ERROR_01455]); + validation_error_map[VALIDATION_ERROR_1020061c]); } if (!isDynamic(pPipeline, VK_DYNAMIC_STATE_DEPTH_BIAS) && @@ -2918,10 +2918,10 @@ static bool verifyPipelineCreateState(layer_data *dev_data, std::vector<PIPELINE if ((pPipeline->graphicsPipelineCI.pMultisampleState->alphaToOneEnable == VK_TRUE) && (!dev_data->enabled_features.alphaToOne)) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, - HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_01464, "DS", + HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_10000622, "DS", "vkCreateGraphicsPipelines(): the alphaToOne device feature is disabled: the alphaToOneEnable " "member of the VkPipelineMultisampleStateCreateInfo structure must be set to VK_FALSE. %s", - validation_error_map[VALIDATION_ERROR_01464]); + validation_error_map[VALIDATION_ERROR_10000622]); } // If subpass uses a depth/stencil attachment, pDepthStencilState must be a pointer to a valid structure @@ -2929,10 +2929,10 @@ static bool verifyPipelineCreateState(layer_data *dev_data, std::vector<PIPELINE subpass_desc->pDepthStencilAttachment->attachment != VK_ATTACHMENT_UNUSED) { if (!pPipeline->graphicsPipelineCI.pDepthStencilState) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, - HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_02115, "DS", + HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_096005e0, "DS", "Invalid Pipeline CreateInfo State: pDepthStencilState is NULL when rasterization is " "enabled and subpass uses a depth/stencil attachment. %s", - validation_error_map[VALIDATION_ERROR_02115]); + validation_error_map[VALIDATION_ERROR_096005e0]); } else if ((pPipeline->graphicsPipelineCI.pDepthStencilState->depthBoundsTestEnable == VK_TRUE) && (!dev_data->enabled_features.depthBounds)) { @@ -2954,10 +2954,10 @@ static bool verifyPipelineCreateState(layer_data *dev_data, std::vector<PIPELINE } if (color_attachment_count > 0 && pPipeline->graphicsPipelineCI.pColorBlendState == nullptr) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, - HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_02116, "DS", + HandleToUint64(pPipeline->pipeline), __LINE__, VALIDATION_ERROR_096005e2, "DS", "Invalid Pipeline CreateInfo State: pColorBlendState is NULL when rasterization is " "enabled and subpass uses color attachments. %s", - validation_error_map[VALIDATION_ERROR_02116]); + validation_error_map[VALIDATION_ERROR_096005e2]); } } } @@ -3003,9 +3003,9 @@ static bool validateIdleDescriptorSet(const layer_data *dev_data, VkDescriptorSe // TODO : This covers various error cases so should pass error enum into this function and use passed in enum here if (set_node->second->in_use.load()) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT, - HandleToUint64(set), __LINE__, VALIDATION_ERROR_00919, "DS", + HandleToUint64(set), __LINE__, VALIDATION_ERROR_2860026a, "DS", "Cannot call %s() on descriptor set 0x%" PRIxLEAST64 " that is in use by a command buffer. %s", - func_str.c_str(), HandleToUint64(set), validation_error_map[VALIDATION_ERROR_00919]); + func_str.c_str(), HandleToUint64(set), validation_error_map[VALIDATION_ERROR_2860026a]); } } return skip; @@ -3475,7 +3475,7 @@ static bool ValidateDeviceQueueCreateInfos(instance_layer_data *instance_data, c // Verify that requested queue family is known to be valid at this point in time std::string queue_family_var_name = "pCreateInfo->pQueueCreateInfos[" + std::to_string(i) + "].queueFamilyIndex"; - skip |= ValidatePhysicalDeviceQueueFamily(instance_data, pd_state, requested_queue_family, VALIDATION_ERROR_00054, + skip |= ValidatePhysicalDeviceQueueFamily(instance_data, pd_state, requested_queue_family, VALIDATION_ERROR_06c002fa, "vkCreateDevice", queue_family_var_name.c_str()); // Verify that requested queue count of queue family is known to be valid at this point in time @@ -3496,7 +3496,7 @@ static bool ValidateDeviceQueueCreateInfos(instance_layer_data *instance_data, c requested_queue_count > pd_state->queue_family_properties[requested_queue_family].queueCount) { skip |= log_msg(instance_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT, HandleToUint64(pd_state->phys_device), __LINE__, - VALIDATION_ERROR_02055, "DL", + VALIDATION_ERROR_06c002fc, "DL", "vkCreateDevice: pCreateInfo->pQueueCreateInfos[%" PRIu32 "].queueCount (=%" PRIu32 ") is not " "less than or equal to available queue count for this " @@ -3504,7 +3504,7 @@ static bool ValidateDeviceQueueCreateInfos(instance_layer_data *instance_data, c ") obtained previously " "from vkGetPhysicalDeviceQueueFamilyProperties%s (%s). %s", i, requested_queue_count, i, requested_queue_family, conditional_ext_cmd, count_note.c_str(), - validation_error_map[VALIDATION_ERROR_02055]); + validation_error_map[VALIDATION_ERROR_06c002fc]); } } } @@ -3896,9 +3896,9 @@ static bool validateCommandBufferSimultaneousUse(layer_data *dev_data, GLOBAL_CB if ((pCB->in_use.load() || current_submit_count > 1) && !(pCB->beginInfo.flags & VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT)) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, 0, - __LINE__, VALIDATION_ERROR_00133, "DS", + __LINE__, VALIDATION_ERROR_31a0008e, "DS", "Command Buffer 0x%p is already in use and is not marked for simultaneous use. %s", pCB->commandBuffer, - validation_error_map[VALIDATION_ERROR_00133]); + validation_error_map[VALIDATION_ERROR_31a0008e]); } return skip; } @@ -3990,11 +3990,11 @@ static bool validateQueueFamilyIndices(layer_data *dev_data, GLOBAL_CB_NODE *pCB if (pPool && queue_state) { if (pPool->queueFamilyIndex != queue_state->queueFamilyIndex) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(pCB->commandBuffer), __LINE__, VALIDATION_ERROR_00139, "DS", + HandleToUint64(pCB->commandBuffer), __LINE__, VALIDATION_ERROR_31a00094, "DS", "vkQueueSubmit: Primary command buffer 0x%p created in queue family %d is being submitted on queue " "0x%p from queue family %d. %s", pCB->commandBuffer, pPool->queueFamilyIndex, queue, queue_state->queueFamilyIndex, - validation_error_map[VALIDATION_ERROR_00139]); + validation_error_map[VALIDATION_ERROR_31a00094]); } // Ensure that any bound images or buffers created with SHARING_MODE_CONCURRENT have access to the current queue family @@ -4033,17 +4033,16 @@ static bool validatePrimaryCommandBufferState(layer_data *dev_data, GLOBAL_CB_NO // TODO: replace with invalidateCommandBuffers() at recording. if ((pSubCB->primaryCommandBuffer != pCB->commandBuffer) && !(pSubCB->beginInfo.flags & VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT)) { - log_msg( - dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, 0, - __LINE__, VALIDATION_ERROR_00135, "DS", - "Commandbuffer 0x%p was submitted with secondary buffer 0x%p but that buffer has subsequently been bound to " + log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, 0, + __LINE__, VALIDATION_ERROR_31a00092, "DS", + "Commandbuffer 0x%p was submitted with secondary buffer 0x%p but that buffer has subsequently been bound to " "primary cmd buffer 0x%p and it does not have VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT set. %s", - pCB->commandBuffer, pSubCB->commandBuffer, pSubCB->primaryCommandBuffer, - validation_error_map[VALIDATION_ERROR_00135]); + pCB->commandBuffer, pSubCB->commandBuffer, pSubCB->primaryCommandBuffer, + validation_error_map[VALIDATION_ERROR_31a00092]); } } - skip |= validateCommandBufferState(dev_data, pCB, "vkQueueSubmit()", current_submit_count, VALIDATION_ERROR_00134); + skip |= validateCommandBufferState(dev_data, pCB, "vkQueueSubmit()", current_submit_count, VALIDATION_ERROR_31a00090); return skip; } @@ -4053,14 +4052,14 @@ static bool ValidateFenceForSubmit(layer_data *dev_data, FENCE_NODE *pFence) { if (pFence) { if (pFence->state == FENCE_INFLIGHT) { - // TODO: opportunities for VALIDATION_ERROR_00127, VALIDATION_ERROR_01647, VALIDATION_ERROR_01953 + // TODO: opportunities for VALIDATION_ERROR_31a00080, VALIDATION_ERROR_316008b4, VALIDATION_ERROR_16400a0e skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT, HandleToUint64(pFence->fence), __LINE__, DRAWSTATE_INVALID_FENCE, "DS", "Fence 0x%" PRIx64 " is already in use by another submission.", HandleToUint64(pFence->fence)); } else if (pFence->state == FENCE_RETIRED) { - // TODO: opportunities for VALIDATION_ERROR_00126, VALIDATION_ERROR_01646, VALIDATION_ERROR_01953 + // TODO: opportunities for VALIDATION_ERROR_31a0007e, VALIDATION_ERROR_316008b2, VALIDATION_ERROR_16400a0e skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT, HandleToUint64(pFence->fence), __LINE__, MEMTRACK_INVALID_FENCE_STATE, "MEM", "Fence 0x%" PRIxLEAST64 " submitted in SIGNALED state. Fences must be reset before being submitted", @@ -4153,8 +4152,8 @@ static bool PreCallValidateQueueSubmit(layer_data *dev_data, VkQueue queue, uint for (uint32_t submit_idx = 0; submit_idx < submitCount; submit_idx++) { const VkSubmitInfo *submit = &pSubmits[submit_idx]; for (uint32_t i = 0; i < submit->waitSemaphoreCount; ++i) { - skip |= ValidateStageMaskGsTsEnables(dev_data, submit->pWaitDstStageMask[i], "vkQueueSubmit()", VALIDATION_ERROR_00142, - VALIDATION_ERROR_00143); + skip |= ValidateStageMaskGsTsEnables(dev_data, submit->pWaitDstStageMask[i], "vkQueueSubmit()", + VALIDATION_ERROR_13c00098, VALIDATION_ERROR_13c0009a); VkSemaphore semaphore = submit->pWaitSemaphores[i]; auto pSemaphore = GetSemaphoreNode(dev_data, semaphore); if (pSemaphore) { @@ -4237,10 +4236,10 @@ static bool PreCallValidateAllocateMemory(layer_data *dev_data) { bool skip = false; if (dev_data->memObjMap.size() >= dev_data->phys_dev_properties.properties.limits.maxMemoryAllocationCount) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, - HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_00611, "MEM", + HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_16c004f8, "MEM", "Number of currently valid memory objects is not less than the maximum allowed (%u). %s", dev_data->phys_dev_properties.properties.limits.maxMemoryAllocationCount, - validation_error_map[VALIDATION_ERROR_00611]); + validation_error_map[VALIDATION_ERROR_16c004f8]); } return skip; } @@ -4287,7 +4286,7 @@ static bool PreCallValidateFreeMemory(layer_data *dev_data, VkDeviceMemory mem, if (dev_data->instance_data->disabled.free_memory) return false; bool skip = false; if (*mem_info) { - skip |= ValidateObjectNotInUse(dev_data, *mem_info, *obj_struct, VALIDATION_ERROR_00620); + skip |= ValidateObjectNotInUse(dev_data, *mem_info, *obj_struct, VALIDATION_ERROR_2880054a); } return skip; } @@ -4373,10 +4372,10 @@ static bool ValidateMapMemRange(layer_data *dev_data, VkDeviceMemory mem, VkDevi } else { if ((offset + size) > mem_info->alloc_info.allocationSize) { skip = log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT, - HandleToUint64(mem), __LINE__, VALIDATION_ERROR_00628, "MEM", + HandleToUint64(mem), __LINE__, VALIDATION_ERROR_31200552, "MEM", "Mapping Memory from 0x%" PRIx64 " to 0x%" PRIx64 " oversteps total array size 0x%" PRIx64 ". %s", offset, size + offset, mem_info->alloc_info.allocationSize, - validation_error_map[VALIDATION_ERROR_00628]); + validation_error_map[VALIDATION_ERROR_31200552]); } } } @@ -4398,9 +4397,9 @@ static bool deleteMemRanges(layer_data *dev_data, VkDeviceMemory mem) { if (!mem_info->mem_range.size) { // Valid Usage: memory must currently be mapped skip = log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT, - HandleToUint64(mem), __LINE__, VALIDATION_ERROR_00649, "MEM", + HandleToUint64(mem), __LINE__, VALIDATION_ERROR_33600562, "MEM", "Unmapping Memory without memory being mapped: mem obj 0x%" PRIxLEAST64 ". %s", HandleToUint64(mem), - validation_error_map[VALIDATION_ERROR_00649]); + validation_error_map[VALIDATION_ERROR_33600562]); } mem_info->mem_range.size = 0; if (mem_info->shadow_copy) { @@ -4631,8 +4630,8 @@ static bool PreCallValidateDestroyFence(layer_data *dev_data, VkFence fence, FEN if (*fence_node) { if ((*fence_node)->state == FENCE_INFLIGHT) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT, - HandleToUint64(fence), __LINE__, VALIDATION_ERROR_00173, "DS", "Fence 0x%" PRIx64 " is in use. %s", - HandleToUint64(fence), validation_error_map[VALIDATION_ERROR_00173]); + HandleToUint64(fence), __LINE__, VALIDATION_ERROR_24e008c0, "DS", "Fence 0x%" PRIx64 " is in use. %s", + HandleToUint64(fence), validation_error_map[VALIDATION_ERROR_24e008c0]); } } return skip; @@ -4663,7 +4662,7 @@ static bool PreCallValidateDestroySemaphore(layer_data *dev_data, VkSemaphore se if (dev_data->instance_data->disabled.destroy_semaphore) return false; bool skip = false; if (*sema_node) { - skip |= ValidateObjectNotInUse(dev_data, *sema_node, *obj_struct, VALIDATION_ERROR_00199); + skip |= ValidateObjectNotInUse(dev_data, *sema_node, *obj_struct, VALIDATION_ERROR_268008e2); } return skip; } @@ -4690,7 +4689,7 @@ static bool PreCallValidateDestroyEvent(layer_data *dev_data, VkEvent event, EVE if (dev_data->instance_data->disabled.destroy_event) return false; bool skip = false; if (*event_state) { - skip |= ValidateObjectNotInUse(dev_data, *event_state, *obj_struct, VALIDATION_ERROR_00213); + skip |= ValidateObjectNotInUse(dev_data, *event_state, *obj_struct, VALIDATION_ERROR_24c008f2); } return skip; } @@ -4723,7 +4722,7 @@ static bool PreCallValidateDestroyQueryPool(layer_data *dev_data, VkQueryPool qu if (dev_data->instance_data->disabled.destroy_query_pool) return false; bool skip = false; if (*qp_state) { - skip |= ValidateObjectNotInUse(dev_data, *qp_state, *obj_struct, VALIDATION_ERROR_01012); + skip |= ValidateObjectNotInUse(dev_data, *qp_state, *obj_struct, VALIDATION_ERROR_26200632); } return skip; } @@ -4949,7 +4948,7 @@ static bool ValidateInsertMemoryRange(layer_data const *dev_data, uint64_t handl } if (memoryOffset >= mem_info->alloc_info.allocationSize) { - UNIQUE_VALIDATION_ERROR_CODE error_code = is_image ? VALIDATION_ERROR_00805 : VALIDATION_ERROR_00793; + UNIQUE_VALIDATION_ERROR_CODE error_code = is_image ? VALIDATION_ERROR_1740082c : VALIDATION_ERROR_1700080e; skip = log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT, HandleToUint64(mem_info->mem), __LINE__, error_code, "MEM", "In %s, attempting to bind memory (0x%" PRIxLEAST64 ") to object (0x%" PRIxLEAST64 @@ -5137,30 +5136,30 @@ static bool PreCallValidateBindBufferMemory(layer_data *dev_data, VkBuffer buffe skip |= ValidateInsertBufferMemoryRange(dev_data, buffer, mem_info, memoryOffset, buffer_state->requirements, "vkBindBufferMemory()"); skip |= ValidateMemoryTypes(dev_data, mem_info, buffer_state->requirements.memoryTypeBits, "vkBindBufferMemory()", - VALIDATION_ERROR_00797); + VALIDATION_ERROR_17000816); } // Validate memory requirements alignment if (SafeModulo(memoryOffset, buffer_state->requirements.alignment) != 0) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT, - buffer_handle, __LINE__, VALIDATION_ERROR_02174, "DS", + buffer_handle, __LINE__, VALIDATION_ERROR_17000818, "DS", "vkBindBufferMemory(): memoryOffset is 0x%" PRIxLEAST64 " but must be an integer multiple of the " "VkMemoryRequirements::alignment value 0x%" PRIxLEAST64 ", returned from a call to vkGetBufferMemoryRequirements with buffer. %s", - memoryOffset, buffer_state->requirements.alignment, validation_error_map[VALIDATION_ERROR_02174]); + memoryOffset, buffer_state->requirements.alignment, validation_error_map[VALIDATION_ERROR_17000818]); } // Validate memory requirements size if (buffer_state->requirements.size > (mem_info->alloc_info.allocationSize - memoryOffset)) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT, - buffer_handle, __LINE__, VALIDATION_ERROR_02175, "DS", + buffer_handle, __LINE__, VALIDATION_ERROR_1700081a, "DS", "vkBindBufferMemory(): memory size minus memoryOffset is 0x%" PRIxLEAST64 " but must be at least as large as " "VkMemoryRequirements::size value 0x%" PRIxLEAST64 ", returned from a call to vkGetBufferMemoryRequirements with buffer. %s", mem_info->alloc_info.allocationSize - memoryOffset, buffer_state->requirements.size, - validation_error_map[VALIDATION_ERROR_02175]); + validation_error_map[VALIDATION_ERROR_1700081a]); } // Validate device limits alignments @@ -5173,8 +5172,8 @@ static bool PreCallValidateBindBufferMemory(layer_data *dev_data, VkBuffer buffe // TODO: vk_validation_stats.py cannot abide braces immediately preceding or following a validation error enum // clang-format off - static const UNIQUE_VALIDATION_ERROR_CODE msgCode[3] = { VALIDATION_ERROR_00794, VALIDATION_ERROR_00795, - VALIDATION_ERROR_00796 }; + static const UNIQUE_VALIDATION_ERROR_CODE msgCode[3] = { VALIDATION_ERROR_17000810, VALIDATION_ERROR_17000812, + VALIDATION_ERROR_17000814 }; // clang-format on // Keep this one fresh! @@ -5290,7 +5289,7 @@ static bool PreCallValidateDestroyPipeline(layer_data *dev_data, VkPipeline pipe if (dev_data->instance_data->disabled.destroy_pipeline) return false; bool skip = false; if (*pipeline_state) { - skip |= ValidateObjectNotInUse(dev_data, *pipeline_state, *obj_struct, VALIDATION_ERROR_00555); + skip |= ValidateObjectNotInUse(dev_data, *pipeline_state, *obj_struct, VALIDATION_ERROR_25c005fa); } return skip; } @@ -5335,7 +5334,7 @@ static bool PreCallValidateDestroySampler(layer_data *dev_data, VkSampler sample if (dev_data->instance_data->disabled.destroy_sampler) return false; bool skip = false; if (*sampler_state) { - skip |= ValidateObjectNotInUse(dev_data, *sampler_state, *obj_struct, VALIDATION_ERROR_00837); + skip |= ValidateObjectNotInUse(dev_data, *sampler_state, *obj_struct, VALIDATION_ERROR_26600874); } return skip; } @@ -5382,7 +5381,7 @@ static bool PreCallValidateDestroyDescriptorPool(layer_data *dev_data, VkDescrip if (dev_data->instance_data->disabled.destroy_descriptor_pool) return false; bool skip = false; if (*desc_pool_state) { - skip |= ValidateObjectNotInUse(dev_data, *desc_pool_state, *obj_struct, VALIDATION_ERROR_00901); + skip |= ValidateObjectNotInUse(dev_data, *desc_pool_state, *obj_struct, VALIDATION_ERROR_2440025e); } return skip; } @@ -5450,7 +5449,7 @@ VKAPI_ATTR void VKAPI_CALL FreeCommandBuffers(VkDevice device, VkCommandPool com auto cb_node = GetCBNode(dev_data, pCommandBuffers[i]); // Delete CB information structure, and remove from commandBufferMap if (cb_node) { - skip |= checkCommandBufferInFlight(dev_data, cb_node, "free", VALIDATION_ERROR_00096); + skip |= checkCommandBufferInFlight(dev_data, cb_node, "free", VALIDATION_ERROR_2840005e); } } @@ -5497,10 +5496,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateQueryPool(VkDevice device, const VkQueryPoo if (pCreateInfo && pCreateInfo->queryType == VK_QUERY_TYPE_PIPELINE_STATISTICS) { if (!dev_data->enabled_features.pipelineStatisticsQuery) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT, 0, - __LINE__, VALIDATION_ERROR_01006, "DS", + __LINE__, VALIDATION_ERROR_11c0062e, "DS", "Query pool with type VK_QUERY_TYPE_PIPELINE_STATISTICS created on a device " "with VkDeviceCreateInfo.pEnabledFeatures.pipelineStatisticsQuery == VK_FALSE. %s", - validation_error_map[VALIDATION_ERROR_01006]); + validation_error_map[VALIDATION_ERROR_11c0062e]); } } @@ -5522,7 +5521,7 @@ static bool PreCallValidateDestroyCommandPool(layer_data *dev_data, VkCommandPoo bool skip = false; if (*cp_state) { // Verify that command buffers in pool are complete (not in-flight) - skip |= checkCommandBuffersInFlight(dev_data, *cp_state, "destroy command pool with", VALIDATION_ERROR_00077); + skip |= checkCommandBuffersInFlight(dev_data, *cp_state, "destroy command pool with", VALIDATION_ERROR_24000052); } return skip; } @@ -5569,7 +5568,7 @@ VKAPI_ATTR VkResult VKAPI_CALL ResetCommandPool(VkDevice device, VkCommandPool c std::unique_lock<std::mutex> lock(global_lock); auto pPool = GetCommandPoolNode(dev_data, commandPool); - skip |= checkCommandBuffersInFlight(dev_data, pPool, "reset command pool with", VALIDATION_ERROR_00072); + skip |= checkCommandBuffersInFlight(dev_data, pPool, "reset command pool with", VALIDATION_ERROR_32800050); lock.unlock(); if (skip) return VK_ERROR_VALIDATION_FAILED_EXT; @@ -5594,9 +5593,10 @@ VKAPI_ATTR VkResult VKAPI_CALL ResetFences(VkDevice device, uint32_t fenceCount, for (uint32_t i = 0; i < fenceCount; ++i) { auto pFence = GetFenceNode(dev_data, pFences[i]); if (pFence && pFence->state == FENCE_INFLIGHT) { - skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT, - HandleToUint64(pFences[i]), __LINE__, VALIDATION_ERROR_00183, "DS", "Fence 0x%" PRIx64 " is in use. %s", - HandleToUint64(pFences[i]), validation_error_map[VALIDATION_ERROR_00183]); + skip |= + log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT, + HandleToUint64(pFences[i]), __LINE__, VALIDATION_ERROR_32e008c6, "DS", "Fence 0x%" PRIx64 " is in use. %s", + HandleToUint64(pFences[i]), validation_error_map[VALIDATION_ERROR_32e008c6]); } } lock.unlock(); @@ -5644,7 +5644,7 @@ static bool PreCallValidateDestroyFramebuffer(layer_data *dev_data, VkFramebuffe if (dev_data->instance_data->disabled.destroy_framebuffer) return false; bool skip = false; if (*framebuffer_state) { - skip |= ValidateObjectNotInUse(dev_data, *framebuffer_state, *obj_struct, VALIDATION_ERROR_00422); + skip |= ValidateObjectNotInUse(dev_data, *framebuffer_state, *obj_struct, VALIDATION_ERROR_250006f8); } return skip; } @@ -5678,7 +5678,7 @@ static bool PreCallValidateDestroyRenderPass(layer_data *dev_data, VkRenderPass if (dev_data->instance_data->disabled.destroy_renderpass) return false; bool skip = false; if (*rp_state) { - skip |= ValidateObjectNotInUse(dev_data, *rp_state, *obj_struct, VALIDATION_ERROR_00393); + skip |= ValidateObjectNotInUse(dev_data, *rp_state, *obj_struct, VALIDATION_ERROR_264006d2); } return skip; } @@ -5943,10 +5943,10 @@ static bool PreCallCreateGraphicsPipelines(layer_data *device_data, uint32_t cou if ((properties.bufferFeatures & VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT) == 0) { skip |= log_msg( device_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, - __LINE__, VALIDATION_ERROR_01413, "IMAGE", + __LINE__, VALIDATION_ERROR_14a004de, "IMAGE", "vkCreateGraphicsPipelines: pCreateInfo[%d].pVertexInputState->vertexAttributeDescriptions[%d].format " "(%s) is not a supported vertex buffer format. %s", - i, j, string_VkFormat(format), validation_error_map[VALIDATION_ERROR_01413]); + i, j, string_VkFormat(format), validation_error_map[VALIDATION_ERROR_14a004de]); } } } @@ -6105,34 +6105,34 @@ static bool validatePushConstantRange(const layer_data *dev_data, const uint32_t if (0 == strcmp(caller_name, "vkCreatePipelineLayout()")) { if (offset >= maxPushConstantsSize) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, - __LINE__, VALIDATION_ERROR_00877, "DS", + __LINE__, VALIDATION_ERROR_11a0024c, "DS", "%s call has push constants index %u with offset %u that " "exceeds this device's maxPushConstantSize of %u. %s", - caller_name, index, offset, maxPushConstantsSize, validation_error_map[VALIDATION_ERROR_00877]); + caller_name, index, offset, maxPushConstantsSize, validation_error_map[VALIDATION_ERROR_11a0024c]); } if (size > maxPushConstantsSize - offset) { - skip |= - log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, - __LINE__, VALIDATION_ERROR_00880, "DS", - "%s call has push constants index %u with offset %u and size %u that " - "exceeds this device's maxPushConstantSize of %u. %s", - caller_name, index, offset, size, maxPushConstantsSize, validation_error_map[VALIDATION_ERROR_00880]); + skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, + __LINE__, VALIDATION_ERROR_11a00254, "DS", + "%s call has push constants index %u with offset %u and size %u that " + "exceeds this device's maxPushConstantSize of %u. %s", + caller_name, index, offset, size, maxPushConstantsSize, + validation_error_map[VALIDATION_ERROR_11a00254]); } } else if (0 == strcmp(caller_name, "vkCmdPushConstants()")) { if (offset >= maxPushConstantsSize) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, - __LINE__, VALIDATION_ERROR_00991, "DS", + __LINE__, VALIDATION_ERROR_1bc002e4, "DS", "%s call has push constants index %u with offset %u that " "exceeds this device's maxPushConstantSize of %u. %s", - caller_name, index, offset, maxPushConstantsSize, validation_error_map[VALIDATION_ERROR_00991]); + caller_name, index, offset, maxPushConstantsSize, validation_error_map[VALIDATION_ERROR_1bc002e4]); } if (size > maxPushConstantsSize - offset) { - skip |= - log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, - __LINE__, VALIDATION_ERROR_00992, "DS", - "%s call has push constants index %u with offset %u and size %u that " - "exceeds this device's maxPushConstantSize of %u. %s", - caller_name, index, offset, size, maxPushConstantsSize, validation_error_map[VALIDATION_ERROR_00992]); + skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, + __LINE__, VALIDATION_ERROR_1bc002e6, "DS", + "%s call has push constants index %u with offset %u and size %u that " + "exceeds this device's maxPushConstantSize of %u. %s", + caller_name, index, offset, size, maxPushConstantsSize, + validation_error_map[VALIDATION_ERROR_1bc002e6]); } } else { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, @@ -6144,32 +6144,32 @@ static bool validatePushConstantRange(const layer_data *dev_data, const uint32_t if (0 == strcmp(caller_name, "vkCreatePipelineLayout()")) { if (size == 0) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, - __LINE__, VALIDATION_ERROR_00878, "DS", + __LINE__, VALIDATION_ERROR_11a00250, "DS", "%s call has push constants index %u with " "size %u. Size must be greater than zero. %s", - caller_name, index, size, validation_error_map[VALIDATION_ERROR_00878]); + caller_name, index, size, validation_error_map[VALIDATION_ERROR_11a00250]); } if (size & 0x3) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, - __LINE__, VALIDATION_ERROR_00879, "DS", + __LINE__, VALIDATION_ERROR_11a00252, "DS", "%s call has push constants index %u with " "size %u. Size must be a multiple of 4. %s", - caller_name, index, size, validation_error_map[VALIDATION_ERROR_00879]); + caller_name, index, size, validation_error_map[VALIDATION_ERROR_11a00252]); } } else if (0 == strcmp(caller_name, "vkCmdPushConstants()")) { if (size == 0) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, - __LINE__, VALIDATION_ERROR_01000, "DS", + __LINE__, VALIDATION_ERROR_1bc2c21b, "DS", "%s call has push constants index %u with " "size %u. Size must be greater than zero. %s", - caller_name, index, size, validation_error_map[VALIDATION_ERROR_01000]); + caller_name, index, size, validation_error_map[VALIDATION_ERROR_1bc2c21b]); } if (size & 0x3) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, - __LINE__, VALIDATION_ERROR_00990, "DS", + __LINE__, VALIDATION_ERROR_1bc002e2, "DS", "%s call has push constants index %u with " "size %u. Size must be a multiple of 4. %s", - caller_name, index, size, validation_error_map[VALIDATION_ERROR_00990]); + caller_name, index, size, validation_error_map[VALIDATION_ERROR_1bc002e2]); } } else { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, @@ -6180,16 +6180,16 @@ static bool validatePushConstantRange(const layer_data *dev_data, const uint32_t if ((offset & 0x3) != 0) { if (0 == strcmp(caller_name, "vkCreatePipelineLayout()")) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, - __LINE__, VALIDATION_ERROR_02521, "DS", + __LINE__, VALIDATION_ERROR_11a0024e, "DS", "%s call has push constants index %u with " "offset %u. Offset must be a multiple of 4. %s", - caller_name, index, offset, validation_error_map[VALIDATION_ERROR_02521]); + caller_name, index, offset, validation_error_map[VALIDATION_ERROR_11a0024e]); } else if (0 == strcmp(caller_name, "vkCmdPushConstants()")) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, - __LINE__, VALIDATION_ERROR_00989, "DS", + __LINE__, VALIDATION_ERROR_1bc002e0, "DS", "%s call has push constants with " "offset %u. Offset must be a multiple of 4. %s", - caller_name, offset, validation_error_map[VALIDATION_ERROR_00989]); + caller_name, offset, validation_error_map[VALIDATION_ERROR_1bc002e0]); } else { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, DRAWSTATE_INTERNAL_ERROR, "DS", "%s caller not supported.", caller_name); @@ -6210,8 +6210,8 @@ VKAPI_ATTR VkResult VKAPI_CALL CreatePipelineLayout(VkDevice device, const VkPip pCreateInfo->pPushConstantRanges[i].size, "vkCreatePipelineLayout()", i); if (0 == pCreateInfo->pPushConstantRanges[i].stageFlags) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, - __LINE__, VALIDATION_ERROR_00882, "DS", "vkCreatePipelineLayout() call has no stageFlags set. %s", - validation_error_map[VALIDATION_ERROR_00882]); + __LINE__, VALIDATION_ERROR_11a2dc03, "DS", "vkCreatePipelineLayout() call has no stageFlags set. %s", + validation_error_map[VALIDATION_ERROR_11a2dc03]); } } if (skip) return VK_ERROR_VALIDATION_FAILED_EXT; @@ -6221,9 +6221,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreatePipelineLayout(VkDevice device, const VkPip for (j = i + 1; j < pCreateInfo->pushConstantRangeCount; ++j) { if (0 != (pCreateInfo->pPushConstantRanges[i].stageFlags & pCreateInfo->pPushConstantRanges[j].stageFlags)) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, - __LINE__, VALIDATION_ERROR_00871, "DS", + __LINE__, VALIDATION_ERROR_0fe00248, "DS", "vkCreatePipelineLayout() Duplicate stage flags found in ranges %d and %d. %s", i, j, - validation_error_map[VALIDATION_ERROR_00871]); + validation_error_map[VALIDATION_ERROR_0fe00248]); } } } @@ -6268,7 +6268,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorPool(VkDevice device, const VkDes VKAPI_ATTR VkResult VKAPI_CALL ResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) { - // TODO : Add checks for VALIDATION_ERROR_00928 + // TODO : Add checks for VALIDATION_ERROR_32a00272 layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map); VkResult result = dev_data->dispatch_table.ResetDescriptorPool(device, descriptorPool, flags); if (VK_SUCCESS == result) { @@ -6332,10 +6332,10 @@ static bool PreCallValidateFreeDescriptorSets(const layer_data *dev_data, VkDesc if (pool_state && !(VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT & pool_state->createInfo.flags)) { // Can't Free from a NON_FREE pool skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT, - HandleToUint64(pool), __LINE__, VALIDATION_ERROR_00922, "DS", + HandleToUint64(pool), __LINE__, VALIDATION_ERROR_28600270, "DS", "It is invalid to call vkFreeDescriptorSets() with a pool created without setting " "VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT. %s", - validation_error_map[VALIDATION_ERROR_00922]); + validation_error_map[VALIDATION_ERROR_28600270]); } return skip; } @@ -6476,10 +6476,10 @@ VKAPI_ATTR VkResult VKAPI_CALL BeginCommandBuffer(VkCommandBuffer commandBuffer, // This implicitly resets the Cmd Buffer so make sure any fence is done and then clear memory references if (cb_node->in_use.load()) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_00103, "MEM", + HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_16e00062, "MEM", "Calling vkBeginCommandBuffer() on active command buffer 0x%p before it has completed. " "You must check command buffer fence before this call. %s", - commandBuffer, validation_error_map[VALIDATION_ERROR_00103]); + commandBuffer, validation_error_map[VALIDATION_ERROR_16e00062]); } clear_cmd_buf_and_mem_references(dev_data, cb_node); if (cb_node->createInfo.level != VK_COMMAND_BUFFER_LEVEL_PRIMARY) { @@ -6488,9 +6488,9 @@ VKAPI_ATTR VkResult VKAPI_CALL BeginCommandBuffer(VkCommandBuffer commandBuffer, if (!pInfo) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_00106, "DS", + HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_16e00066, "DS", "vkBeginCommandBuffer(): Secondary Command Buffer (0x%p) must have inheritance info. %s", commandBuffer, - validation_error_map[VALIDATION_ERROR_00106]); + validation_error_map[VALIDATION_ERROR_16e00066]); } else { if (pBeginInfo->flags & VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT) { assert(pInfo->renderPass); @@ -6504,14 +6504,14 @@ VKAPI_ATTR VkResult VKAPI_CALL BeginCommandBuffer(VkCommandBuffer commandBuffer, // renderPass that framebuffer was created with must be compatible with local renderPass skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, HandleToUint64(commandBuffer), __LINE__, - VALIDATION_ERROR_00112, "DS", + VALIDATION_ERROR_0280006e, "DS", "vkBeginCommandBuffer(): Secondary Command " "Buffer (0x%p) renderPass (0x%" PRIxLEAST64 ") is incompatible w/ framebuffer " "(0x%" PRIxLEAST64 ") w/ render pass (0x%" PRIxLEAST64 ") due to: %s. %s", commandBuffer, HandleToUint64(pInfo->renderPass), HandleToUint64(pInfo->framebuffer), HandleToUint64(framebuffer->createInfo.renderPass), errorString.c_str(), - validation_error_map[VALIDATION_ERROR_00112]); + validation_error_map[VALIDATION_ERROR_0280006e]); } // Connect this framebuffer and its children to this cmdBuffer AddFramebufferBinding(dev_data, cb_node, framebuffer); @@ -6521,11 +6521,11 @@ VKAPI_ATTR VkResult VKAPI_CALL BeginCommandBuffer(VkCommandBuffer commandBuffer, (pInfo->queryFlags & VK_QUERY_CONTROL_PRECISE_BIT)) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, HandleToUint64(commandBuffer), __LINE__, - VALIDATION_ERROR_00107, "DS", + VALIDATION_ERROR_16e00068, "DS", "vkBeginCommandBuffer(): Secondary Command Buffer (0x%p) must not have " "VK_QUERY_CONTROL_PRECISE_BIT if occulusionQuery is disabled or the device does not " "support precise occlusion queries. %s", - commandBuffer, validation_error_map[VALIDATION_ERROR_00107]); + commandBuffer, validation_error_map[VALIDATION_ERROR_16e00068]); } } if (pInfo && pInfo->renderPass != VK_NULL_HANDLE) { @@ -6534,32 +6534,32 @@ VKAPI_ATTR VkResult VKAPI_CALL BeginCommandBuffer(VkCommandBuffer commandBuffer, if (pInfo->subpass >= renderPass->createInfo.subpassCount) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, HandleToUint64(commandBuffer), __LINE__, - VALIDATION_ERROR_00111, "DS", + VALIDATION_ERROR_0280006c, "DS", "vkBeginCommandBuffer(): Secondary Command Buffers (0x%p) must have a subpass index (%d) " "that is less than the number of subpasses (%d). %s", commandBuffer, pInfo->subpass, renderPass->createInfo.subpassCount, - validation_error_map[VALIDATION_ERROR_00111]); + validation_error_map[VALIDATION_ERROR_0280006c]); } } } } if (CB_RECORDING == cb_node->state) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_00103, "DS", + HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_16e00062, "DS", "vkBeginCommandBuffer(): Cannot call Begin on command buffer (0x%p" ") in the RECORDING state. Must first call vkEndCommandBuffer(). %s", - commandBuffer, validation_error_map[VALIDATION_ERROR_00103]); + commandBuffer, validation_error_map[VALIDATION_ERROR_16e00062]); } else if (CB_RECORDED == cb_node->state || (CB_INVALID == cb_node->state && CMD_END == cb_node->last_cmd)) { VkCommandPool cmdPool = cb_node->createInfo.commandPool; auto pPool = GetCommandPoolNode(dev_data, cmdPool); if (!(VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT & pPool->createFlags)) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_00105, "DS", + HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_16e00064, "DS", "Call to vkBeginCommandBuffer() on command buffer (0x%p" ") attempts to implicitly reset cmdBuffer created from command pool (0x%" PRIxLEAST64 ") that does NOT have the VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT bit set. %s", - commandBuffer, HandleToUint64(cmdPool), validation_error_map[VALIDATION_ERROR_00105]); + commandBuffer, HandleToUint64(cmdPool), validation_error_map[VALIDATION_ERROR_16e00064]); } resetCB(dev_data, commandBuffer); } @@ -6598,15 +6598,15 @@ VKAPI_ATTR VkResult VKAPI_CALL EndCommandBuffer(VkCommandBuffer commandBuffer) { !(pCB->beginInfo.flags & VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT)) { // This needs spec clarification to update valid usage, see comments in PR: // https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/pull/516#discussion_r63013756 - skip |= insideRenderPass(dev_data, pCB, "vkEndCommandBuffer()", VALIDATION_ERROR_00123); + skip |= insideRenderPass(dev_data, pCB, "vkEndCommandBuffer()", VALIDATION_ERROR_27400078); } skip |= ValidateCmd(dev_data, pCB, CMD_END, "vkEndCommandBuffer()"); UpdateCmdBufferLastCmd(pCB, CMD_END); for (auto query : pCB->activeQueries) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_00124, "DS", + HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_2740007a, "DS", "Ending command buffer with in progress query: queryPool 0x%" PRIx64 ", index %d. %s", - HandleToUint64(query.pool), query.index, validation_error_map[VALIDATION_ERROR_00124]); + HandleToUint64(query.pool), query.index, validation_error_map[VALIDATION_ERROR_2740007a]); } } if (!skip) { @@ -6631,12 +6631,12 @@ VKAPI_ATTR VkResult VKAPI_CALL ResetCommandBuffer(VkCommandBuffer commandBuffer, auto pPool = GetCommandPoolNode(dev_data, cmdPool); if (!(VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT & pPool->createFlags)) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_00093, "DS", + HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_3260005c, "DS", "Attempt to reset command buffer (0x%p) created from command pool (0x%" PRIxLEAST64 ") that does NOT have the VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT bit set. %s", - commandBuffer, HandleToUint64(cmdPool), validation_error_map[VALIDATION_ERROR_00093]); + commandBuffer, HandleToUint64(cmdPool), validation_error_map[VALIDATION_ERROR_3260005c]); } - skip |= checkCommandBufferInFlight(dev_data, pCB, "reset", VALIDATION_ERROR_00092); + skip |= checkCommandBufferInFlight(dev_data, pCB, "reset", VALIDATION_ERROR_3260005a); lock.unlock(); if (skip) return VK_ERROR_VALIDATION_FAILED_EXT; VkResult result = dev_data->dispatch_table.ResetCommandBuffer(commandBuffer, flags); @@ -6656,7 +6656,7 @@ VKAPI_ATTR void VKAPI_CALL CmdBindPipeline(VkCommandBuffer commandBuffer, VkPipe 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); + VALIDATION_ERROR_18002415); skip |= ValidateCmd(dev_data, cb_state, CMD_BINDPIPELINE, "vkCmdBindPipeline()"); UpdateCmdBufferLastCmd(cb_state, CMD_BINDPIPELINE); if ((VK_PIPELINE_BIND_POINT_COMPUTE == pipelineBindPoint) && (cb_state->activeRenderPass)) { @@ -6666,7 +6666,7 @@ VKAPI_ATTR void VKAPI_CALL CmdBindPipeline(VkCommandBuffer commandBuffer, VkPipe "Incorrectly binding compute pipeline (0x%" PRIxLEAST64 ") during active RenderPass (0x%" PRIxLEAST64 ")", HandleToUint64(pipeline), HandleToUint64(cb_state->activeRenderPass->renderPass)); } - // TODO: VALIDATION_ERROR_00594 VALIDATION_ERROR_00596 + // TODO: VALIDATION_ERROR_18000612 VALIDATION_ERROR_18000616 PIPELINE_STATE *pipe_state = getPipelineState(dev_data, pipeline); if (pipe_state) { @@ -6676,9 +6676,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBindPipeline(VkCommandBuffer commandBuffer, VkPipe skip |= validate_dual_src_blend_feature(dev_data, pipe_state); } else { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, - HandleToUint64(pipeline), __LINE__, VALIDATION_ERROR_00600, "DS", + HandleToUint64(pipeline), __LINE__, VALIDATION_ERROR_18027e01, "DS", "Attempt to bind Pipeline 0x%" PRIxLEAST64 " that doesn't exist! %s", HandleToUint64(pipeline), - validation_error_map[VALIDATION_ERROR_00600]); + validation_error_map[VALIDATION_ERROR_18027e01]); } addCommandBufferBinding(&pipe_state->cb_bindings, {HandleToUint64(pipeline), kVulkanObjectTypePipeline}, cb_state); if (VK_PIPELINE_BIND_POINT_GRAPHICS == pipelineBindPoint) { @@ -6701,7 +6701,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 |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetViewport()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01446); + skip |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetViewport()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_1e002415); skip |= ValidateCmd(dev_data, pCB, CMD_SETVIEWPORTSTATE, "vkCmdSetViewport()"); UpdateCmdBufferLastCmd(pCB, CMD_SETVIEWPORTSTATE); pCB->viewportMask |= ((1u << viewportCount) - 1u) << firstViewport; @@ -6717,7 +6717,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 |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetScissor()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01495); + skip |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetScissor()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_1d802415); skip |= ValidateCmd(dev_data, pCB, CMD_SETSCISSORSTATE, "vkCmdSetScissor()"); UpdateCmdBufferLastCmd(pCB, CMD_SETSCISSORSTATE); pCB->scissorMask |= ((1u << scissorCount) - 1u) << firstScissor; @@ -6732,7 +6732,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 |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetLineWidth()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01480); + skip |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetLineWidth()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_1d602415); skip |= ValidateCmd(dev_data, pCB, CMD_SETLINEWIDTHSTATE, "vkCmdSetLineWidth()"); UpdateCmdBufferLastCmd(pCB, CMD_SETLINEWIDTHSTATE); pCB->status |= CBSTATUS_LINE_WIDTH_SET; @@ -6740,10 +6740,10 @@ VKAPI_ATTR void VKAPI_CALL CmdSetLineWidth(VkCommandBuffer commandBuffer, float PIPELINE_STATE *pPipeTrav = pCB->lastBound[VK_PIPELINE_BIND_POINT_GRAPHICS].pipeline_state; if (pPipeTrav != NULL && !isDynamic(pPipeTrav, VK_DYNAMIC_STATE_LINE_WIDTH)) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_WARNING_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_01476, "DS", + HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_1d600626, "DS", "vkCmdSetLineWidth called but pipeline was created without VK_DYNAMIC_STATE_LINE_WIDTH " "flag. This is undefined behavior and could be ignored. %s", - validation_error_map[VALIDATION_ERROR_01476]); + validation_error_map[VALIDATION_ERROR_1d600626]); } else { skip |= verifyLineWidth(dev_data, DRAWSTATE_INVALID_SET, kVulkanObjectTypeCommandBuffer, HandleToUint64(commandBuffer), lineWidth); @@ -6760,14 +6760,14 @@ 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 |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetDepthBias()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01485); + skip |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetDepthBias()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_1cc02415); skip |= ValidateCmd(dev_data, pCB, CMD_SETDEPTHBIASSTATE, "vkCmdSetDepthBias()"); if ((depthBiasClamp != 0.0) && (!dev_data->enabled_features.depthBiasClamp)) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_01482, "DS", + HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_1cc0062c, "DS", "vkCmdSetDepthBias(): the depthBiasClamp device feature is disabled: the depthBiasClamp " "parameter must be set to 0.0. %s", - validation_error_map[VALIDATION_ERROR_01482]); + validation_error_map[VALIDATION_ERROR_1cc0062c]); } if (!skip) { UpdateCmdBufferLastCmd(pCB, CMD_SETDEPTHBIASSTATE); @@ -6785,7 +6785,7 @@ 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 |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetBlendConstants()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01553); + skip |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetBlendConstants()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_1ca02415); skip |= ValidateCmd(dev_data, pCB, CMD_SETBLENDSTATE, "vkCmdSetBlendConstants()"); UpdateCmdBufferLastCmd(pCB, CMD_SETBLENDSTATE); pCB->status |= CBSTATUS_BLEND_CONSTANTS_SET; @@ -6800,7 +6800,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 |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetDepthBounds()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01509); + skip |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetDepthBounds()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_1ce02415); skip |= ValidateCmd(dev_data, pCB, CMD_SETDEPTHBOUNDSSTATE, "vkCmdSetDepthBounds()"); UpdateCmdBufferLastCmd(pCB, CMD_SETDEPTHBOUNDSSTATE); pCB->status |= CBSTATUS_DEPTH_BOUNDS_SET; @@ -6816,7 +6816,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 |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetStencilCompareMask()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01519); + skip |= + ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetStencilCompareMask()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_1da02415); skip |= ValidateCmd(dev_data, pCB, CMD_SETSTENCILREADMASKSTATE, "vkCmdSetStencilCompareMask()"); UpdateCmdBufferLastCmd(pCB, CMD_SETSTENCILREADMASKSTATE); pCB->status |= CBSTATUS_STENCIL_READ_MASK_SET; @@ -6831,7 +6832,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 |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetStencilWriteMask()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01525); + skip |= + ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetStencilWriteMask()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_1de02415); skip |= ValidateCmd(dev_data, pCB, CMD_SETSTENCILWRITEMASKSTATE, "vkCmdSetStencilWriteMask()"); UpdateCmdBufferLastCmd(pCB, CMD_SETSTENCILWRITEMASKSTATE); pCB->status |= CBSTATUS_STENCIL_WRITE_MASK_SET; @@ -6846,7 +6848,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 |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetStencilReference()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01531); + skip |= + ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetStencilReference()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_1dc02415); skip |= ValidateCmd(dev_data, pCB, CMD_SETSTENCILREFERENCESTATE, "vkCmdSetStencilReference()"); UpdateCmdBufferLastCmd(pCB, CMD_SETSTENCILREFERENCESTATE); pCB->status |= CBSTATUS_STENCIL_REFERENCE_SET; @@ -6865,7 +6868,7 @@ VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorSets(VkCommandBuffer commandBuffer, 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); + VALIDATION_ERROR_17c02415); 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; @@ -6898,11 +6901,11 @@ VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorSets(VkCommandBuffer commandBuffer, if (!verify_set_layout_compatibility(descriptor_set, pipeline_layout, set_idx + firstSet, error_string)) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT, HandleToUint64(pDescriptorSets[set_idx]), - __LINE__, VALIDATION_ERROR_00974, "DS", + __LINE__, VALIDATION_ERROR_17c002cc, "DS", "descriptorSet #%u being bound is not compatible with overlapping descriptorSetLayout " "at index %u of pipelineLayout 0x%" PRIxLEAST64 " due to: %s. %s", set_idx, set_idx + firstSet, HandleToUint64(layout), error_string.c_str(), - validation_error_map[VALIDATION_ERROR_00974]); + validation_error_map[VALIDATION_ERROR_17c002cc]); } auto set_dynamic_descriptor_count = descriptor_set->GetDynamicDescriptorCount(); @@ -6928,28 +6931,30 @@ VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorSets(VkCommandBuffer commandBuffer, if (SafeModulo( pDynamicOffsets[cur_dyn_offset], dev_data->phys_dev_properties.properties.limits.minUniformBufferOffsetAlignment) != 0) { - skip |= log_msg( - dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, - VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT, 0, __LINE__, VALIDATION_ERROR_00978, "DS", - "vkCmdBindDescriptorSets(): pDynamicOffsets[%d] is %d but must be a multiple of " - "device limit minUniformBufferOffsetAlignment 0x%" PRIxLEAST64 ". %s", - cur_dyn_offset, pDynamicOffsets[cur_dyn_offset], - dev_data->phys_dev_properties.properties.limits.minUniformBufferOffsetAlignment, - validation_error_map[VALIDATION_ERROR_00978]); + skip |= + log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, + VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT, 0, __LINE__, + VALIDATION_ERROR_17c002d4, "DS", + "vkCmdBindDescriptorSets(): pDynamicOffsets[%d] is %d but must be a multiple of " + "device limit minUniformBufferOffsetAlignment 0x%" PRIxLEAST64 ". %s", + cur_dyn_offset, pDynamicOffsets[cur_dyn_offset], + dev_data->phys_dev_properties.properties.limits.minUniformBufferOffsetAlignment, + validation_error_map[VALIDATION_ERROR_17c002d4]); } cur_dyn_offset++; } else if (descriptor_set->GetTypeFromGlobalIndex(d) == VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC) { if (SafeModulo( pDynamicOffsets[cur_dyn_offset], dev_data->phys_dev_properties.properties.limits.minStorageBufferOffsetAlignment) != 0) { - skip |= log_msg( - dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, - VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT, 0, __LINE__, VALIDATION_ERROR_00978, "DS", - "vkCmdBindDescriptorSets(): pDynamicOffsets[%d] is %d but must be a multiple of " - "device limit minStorageBufferOffsetAlignment 0x%" PRIxLEAST64 ". %s", - cur_dyn_offset, pDynamicOffsets[cur_dyn_offset], - dev_data->phys_dev_properties.properties.limits.minStorageBufferOffsetAlignment, - validation_error_map[VALIDATION_ERROR_00978]); + skip |= + log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, + VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT, 0, __LINE__, + VALIDATION_ERROR_17c002d4, "DS", + "vkCmdBindDescriptorSets(): pDynamicOffsets[%d] is %d but must be a multiple of " + "device limit minStorageBufferOffsetAlignment 0x%" PRIxLEAST64 ". %s", + cur_dyn_offset, pDynamicOffsets[cur_dyn_offset], + dev_data->phys_dev_properties.properties.limits.minStorageBufferOffsetAlignment, + validation_error_map[VALIDATION_ERROR_17c002d4]); } cur_dyn_offset++; } @@ -7008,11 +7013,12 @@ VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorSets(VkCommandBuffer commandBuffer, } // dynamicOffsetCount must equal the total number of dynamic descriptors in the sets being bound if (total_dynamic_descriptors != dynamicOffsetCount) { - skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_00975, "DS", - "Attempting to bind %u descriptorSets with %u dynamic descriptors, but dynamicOffsetCount " - "is %u. It should exactly match the number of dynamic descriptors. %s", - setCount, total_dynamic_descriptors, dynamicOffsetCount, validation_error_map[VALIDATION_ERROR_00975]); + skip |= + log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, + HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_17c002ce, "DS", + "Attempting to bind %u descriptorSets with %u dynamic descriptors, but dynamicOffsetCount " + "is %u. It should exactly match the number of dynamic descriptors. %s", + setCount, total_dynamic_descriptors, dynamicOffsetCount, validation_error_map[VALIDATION_ERROR_17c002ce]); } } lock.unlock(); @@ -7031,9 +7037,10 @@ 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 |= + ValidateCmdQueueFlags(dev_data, cb_node, "vkCmdBindIndexBuffer()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_17e02415); skip |= ValidateCmd(dev_data, cb_node, CMD_BINDINDEXBUFFER, "vkCmdBindIndexBuffer()"); - skip |= ValidateMemoryIsBoundToBuffer(dev_data, buffer_state, "vkCmdBindIndexBuffer()", VALIDATION_ERROR_02543); + skip |= ValidateMemoryIsBoundToBuffer(dev_data, buffer_state, "vkCmdBindIndexBuffer()", VALIDATION_ERROR_17e00364); std::function<bool()> function = [=]() { return ValidateBufferMemoryIsValid(dev_data, buffer_state, "vkCmdBindIndexBuffer()"); }; @@ -7086,21 +7093,22 @@ VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers(VkCommandBuffer commandBuffer, u auto cb_node = GetCBNode(dev_data, commandBuffer); if (cb_node) { - skip |= ValidateCmdQueueFlags(dev_data, cb_node, "vkCmdBindVertexBuffers()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01423); + skip |= + ValidateCmdQueueFlags(dev_data, cb_node, "vkCmdBindVertexBuffers()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_18202415); 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); - skip |= ValidateMemoryIsBoundToBuffer(dev_data, buffer_state, "vkCmdBindVertexBuffers()", VALIDATION_ERROR_02546); + skip |= ValidateMemoryIsBoundToBuffer(dev_data, buffer_state, "vkCmdBindVertexBuffers()", VALIDATION_ERROR_182004e8); std::function<bool()> function = [=]() { return ValidateBufferMemoryIsValid(dev_data, buffer_state, "vkCmdBindVertexBuffers()"); }; cb_node->validate_functions.push_back(function); if (pOffsets[i] >= buffer_state->createInfo.size) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT, - HandleToUint64(buffer_state->buffer), __LINE__, VALIDATION_ERROR_01417, "DS", + HandleToUint64(buffer_state->buffer), __LINE__, VALIDATION_ERROR_182004e4, "DS", "vkCmdBindVertexBuffers() offset (0x%" PRIxLEAST64 ") is beyond the end of the buffer. %s", - pOffsets[i], validation_error_map[VALIDATION_ERROR_01417]); + pOffsets[i], validation_error_map[VALIDATION_ERROR_182004e4]); } } UpdateCmdBufferLastCmd(cb_node, CMD_BINDVERTEXBUFFER); @@ -7173,7 +7181,7 @@ 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, VK_QUEUE_GRAPHICS_BIT, - VALIDATION_ERROR_01364, VALIDATION_ERROR_01365, VALIDATION_ERROR_02203); + VALIDATION_ERROR_1a202415, VALIDATION_ERROR_1a200017, VALIDATION_ERROR_1a200376); } static void PostCallRecordCmdDraw(layer_data *dev_data, GLOBAL_CB_NODE *cb_state, VkPipelineBindPoint bind_point) { @@ -7198,7 +7206,7 @@ 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, VK_QUEUE_GRAPHICS_BIT, - VALIDATION_ERROR_01371, VALIDATION_ERROR_01372, VALIDATION_ERROR_02216); + VALIDATION_ERROR_1a402415, VALIDATION_ERROR_1a400017, VALIDATION_ERROR_1a40039c); } static void PostCallRecordCmdDrawIndexed(layer_data *dev_data, GLOBAL_CB_NODE *cb_state, VkPipelineBindPoint bind_point) { @@ -7224,10 +7232,11 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_ static bool PreCallValidateCmdDrawIndirect(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_DRAWINDIRECT, cb_state, caller, - VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01380, VALIDATION_ERROR_01381, VALIDATION_ERROR_02234); + bool skip = + ValidateCmdDrawType(dev_data, cmd_buffer, indexed, bind_point, CMD_DRAWINDIRECT, cb_state, caller, VK_QUEUE_GRAPHICS_BIT, + VALIDATION_ERROR_1aa02415, VALIDATION_ERROR_1aa00017, VALIDATION_ERROR_1aa003cc); *buffer_state = GetBufferState(dev_data, buffer); - skip |= ValidateMemoryIsBoundToBuffer(dev_data, *buffer_state, caller, VALIDATION_ERROR_02544); + skip |= ValidateMemoryIsBoundToBuffer(dev_data, *buffer_state, caller, VALIDATION_ERROR_1aa003b4); // TODO: If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the // VkDrawIndirectCommand structures accessed by this command must be 0, which will require access to the contents of 'buffer'. return skip; @@ -7259,10 +7268,11 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuff static bool PreCallValidateCmdDrawIndexedIndirect(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_DRAWINDEXEDINDIRECT, cb_state, caller, - VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_01392, VALIDATION_ERROR_01393, VALIDATION_ERROR_02272); + bool skip = + ValidateCmdDrawType(dev_data, cmd_buffer, indexed, bind_point, CMD_DRAWINDEXEDINDIRECT, cb_state, caller, + VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_1a602415, VALIDATION_ERROR_1a600017, VALIDATION_ERROR_1a600434); *buffer_state = GetBufferState(dev_data, buffer); - skip |= ValidateMemoryIsBoundToBuffer(dev_data, *buffer_state, caller, VALIDATION_ERROR_02545); + skip |= ValidateMemoryIsBoundToBuffer(dev_data, *buffer_state, caller, VALIDATION_ERROR_1a60041c); // TODO: If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the // VkDrawIndexedIndirectCommand structures accessed by this command must be 0, which will require access to the contents of // 'buffer'. @@ -7295,7 +7305,7 @@ 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, VK_QUEUE_COMPUTE_BIT, - VALIDATION_ERROR_01561, VALIDATION_ERROR_01562, VALIDATION_ERROR_UNDEFINED); + VALIDATION_ERROR_19c02415, VALIDATION_ERROR_19c00017, VALIDATION_ERROR_UNDEFINED); } static void PostCallRecordCmdDispatch(layer_data *dev_data, GLOBAL_CB_NODE *cb_state, VkPipelineBindPoint bind_point) { @@ -7322,9 +7332,9 @@ static bool PreCallValidateCmdDispatchIndirect(layer_data *dev_data, VkCommandBu BUFFER_STATE **buffer_state, const char *caller) { 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); + VALIDATION_ERROR_1a002415, VALIDATION_ERROR_1a000017, VALIDATION_ERROR_UNDEFINED); *buffer_state = GetBufferState(dev_data, buffer); - skip |= ValidateMemoryIsBoundToBuffer(dev_data, *buffer_state, caller, VALIDATION_ERROR_02547); + skip |= ValidateMemoryIsBoundToBuffer(dev_data, *buffer_state, caller, VALIDATION_ERROR_1a000322); return skip; } @@ -7491,23 +7501,24 @@ VKAPI_ATTR void VKAPI_CALL CmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuff auto cb_node = GetCBNode(dev_data, commandBuffer); auto dst_buff_state = GetBufferState(dev_data, dstBuffer); if (cb_node && dst_buff_state) { - skip |= ValidateMemoryIsBoundToBuffer(dev_data, dst_buff_state, "vkCmdUpdateBuffer()", VALIDATION_ERROR_02530); + skip |= ValidateMemoryIsBoundToBuffer(dev_data, dst_buff_state, "vkCmdUpdateBuffer()", VALIDATION_ERROR_1e400046); // Update bindings between buffer and cmd buffer AddCommandBufferBindingBuffer(dev_data, cb_node, dst_buff_state); // Validate that DST buffer has correct usage flags set - skip |= ValidateBufferUsageFlags(dev_data, dst_buff_state, VK_BUFFER_USAGE_TRANSFER_DST_BIT, true, VALIDATION_ERROR_01146, - "vkCmdUpdateBuffer()", "VK_BUFFER_USAGE_TRANSFER_DST_BIT"); + skip |= ValidateBufferUsageFlags(dev_data, dst_buff_state, VK_BUFFER_USAGE_TRANSFER_DST_BIT, true, + VALIDATION_ERROR_1e400044, "vkCmdUpdateBuffer()", "VK_BUFFER_USAGE_TRANSFER_DST_BIT"); std::function<bool()> function = [=]() { SetBufferMemoryValid(dev_data, dst_buff_state, true); return false; }; cb_node->validate_functions.push_back(function); - skip |= ValidateCmdQueueFlags(dev_data, cb_node, "vkCmdUpdateBuffer()", - VK_QUEUE_TRANSFER_BIT | VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, VALIDATION_ERROR_01154); + skip |= + ValidateCmdQueueFlags(dev_data, cb_node, "vkCmdUpdateBuffer()", + VK_QUEUE_TRANSFER_BIT | VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, VALIDATION_ERROR_1e402415); skip |= ValidateCmd(dev_data, cb_node, CMD_UPDATEBUFFER, "vkCmdUpdateBuffer()"); UpdateCmdBufferLastCmd(cb_node, CMD_UPDATEBUFFER); - skip |= insideRenderPass(dev_data, cb_node, "vkCmdUpdateBuffer()", VALIDATION_ERROR_01155); + skip |= insideRenderPass(dev_data, cb_node, "vkCmdUpdateBuffer()", VALIDATION_ERROR_1e400017); } else { assert(0); } @@ -7625,12 +7636,12 @@ VKAPI_ATTR void VKAPI_CALL CmdSetEvent(VkCommandBuffer commandBuffer, VkEvent ev GLOBAL_CB_NODE *pCB = GetCBNode(dev_data, commandBuffer); if (pCB) { skip |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdSetEvent()", VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, - VALIDATION_ERROR_00237); + VALIDATION_ERROR_1d402415); skip |= ValidateCmd(dev_data, pCB, CMD_SETEVENT, "vkCmdSetEvent()"); UpdateCmdBufferLastCmd(pCB, CMD_SETEVENT); - skip |= insideRenderPass(dev_data, pCB, "vkCmdSetEvent()", VALIDATION_ERROR_00238); - skip |= - ValidateStageMaskGsTsEnables(dev_data, stageMask, "vkCmdSetEvent()", VALIDATION_ERROR_00230, VALIDATION_ERROR_00231); + skip |= insideRenderPass(dev_data, pCB, "vkCmdSetEvent()", VALIDATION_ERROR_1d400017); + skip |= ValidateStageMaskGsTsEnables(dev_data, stageMask, "vkCmdSetEvent()", VALIDATION_ERROR_1d4008fc, + VALIDATION_ERROR_1d4008fe); auto event_state = GetEventNode(dev_data, event); if (event_state) { addCommandBufferBinding(&event_state->cb_bindings, {HandleToUint64(event), kVulkanObjectTypeEvent}, pCB); @@ -7655,12 +7666,12 @@ VKAPI_ATTR void VKAPI_CALL CmdResetEvent(VkCommandBuffer commandBuffer, VkEvent GLOBAL_CB_NODE *pCB = GetCBNode(dev_data, commandBuffer); if (pCB) { skip |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdResetEvent()", VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, - VALIDATION_ERROR_00248); + VALIDATION_ERROR_1c402415); skip |= ValidateCmd(dev_data, pCB, CMD_RESETEVENT, "vkCmdResetEvent()"); UpdateCmdBufferLastCmd(pCB, CMD_RESETEVENT); - skip |= insideRenderPass(dev_data, pCB, "vkCmdResetEvent()", VALIDATION_ERROR_00249); - skip |= - ValidateStageMaskGsTsEnables(dev_data, stageMask, "vkCmdResetEvent()", VALIDATION_ERROR_00240, VALIDATION_ERROR_00241); + skip |= insideRenderPass(dev_data, pCB, "vkCmdResetEvent()", VALIDATION_ERROR_1c400017); + skip |= ValidateStageMaskGsTsEnables(dev_data, stageMask, "vkCmdResetEvent()", VALIDATION_ERROR_1c400904, + VALIDATION_ERROR_1c400906); auto event_state = GetEventNode(dev_data, event); if (event_state) { addCommandBufferBinding(&event_state->cb_bindings, {HandleToUint64(event), kVulkanObjectTypeEvent}, pCB); @@ -7670,7 +7681,7 @@ VKAPI_ATTR void VKAPI_CALL CmdResetEvent(VkCommandBuffer commandBuffer, VkEvent if (!pCB->waitedEvents.count(event)) { pCB->writeEventsBeforeWait.push_back(event); } - // TODO : Add check for VALIDATION_ERROR_00226 + // TODO : Add check for VALIDATION_ERROR_32c008f8 std::function<bool(VkQueue)> eventUpdate = std::bind(setEventStageMask, std::placeholders::_1, commandBuffer, event, VkPipelineStageFlags(0)); pCB->eventUpdates.push_back(eventUpdate); @@ -7748,12 +7759,12 @@ static bool ValidateBarriers(const char *funcName, VkCommandBuffer cmdBuffer, ui if (pCB->activeRenderPass) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(cmdBuffer), __LINE__, VALIDATION_ERROR_02080, "DS", + HandleToUint64(cmdBuffer), __LINE__, VALIDATION_ERROR_1b80093a, "DS", "%s: As the Image Barrier for image 0x%" PRIx64 " is being executed within a render pass instance, oldLayout must equal newLayout yet they are " "%s and %s. %s", funcName, HandleToUint64(mem_barrier->image), string_VkImageLayout(mem_barrier->oldLayout), - string_VkImageLayout(mem_barrier->newLayout), validation_error_map[VALIDATION_ERROR_02080]); + string_VkImageLayout(mem_barrier->newLayout), validation_error_map[VALIDATION_ERROR_1b80093a]); } skip |= ValidateMaskBitsFromLayouts(dev_data, cmdBuffer, mem_barrier->srcAccessMask, mem_barrier->oldLayout, "Source"); skip |= ValidateMaskBitsFromLayouts(dev_data, cmdBuffer, mem_barrier->dstAccessMask, mem_barrier->newLayout, "Dest"); @@ -7849,13 +7860,13 @@ bool validateEventStageMask(VkQueue queue, GLOBAL_CB_NODE *pCB, uint32_t eventCo // but set event can be called at any time. if (sourceStageMask != stageMask && sourceStageMask != (stageMask | VK_PIPELINE_STAGE_HOST_BIT)) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(pCB->commandBuffer), __LINE__, VALIDATION_ERROR_00254, "DS", + HandleToUint64(pCB->commandBuffer), __LINE__, VALIDATION_ERROR_1e62d401, "DS", "Submitting cmdbuffer with call to VkCmdWaitEvents " "using srcStageMask 0x%X which must be the bitwise " "OR of the stageMask parameters used in calls to " "vkCmdSetEvent and VK_PIPELINE_STAGE_HOST_BIT if " "used with vkSetEvent but instead is 0x%X. %s", - sourceStageMask, stageMask, validation_error_map[VALIDATION_ERROR_00254]); + sourceStageMask, stageMask, validation_error_map[VALIDATION_ERROR_1e62d401]); } return skip; } @@ -7951,11 +7962,11 @@ VKAPI_ATTR void VKAPI_CALL CmdWaitEvents(VkCommandBuffer commandBuffer, uint32_t GLOBAL_CB_NODE *cb_state = GetCBNode(dev_data, commandBuffer); if (cb_state) { skip |= ValidateStageMasksAgainstQueueCapabilities(dev_data, cb_state, sourceStageMask, dstStageMask, "vkCmdWaitEvents", - VALIDATION_ERROR_02510); - skip |= ValidateStageMaskGsTsEnables(dev_data, sourceStageMask, "vkCmdWaitEvents()", VALIDATION_ERROR_02067, - VALIDATION_ERROR_02069); - skip |= ValidateStageMaskGsTsEnables(dev_data, dstStageMask, "vkCmdWaitEvents()", VALIDATION_ERROR_02068, - VALIDATION_ERROR_02070); + VALIDATION_ERROR_1e600918); + skip |= ValidateStageMaskGsTsEnables(dev_data, sourceStageMask, "vkCmdWaitEvents()", VALIDATION_ERROR_1e60090e, + VALIDATION_ERROR_1e600912); + skip |= ValidateStageMaskGsTsEnables(dev_data, dstStageMask, "vkCmdWaitEvents()", VALIDATION_ERROR_1e600910, + VALIDATION_ERROR_1e600914); auto first_event_index = cb_state->events.size(); for (uint32_t i = 0; i < eventCount; ++i) { auto event_state = GetEventNode(dev_data, pEvents[i]); @@ -7970,7 +7981,7 @@ VKAPI_ATTR void VKAPI_CALL CmdWaitEvents(VkCommandBuffer commandBuffer, uint32_t 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); + VALIDATION_ERROR_1e602415); skip |= ValidateCmd(dev_data, cb_state, CMD_WAITEVENTS, "vkCmdWaitEvents()"); UpdateCmdBufferLastCmd(cb_state, CMD_WAITEVENTS); skip |= @@ -7996,14 +8007,14 @@ static bool PreCallValidateCmdPipelineBarrier(layer_data *device_data, GLOBAL_CB uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier *pImageMemoryBarriers) { bool skip = false; skip |= ValidateStageMasksAgainstQueueCapabilities(device_data, cb_state, srcStageMask, dstStageMask, "vkCmdPipelineBarrier", - VALIDATION_ERROR_02513); + VALIDATION_ERROR_1b80093e); skip |= ValidateCmdQueueFlags(device_data, cb_state, "vkCmdPipelineBarrier()", - VK_QUEUE_TRANSFER_BIT | VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, VALIDATION_ERROR_00280); + VK_QUEUE_TRANSFER_BIT | VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, VALIDATION_ERROR_1b802415); skip |= ValidateCmd(device_data, cb_state, CMD_PIPELINEBARRIER, "vkCmdPipelineBarrier()"); - skip |= ValidateStageMaskGsTsEnables(device_data, srcStageMask, "vkCmdPipelineBarrier()", VALIDATION_ERROR_00265, - VALIDATION_ERROR_00267); - skip |= ValidateStageMaskGsTsEnables(device_data, dstStageMask, "vkCmdPipelineBarrier()", VALIDATION_ERROR_00266, - VALIDATION_ERROR_00268); + skip |= ValidateStageMaskGsTsEnables(device_data, srcStageMask, "vkCmdPipelineBarrier()", VALIDATION_ERROR_1b800920, + VALIDATION_ERROR_1b800924); + skip |= ValidateStageMaskGsTsEnables(device_data, dstStageMask, "vkCmdPipelineBarrier()", VALIDATION_ERROR_1b800922, + VALIDATION_ERROR_1b800926); skip |= ValidateBarriersToImages(device_data, commandBuffer, imageMemoryBarrierCount, pImageMemoryBarriers, "vkCmdPipelineBarrier()"); skip |= ValidateBarriers("vkCmdPipelineBarrier()", commandBuffer, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, @@ -8069,7 +8080,7 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryP pCB->startedQueries.insert(query); } skip |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdBeginQuery()", VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, - VALIDATION_ERROR_01039); + VALIDATION_ERROR_17802415); skip |= ValidateCmd(dev_data, pCB, CMD_BEGINQUERY, "vkCmdBeginQuery()"); UpdateCmdBufferLastCmd(pCB, CMD_BEGINQUERY); addCommandBufferBinding(&GetQueryPoolNode(dev_data, queryPool)->cb_bindings, @@ -8088,16 +8099,16 @@ VKAPI_ATTR void VKAPI_CALL CmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPoo QueryObject query = {queryPool, slot}; if (!cb_state->activeQueries.count(query)) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_01041, "DS", + HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_1ae00652, "DS", "Ending a query before it was started: queryPool 0x%" PRIx64 ", index %d. %s", - HandleToUint64(queryPool), slot, validation_error_map[VALIDATION_ERROR_01041]); + HandleToUint64(queryPool), slot, validation_error_map[VALIDATION_ERROR_1ae00652]); } else { cb_state->activeQueries.erase(query); } 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); + VALIDATION_ERROR_1ae02415); skip |= ValidateCmd(dev_data, cb_state, CMD_ENDQUERY, "VkCmdEndQuery()"); UpdateCmdBufferLastCmd(cb_state, CMD_ENDQUERY); addCommandBufferBinding(&GetQueryPoolNode(dev_data, queryPool)->cb_bindings, @@ -8122,10 +8133,10 @@ VKAPI_ATTR void VKAPI_CALL CmdResetQueryPool(VkCommandBuffer commandBuffer, VkQu 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); + VALIDATION_ERROR_1c602415); skip |= ValidateCmd(dev_data, cb_state, CMD_RESETQUERYPOOL, "VkCmdResetQueryPool()"); UpdateCmdBufferLastCmd(cb_state, CMD_RESETQUERYPOOL); - skip |= insideRenderPass(dev_data, cb_state, "vkCmdResetQueryPool()", VALIDATION_ERROR_01025); + skip |= insideRenderPass(dev_data, cb_state, "vkCmdResetQueryPool()", VALIDATION_ERROR_1c600017); addCommandBufferBinding(&GetQueryPoolNode(dev_data, queryPool)->cb_bindings, {HandleToUint64(queryPool), kVulkanObjectTypeQueryPool}, cb_state); } @@ -8176,12 +8187,13 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyQueryPoolResults(VkCommandBuffer commandBuffer auto cb_node = GetCBNode(dev_data, commandBuffer); auto dst_buff_state = GetBufferState(dev_data, dstBuffer); if (cb_node && dst_buff_state) { - skip |= ValidateMemoryIsBoundToBuffer(dev_data, dst_buff_state, "vkCmdCopyQueryPoolResults()", VALIDATION_ERROR_02526); + skip |= ValidateMemoryIsBoundToBuffer(dev_data, dst_buff_state, "vkCmdCopyQueryPoolResults()", VALIDATION_ERROR_19400674); // Update bindings between buffer and cmd buffer AddCommandBufferBindingBuffer(dev_data, cb_node, dst_buff_state); // Validate that DST buffer has correct usage flags set - skip |= ValidateBufferUsageFlags(dev_data, dst_buff_state, VK_BUFFER_USAGE_TRANSFER_DST_BIT, true, VALIDATION_ERROR_01066, - "vkCmdCopyQueryPoolResults()", "VK_BUFFER_USAGE_TRANSFER_DST_BIT"); + skip |= + ValidateBufferUsageFlags(dev_data, dst_buff_state, VK_BUFFER_USAGE_TRANSFER_DST_BIT, true, VALIDATION_ERROR_19400672, + "vkCmdCopyQueryPoolResults()", "VK_BUFFER_USAGE_TRANSFER_DST_BIT"); std::function<bool()> function = [=]() { SetBufferMemoryValid(dev_data, dst_buff_state, true); return false; @@ -8191,10 +8203,10 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyQueryPoolResults(VkCommandBuffer commandBuffer 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); + VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, VALIDATION_ERROR_19402415); skip |= ValidateCmd(dev_data, cb_node, CMD_COPYQUERYPOOLRESULTS, "vkCmdCopyQueryPoolResults()"); UpdateCmdBufferLastCmd(cb_node, CMD_COPYQUERYPOOLRESULTS); - skip |= insideRenderPass(dev_data, cb_node, "vkCmdCopyQueryPoolResults()", VALIDATION_ERROR_01074); + skip |= insideRenderPass(dev_data, cb_node, "vkCmdCopyQueryPoolResults()", VALIDATION_ERROR_19400017); addCommandBufferBinding(&GetQueryPoolNode(dev_data, queryPool)->cb_bindings, {HandleToUint64(queryPool), kVulkanObjectTypeQueryPool}, cb_node); } else { @@ -8214,15 +8226,15 @@ VKAPI_ATTR void VKAPI_CALL CmdPushConstants(VkCommandBuffer commandBuffer, VkPip 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); + VALIDATION_ERROR_1bc02415); skip |= ValidateCmd(dev_data, cb_state, CMD_PUSHCONSTANTS, "vkCmdPushConstants()"); UpdateCmdBufferLastCmd(cb_state, CMD_PUSHCONSTANTS); } skip |= validatePushConstantRange(dev_data, offset, size, "vkCmdPushConstants()"); if (0 == stageFlags) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_00996, "DS", - "vkCmdPushConstants() call has no stageFlags set. %s", validation_error_map[VALIDATION_ERROR_00996]); + HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_1bc2dc03, "DS", + "vkCmdPushConstants() call has no stageFlags set. %s", validation_error_map[VALIDATION_ERROR_1bc2dc03]); } // Check if specified push constant range falls within a pipeline-defined range which has matching stageFlags. @@ -8239,13 +8251,13 @@ VKAPI_ATTR void VKAPI_CALL CmdPushConstants(VkCommandBuffer commandBuffer, VkPip } } if (!found_matching_range) { - skip |= - log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_00988, "DS", - "vkCmdPushConstants() stageFlags = 0x%" PRIx32 - " do not match the stageFlags in any of the ranges with" - " offset = %d and size = %d in pipeline layout 0x%" PRIx64 ". %s", - (uint32_t)stageFlags, offset, size, HandleToUint64(layout), validation_error_map[VALIDATION_ERROR_00988]); + skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, + HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_1bc002de, "DS", + "vkCmdPushConstants() stageFlags = 0x%" PRIx32 + " do not match the stageFlags in any of the ranges with" + " offset = %d and size = %d in pipeline layout 0x%" PRIx64 ". %s", + (uint32_t)stageFlags, offset, size, HandleToUint64(layout), + validation_error_map[VALIDATION_ERROR_1bc002de]); } } lock.unlock(); @@ -8263,7 +8275,7 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPi 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); + VALIDATION_ERROR_1e802415); skip |= ValidateCmd(dev_data, cb_state, CMD_WRITETIMESTAMP, "vkCmdWriteTimestamp()"); UpdateCmdBufferLastCmd(cb_state, CMD_WRITETIMESTAMP); } @@ -8319,11 +8331,11 @@ static bool ValidateFramebufferCreateInfo(layer_data *dev_data, const VkFramebuf if (rpci->attachmentCount != pCreateInfo->attachmentCount) { skip |= log_msg( dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT, - HandleToUint64(pCreateInfo->renderPass), __LINE__, VALIDATION_ERROR_00404, "DS", + HandleToUint64(pCreateInfo->renderPass), __LINE__, VALIDATION_ERROR_094006d8, "DS", "vkCreateFramebuffer(): VkFramebufferCreateInfo attachmentCount of %u does not match attachmentCount of %u of " "renderPass (0x%" PRIxLEAST64 ") being used to create Framebuffer. %s", pCreateInfo->attachmentCount, rpci->attachmentCount, HandleToUint64(pCreateInfo->renderPass), - validation_error_map[VALIDATION_ERROR_00404]); + validation_error_map[VALIDATION_ERROR_094006d8]); } else { // attachmentCounts match, so make sure corresponding attachment details line up const VkImageView *image_views = pCreateInfo->pAttachments; @@ -8333,30 +8345,30 @@ static bool ValidateFramebufferCreateInfo(layer_data *dev_data, const VkFramebuf if (ivci.format != rpci->pAttachments[i].format) { skip |= log_msg( dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT, - HandleToUint64(pCreateInfo->renderPass), __LINE__, VALIDATION_ERROR_00408, "DS", + HandleToUint64(pCreateInfo->renderPass), __LINE__, VALIDATION_ERROR_094006e0, "DS", "vkCreateFramebuffer(): VkFramebufferCreateInfo attachment #%u has format of %s that does not match " "the format of " "%s used by the corresponding attachment for renderPass (0x%" PRIxLEAST64 "). %s", i, string_VkFormat(ivci.format), string_VkFormat(rpci->pAttachments[i].format), - HandleToUint64(pCreateInfo->renderPass), validation_error_map[VALIDATION_ERROR_00408]); + HandleToUint64(pCreateInfo->renderPass), validation_error_map[VALIDATION_ERROR_094006e0]); } const VkImageCreateInfo *ici = &GetImageState(dev_data, ivci.image)->createInfo; if (ici->samples != rpci->pAttachments[i].samples) { skip |= log_msg( dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT, - HandleToUint64(pCreateInfo->renderPass), __LINE__, VALIDATION_ERROR_00409, "DS", + HandleToUint64(pCreateInfo->renderPass), __LINE__, VALIDATION_ERROR_094006e2, "DS", "vkCreateFramebuffer(): VkFramebufferCreateInfo attachment #%u has %s samples that do not match " "the %s samples used by the corresponding attachment for renderPass (0x%" PRIxLEAST64 "). %s", i, string_VkSampleCountFlagBits(ici->samples), string_VkSampleCountFlagBits(rpci->pAttachments[i].samples), - HandleToUint64(pCreateInfo->renderPass), validation_error_map[VALIDATION_ERROR_00409]); + HandleToUint64(pCreateInfo->renderPass), validation_error_map[VALIDATION_ERROR_094006e2]); } // Verify that view only has a single mip level if (ivci.subresourceRange.levelCount != 1) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, - 0, __LINE__, VALIDATION_ERROR_00411, "DS", + 0, __LINE__, VALIDATION_ERROR_094006e6, "DS", "vkCreateFramebuffer(): VkFramebufferCreateInfo attachment #%u has mip levelCount of %u " "but only a single mip level (levelCount == 1) is allowed when creating a Framebuffer. %s", - i, ivci.subresourceRange.levelCount, validation_error_map[VALIDATION_ERROR_00411]); + i, ivci.subresourceRange.levelCount, validation_error_map[VALIDATION_ERROR_094006e6]); } const uint32_t mip_level = ivci.subresourceRange.baseMipLevel; uint32_t mip_width = max(1u, ici->extent.width >> mip_level); @@ -8365,7 +8377,7 @@ static bool ValidateFramebufferCreateInfo(layer_data *dev_data, const VkFramebuf (mip_height < pCreateInfo->height)) { skip |= log_msg( dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, - VALIDATION_ERROR_00410, "DS", + VALIDATION_ERROR_094006e4, "DS", "vkCreateFramebuffer(): VkFramebufferCreateInfo attachment #%u mip level %u has dimensions smaller " "than the corresponding framebuffer dimensions. Here are the respective dimensions for attachment #%u, " "framebuffer:\n" @@ -8373,7 +8385,7 @@ static bool ValidateFramebufferCreateInfo(layer_data *dev_data, const VkFramebuf "height: %u, %u\n" "layerCount: %u, %u\n%s", i, ivci.subresourceRange.baseMipLevel, i, mip_width, pCreateInfo->width, mip_height, pCreateInfo->height, - ivci.subresourceRange.layerCount, pCreateInfo->layers, validation_error_map[VALIDATION_ERROR_00410]); + ivci.subresourceRange.layerCount, pCreateInfo->layers, validation_error_map[VALIDATION_ERROR_094006e4]); } if (((ivci.components.r != VK_COMPONENT_SWIZZLE_IDENTITY) && (ivci.components.r != VK_COMPONENT_SWIZZLE_R)) || ((ivci.components.g != VK_COMPONENT_SWIZZLE_IDENTITY) && (ivci.components.g != VK_COMPONENT_SWIZZLE_G)) || @@ -8381,7 +8393,7 @@ static bool ValidateFramebufferCreateInfo(layer_data *dev_data, const VkFramebuf ((ivci.components.a != VK_COMPONENT_SWIZZLE_IDENTITY) && (ivci.components.a != VK_COMPONENT_SWIZZLE_A))) { skip |= log_msg( dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, - VALIDATION_ERROR_00412, "DS", + VALIDATION_ERROR_094006e8, "DS", "vkCreateFramebuffer(): VkFramebufferCreateInfo attachment #%u has non-identy swizzle. All framebuffer " "attachments must have been created with the identity swizzle. Here are the actual swizzle values:\n" "r swizzle = %s\n" @@ -8391,7 +8403,7 @@ static bool ValidateFramebufferCreateInfo(layer_data *dev_data, const VkFramebuf "%s", i, string_VkComponentSwizzle(ivci.components.r), string_VkComponentSwizzle(ivci.components.g), string_VkComponentSwizzle(ivci.components.b), string_VkComponentSwizzle(ivci.components.a), - validation_error_map[VALIDATION_ERROR_00412]); + validation_error_map[VALIDATION_ERROR_094006e8]); } } } @@ -8400,64 +8412,64 @@ static bool ValidateFramebufferCreateInfo(layer_data *dev_data, const VkFramebuf // Verify input attachments: skip |= MatchUsage(dev_data, rpci->pSubpasses[subpass].inputAttachmentCount, rpci->pSubpasses[subpass].pInputAttachments, - pCreateInfo, VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, VALIDATION_ERROR_00407); + pCreateInfo, VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, VALIDATION_ERROR_094006de); // Verify color attachments: skip |= MatchUsage(dev_data, rpci->pSubpasses[subpass].colorAttachmentCount, rpci->pSubpasses[subpass].pColorAttachments, - pCreateInfo, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VALIDATION_ERROR_00405); + pCreateInfo, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VALIDATION_ERROR_094006da); // Verify depth/stencil attachments: if (rpci->pSubpasses[subpass].pDepthStencilAttachment != nullptr) { skip |= MatchUsage(dev_data, 1, rpci->pSubpasses[subpass].pDepthStencilAttachment, pCreateInfo, - VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VALIDATION_ERROR_00406); + VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VALIDATION_ERROR_094006dc); } } } // Verify FB dimensions are within physical device limits if (pCreateInfo->width > dev_data->phys_dev_properties.properties.limits.maxFramebufferWidth) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, - VALIDATION_ERROR_00413, "DS", + VALIDATION_ERROR_094006ec, "DS", "vkCreateFramebuffer(): Requested VkFramebufferCreateInfo width exceeds physical device limits. " "Requested width: %u, device max: %u\n" "%s", pCreateInfo->width, dev_data->phys_dev_properties.properties.limits.maxFramebufferWidth, - validation_error_map[VALIDATION_ERROR_00413]); + validation_error_map[VALIDATION_ERROR_094006ec]); } if (pCreateInfo->height > dev_data->phys_dev_properties.properties.limits.maxFramebufferHeight) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, - VALIDATION_ERROR_00414, "DS", + VALIDATION_ERROR_094006f0, "DS", "vkCreateFramebuffer(): Requested VkFramebufferCreateInfo height exceeds physical device limits. " "Requested height: %u, device max: %u\n" "%s", pCreateInfo->height, dev_data->phys_dev_properties.properties.limits.maxFramebufferHeight, - validation_error_map[VALIDATION_ERROR_00414]); + validation_error_map[VALIDATION_ERROR_094006f0]); } if (pCreateInfo->layers > dev_data->phys_dev_properties.properties.limits.maxFramebufferLayers) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, - VALIDATION_ERROR_00415, "DS", + VALIDATION_ERROR_094006f4, "DS", "vkCreateFramebuffer(): Requested VkFramebufferCreateInfo layers exceeds physical device limits. " "Requested layers: %u, device max: %u\n" "%s", pCreateInfo->layers, dev_data->phys_dev_properties.properties.limits.maxFramebufferLayers, - validation_error_map[VALIDATION_ERROR_00415]); + validation_error_map[VALIDATION_ERROR_094006f4]); } // Verify FB dimensions are greater than zero if (pCreateInfo->width <= 0) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, - VALIDATION_ERROR_02806, "DS", + VALIDATION_ERROR_094006ea, "DS", "vkCreateFramebuffer(): Requested VkFramebufferCreateInfo width must be greater than zero. %s", - validation_error_map[VALIDATION_ERROR_02806]); + validation_error_map[VALIDATION_ERROR_094006ea]); } if (pCreateInfo->height <= 0) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, - VALIDATION_ERROR_02807, "DS", + VALIDATION_ERROR_094006ee, "DS", "vkCreateFramebuffer(): Requested VkFramebufferCreateInfo height must be greater than zero. %s", - validation_error_map[VALIDATION_ERROR_02807]); + validation_error_map[VALIDATION_ERROR_094006ee]); } if (pCreateInfo->layers <= 0) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, - VALIDATION_ERROR_02808, "DS", + VALIDATION_ERROR_094006f2, "DS", "vkCreateFramebuffer(): Requested VkFramebufferCreateInfo layers must be greater than zero. %s", - validation_error_map[VALIDATION_ERROR_02808]); + validation_error_map[VALIDATION_ERROR_094006f2]); } return skip; } @@ -8653,17 +8665,17 @@ static bool ValidateDependencies(const layer_data *dev_data, FRAMEBUFFER_STATE c for (auto other_attachment : overlapping_attachments[i]) { if (!(pCreateInfo->pAttachments[attachment].flags & VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT)) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT, - HandleToUint64(framebuffer->framebuffer), __LINE__, VALIDATION_ERROR_00324, "DS", + HandleToUint64(framebuffer->framebuffer), __LINE__, VALIDATION_ERROR_12200682, "DS", "Attachment %d aliases attachment %d but doesn't " "set VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT. %s", - attachment, other_attachment, validation_error_map[VALIDATION_ERROR_00324]); + attachment, other_attachment, validation_error_map[VALIDATION_ERROR_12200682]); } if (!(pCreateInfo->pAttachments[other_attachment].flags & VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT)) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT, - HandleToUint64(framebuffer->framebuffer), __LINE__, VALIDATION_ERROR_00324, "DS", + HandleToUint64(framebuffer->framebuffer), __LINE__, VALIDATION_ERROR_12200682, "DS", "Attachment %d aliases attachment %d but doesn't " "set VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT. %s", - other_attachment, attachment, validation_error_map[VALIDATION_ERROR_00324]); + other_attachment, attachment, validation_error_map[VALIDATION_ERROR_12200682]); } } } @@ -8775,9 +8787,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateShaderModule(VkDevice device, const VkShade if (!GetDisables(dev_data)->shader_validation) { if (!dev_data->device_extensions.nv_glsl_shader && (pCreateInfo->codeSize % 4)) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, - __LINE__, VALIDATION_ERROR_02816, "SC", + __LINE__, VALIDATION_ERROR_12a00ac0, "SC", "SPIR-V module not valid: Codesize must be a multiple of 4 but is " PRINTF_SIZE_T_SPECIFIER ". %s", - pCreateInfo->codeSize, validation_error_map[VALIDATION_ERROR_02816]); + pCreateInfo->codeSize, validation_error_map[VALIDATION_ERROR_12a00ac0]); } else { // Use SPIRV-Tools validator to try and catch any issues with the module itself spv_context ctx = spvContextCreate(SPV_ENV_VULKAN_1_0); @@ -8815,9 +8827,9 @@ static bool ValidateAttachmentIndex(layer_data *dev_data, uint32_t attachment, u bool skip = false; if (attachment >= attachment_count && attachment != VK_ATTACHMENT_UNUSED) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, - VALIDATION_ERROR_00325, "DS", + VALIDATION_ERROR_12200684, "DS", "CreateRenderPass: %s attachment %d must be less than the total number of attachments %d. %s", type, - attachment, attachment_count, validation_error_map[VALIDATION_ERROR_00325]); + attachment, attachment_count, validation_error_map[VALIDATION_ERROR_12200684]); } return skip; } @@ -8830,18 +8842,18 @@ static bool ValidateRenderpassAttachmentUsage(layer_data *dev_data, const VkRend const VkSubpassDescription &subpass = pCreateInfo->pSubpasses[i]; if (subpass.pipelineBindPoint != VK_PIPELINE_BIND_POINT_GRAPHICS) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, - __LINE__, VALIDATION_ERROR_00347, "DS", + __LINE__, VALIDATION_ERROR_14000698, "DS", "CreateRenderPass: Pipeline bind point for subpass %d must be VK_PIPELINE_BIND_POINT_GRAPHICS. %s", i, - validation_error_map[VALIDATION_ERROR_00347]); + validation_error_map[VALIDATION_ERROR_14000698]); } for (uint32_t j = 0; j < subpass.preserveAttachmentCount; ++j) { uint32_t attachment = subpass.pPreserveAttachments[j]; if (attachment == VK_ATTACHMENT_UNUSED) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, - __LINE__, VALIDATION_ERROR_00356, "DS", + __LINE__, VALIDATION_ERROR_140006aa, "DS", "CreateRenderPass: Preserve attachment (%d) must not be VK_ATTACHMENT_UNUSED. %s", j, - validation_error_map[VALIDATION_ERROR_00356]); + validation_error_map[VALIDATION_ERROR_140006aa]); } else { skip |= ValidateAttachmentIndex(dev_data, attachment, pCreateInfo->attachmentCount, "Preserve"); @@ -8856,9 +8868,9 @@ static bool ValidateRenderpassAttachmentUsage(layer_data *dev_data, const VkRend if (found) { skip |= log_msg( dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, - VALIDATION_ERROR_00357, "DS", + VALIDATION_ERROR_140006ac, "DS", "CreateRenderPass: subpass %u pPreserveAttachments[%u] (%u) must not be used elsewhere in the subpass. %s", - i, j, attachment, validation_error_map[VALIDATION_ERROR_00357]); + i, j, attachment, validation_error_map[VALIDATION_ERROR_140006ac]); } } } @@ -8878,22 +8890,21 @@ static bool ValidateRenderpassAttachmentUsage(layer_data *dev_data, const VkRend if (!skip && attachment != VK_ATTACHMENT_UNUSED && pCreateInfo->pAttachments[attachment].samples != VK_SAMPLE_COUNT_1_BIT) { - skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, - 0, __LINE__, VALIDATION_ERROR_00352, "DS", + 0, __LINE__, VALIDATION_ERROR_140006a2, "DS", "CreateRenderPass: Subpass %u requests multisample resolve into attachment %u, " "which must have VK_SAMPLE_COUNT_1_BIT but has %s. %s", i, attachment, string_VkSampleCountFlagBits(pCreateInfo->pAttachments[attachment].samples), - validation_error_map[VALIDATION_ERROR_00352]); + validation_error_map[VALIDATION_ERROR_140006a2]); } if (!skip && subpass.pResolveAttachments[j].attachment != VK_ATTACHMENT_UNUSED && subpass.pColorAttachments[j].attachment == VK_ATTACHMENT_UNUSED) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, - 0, __LINE__, VALIDATION_ERROR_00350, "DS", + 0, __LINE__, VALIDATION_ERROR_1400069e, "DS", "CreateRenderPass: Subpass %u requests multisample resolve from attachment %u " "which has attachment=VK_ATTACHMENT_UNUSED. %s", - i, attachment, validation_error_map[VALIDATION_ERROR_00350]); + i, attachment, validation_error_map[VALIDATION_ERROR_1400069e]); } } attachment = subpass.pColorAttachments[j].attachment; @@ -8904,22 +8915,23 @@ static bool ValidateRenderpassAttachmentUsage(layer_data *dev_data, const VkRend if (subpass_performs_resolve && pCreateInfo->pAttachments[attachment].samples == VK_SAMPLE_COUNT_1_BIT) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, - 0, __LINE__, VALIDATION_ERROR_00351, "DS", + 0, __LINE__, VALIDATION_ERROR_140006a0, "DS", "CreateRenderPass: Subpass %u requests multisample resolve from attachment %u " "which has VK_SAMPLE_COUNT_1_BIT. %s", - i, attachment, validation_error_map[VALIDATION_ERROR_00351]); + i, attachment, validation_error_map[VALIDATION_ERROR_140006a0]); } if (subpass_performs_resolve && subpass.pResolveAttachments[j].attachment != VK_ATTACHMENT_UNUSED) { const auto &color_desc = pCreateInfo->pAttachments[attachment]; const auto &resolve_desc = pCreateInfo->pAttachments[subpass.pResolveAttachments[j].attachment]; if (color_desc.format != resolve_desc.format) { - skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, VALIDATION_ERROR_00353, "DS", - "CreateRenderPass: Subpass %u pColorAttachments[%u] resolves to an attachment with a " - "different format. " - "color format: %u, resolve format: %u. %s", - i, j, color_desc.format, resolve_desc.format, validation_error_map[VALIDATION_ERROR_00353]); + skip |= + log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, + 0, __LINE__, VALIDATION_ERROR_140006a4, "DS", + "CreateRenderPass: Subpass %u pColorAttachments[%u] resolves to an attachment with a " + "different format. " + "color format: %u, resolve format: %u. %s", + i, j, color_desc.format, resolve_desc.format, validation_error_map[VALIDATION_ERROR_140006a4]); } } } @@ -8941,10 +8953,10 @@ static bool ValidateRenderpassAttachmentUsage(layer_data *dev_data, const VkRend if (sample_count && !IsPowerOfTwo(sample_count)) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, - __LINE__, VALIDATION_ERROR_00337, "DS", + __LINE__, VALIDATION_ERROR_0082b401, "DS", "CreateRenderPass: Subpass %u attempts to render to " "attachments with inconsistent sample counts. %s", - i, validation_error_map[VALIDATION_ERROR_00337]); + i, validation_error_map[VALIDATION_ERROR_0082b401]); } } return skip; @@ -8971,9 +8983,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass(VkDevice device, const VkRenderP skip |= ValidateRenderpassAttachmentUsage(dev_data, pCreateInfo); for (uint32_t i = 0; i < pCreateInfo->dependencyCount; ++i) { skip |= ValidateStageMaskGsTsEnables(dev_data, pCreateInfo->pDependencies[i].srcStageMask, "vkCreateRenderPass()", - VALIDATION_ERROR_00368, VALIDATION_ERROR_00370); + VALIDATION_ERROR_13e006b8, VALIDATION_ERROR_13e006bc); skip |= ValidateStageMaskGsTsEnables(dev_data, pCreateInfo->pDependencies[i].dstStageMask, "vkCreateRenderPass()", - VALIDATION_ERROR_00369, VALIDATION_ERROR_00371); + VALIDATION_ERROR_13e006ba, VALIDATION_ERROR_13e006be); } if (!skip) { skip |= ValidateLayouts(dev_data, device, pCreateInfo); @@ -9116,7 +9128,7 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginRenderPass(VkCommandBuffer commandBuffer, con if (clear_op_size > pRenderPassBegin->clearValueCount) { skip |= log_msg( dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT, - HandleToUint64(render_pass_state->renderPass), __LINE__, VALIDATION_ERROR_00442, "DS", + HandleToUint64(render_pass_state->renderPass), __LINE__, VALIDATION_ERROR_1200070c, "DS", "In vkCmdBeginRenderPass() the VkRenderPassBeginInfo struct has a clearValueCount of %u but there must " "be at least %u entries in pClearValues array to account for the highest index attachment in renderPass " "0x%" PRIx64 @@ -9124,16 +9136,16 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginRenderPass(VkCommandBuffer commandBuffer, con "is indexed by attachment number so even if some pClearValues entries between 0 and %u correspond to " "attachments that aren't cleared they will be ignored. %s", pRenderPassBegin->clearValueCount, clear_op_size, HandleToUint64(render_pass_state->renderPass), clear_op_size, - clear_op_size - 1, validation_error_map[VALIDATION_ERROR_00442]); + clear_op_size - 1, validation_error_map[VALIDATION_ERROR_1200070c]); } skip |= VerifyRenderAreaBounds(dev_data, pRenderPassBegin); skip |= VerifyFramebufferAndRenderPassLayouts(dev_data, cb_node, pRenderPassBegin, GetFramebufferState(dev_data, pRenderPassBegin->framebuffer)); - skip |= insideRenderPass(dev_data, cb_node, "vkCmdBeginRenderPass()", VALIDATION_ERROR_00440); + skip |= insideRenderPass(dev_data, cb_node, "vkCmdBeginRenderPass()", VALIDATION_ERROR_17a00017); skip |= ValidateDependencies(dev_data, framebuffer, render_pass_state); - skip |= validatePrimaryCommandBuffer(dev_data, cb_node, "vkCmdBeginRenderPass()", VALIDATION_ERROR_00441); - skip |= - ValidateCmdQueueFlags(dev_data, cb_node, "vkCmdBeginRenderPass()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_00439); + skip |= validatePrimaryCommandBuffer(dev_data, cb_node, "vkCmdBeginRenderPass()", VALIDATION_ERROR_17a00019); + skip |= ValidateCmdQueueFlags(dev_data, cb_node, "vkCmdBeginRenderPass()", VK_QUEUE_GRAPHICS_BIT, + VALIDATION_ERROR_17a02415); skip |= ValidateCmd(dev_data, cb_node, CMD_BEGINRENDERPASS, "vkCmdBeginRenderPass()"); UpdateCmdBufferLastCmd(cb_node, CMD_BEGINRENDERPASS); cb_node->activeRenderPass = render_pass_state; @@ -9160,18 +9172,18 @@ VKAPI_ATTR void VKAPI_CALL CmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpa std::unique_lock<std::mutex> lock(global_lock); GLOBAL_CB_NODE *pCB = GetCBNode(dev_data, commandBuffer); if (pCB) { - skip |= validatePrimaryCommandBuffer(dev_data, pCB, "vkCmdNextSubpass()", VALIDATION_ERROR_00459); - skip |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdNextSubpass()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_00457); + skip |= validatePrimaryCommandBuffer(dev_data, pCB, "vkCmdNextSubpass()", VALIDATION_ERROR_1b600019); + skip |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdNextSubpass()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_1b602415); skip |= ValidateCmd(dev_data, pCB, CMD_NEXTSUBPASS, "vkCmdNextSubpass()"); UpdateCmdBufferLastCmd(pCB, CMD_NEXTSUBPASS); - skip |= outsideRenderPass(dev_data, pCB, "vkCmdNextSubpass()", VALIDATION_ERROR_00458); + skip |= outsideRenderPass(dev_data, pCB, "vkCmdNextSubpass()", VALIDATION_ERROR_1b600017); auto subpassCount = pCB->activeRenderPass->createInfo.subpassCount; if (pCB->activeSubpass == subpassCount - 1) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_00453, "DS", + HandleToUint64(commandBuffer), __LINE__, VALIDATION_ERROR_1b60071a, "DS", "vkCmdNextSubpass(): Attempted to advance beyond final subpass. %s", - validation_error_map[VALIDATION_ERROR_00453]); + validation_error_map[VALIDATION_ERROR_1b60071a]); } } lock.unlock(); @@ -9202,8 +9214,8 @@ VKAPI_ATTR void VKAPI_CALL CmdEndRenderPass(VkCommandBuffer commandBuffer) { if (pCB->activeSubpass != rp_state->createInfo.subpassCount - 1) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, HandleToUint64(commandBuffer), __LINE__, - VALIDATION_ERROR_00460, "DS", "vkCmdEndRenderPass(): Called before reaching final subpass. %s", - validation_error_map[VALIDATION_ERROR_00460]); + VALIDATION_ERROR_1b00071c, "DS", "vkCmdEndRenderPass(): Called before reaching final subpass. %s", + validation_error_map[VALIDATION_ERROR_1b00071c]); } for (size_t i = 0; i < rp_state->createInfo.attachmentCount; ++i) { @@ -9226,9 +9238,9 @@ VKAPI_ATTR void VKAPI_CALL CmdEndRenderPass(VkCommandBuffer commandBuffer) { } } } - skip |= outsideRenderPass(dev_data, pCB, "vkCmdEndRenderpass()", VALIDATION_ERROR_00464); - skip |= validatePrimaryCommandBuffer(dev_data, pCB, "vkCmdEndRenderPass()", VALIDATION_ERROR_00465); - skip |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdEndRenderPass()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_00463); + skip |= outsideRenderPass(dev_data, pCB, "vkCmdEndRenderpass()", VALIDATION_ERROR_1b000017); + skip |= validatePrimaryCommandBuffer(dev_data, pCB, "vkCmdEndRenderPass()", VALIDATION_ERROR_1b000019); + skip |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdEndRenderPass()", VK_QUEUE_GRAPHICS_BIT, VALIDATION_ERROR_1b002415); skip |= ValidateCmd(dev_data, pCB, CMD_ENDRENDERPASS, "vkCmdEndRenderPass()"); UpdateCmdBufferLastCmd(pCB, CMD_ENDRENDERPASS); } @@ -9250,13 +9262,13 @@ VKAPI_ATTR void VKAPI_CALL CmdEndRenderPass(VkCommandBuffer commandBuffer) { static bool logInvalidAttachmentMessage(layer_data *dev_data, VkCommandBuffer secondaryBuffer, uint32_t primaryAttach, uint32_t secondaryAttach, const char *msg) { return log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(secondaryBuffer), __LINE__, VALIDATION_ERROR_02059, "DS", + HandleToUint64(secondaryBuffer), __LINE__, VALIDATION_ERROR_1b2000c4, "DS", "vkCmdExecuteCommands() called w/ invalid Secondary Cmd Buffer 0x%" PRIx64 " which has a render pass " "that is not compatible with the Primary Cmd Buffer current render pass. " "Attachment %u is not compatible with %u: %s. %s", HandleToUint64(secondaryBuffer), primaryAttach, secondaryAttach, msg, - validation_error_map[VALIDATION_ERROR_02059]); + validation_error_map[VALIDATION_ERROR_1b2000c4]); } static bool validateAttachmentCompatibility(layer_data *dev_data, VkCommandBuffer primaryBuffer, @@ -9385,12 +9397,12 @@ static bool validateFramebuffer(layer_data *dev_data, VkCommandBuffer primaryBuf if (secondary_fb != VK_NULL_HANDLE) { if (primary_fb != secondary_fb) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(primaryBuffer), __LINE__, VALIDATION_ERROR_02060, "DS", + HandleToUint64(primaryBuffer), __LINE__, VALIDATION_ERROR_1b2000c6, "DS", "vkCmdExecuteCommands() called w/ invalid secondary command buffer 0x%" PRIx64 " which has a framebuffer 0x%" PRIx64 " that is not the same as the primary command buffer's current active framebuffer 0x%" PRIx64 ". %s", HandleToUint64(secondaryBuffer), HandleToUint64(secondary_fb), HandleToUint64(primary_fb), - validation_error_map[VALIDATION_ERROR_02060]); + validation_error_map[VALIDATION_ERROR_1b2000c6]); } auto fb = GetFramebufferState(dev_data, secondary_fb); if (!fb) { @@ -9422,12 +9434,12 @@ static bool validateSecondaryCommandBufferState(layer_data *dev_data, GLOBAL_CB_ if ((cmdBufStatistics & queryPoolData->second.createInfo.pipelineStatistics) != cmdBufStatistics) { skip |= log_msg( dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(pCB->commandBuffer), __LINE__, VALIDATION_ERROR_02065, "DS", + HandleToUint64(pCB->commandBuffer), __LINE__, VALIDATION_ERROR_1b2000d0, "DS", "vkCmdExecuteCommands() called w/ invalid Cmd Buffer 0x%p " "which has invalid active query pool 0x%" PRIx64 ". Pipeline statistics is being queried so the command " "buffer must have all bits set on the queryPool. %s", - pCB->commandBuffer, HandleToUint64(queryPoolData->first), validation_error_map[VALIDATION_ERROR_02065]); + pCB->commandBuffer, HandleToUint64(queryPoolData->first), validation_error_map[VALIDATION_ERROR_1b2000d0]); } } activeTypes.insert(queryPoolData->second.createInfo.queryType); @@ -9475,22 +9487,22 @@ VKAPI_ATTR void VKAPI_CALL CmdExecuteCommands(VkCommandBuffer commandBuffer, uin if (VK_COMMAND_BUFFER_LEVEL_PRIMARY == pSubCB->createInfo.level) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(pCommandBuffers[i]), __LINE__, VALIDATION_ERROR_00156, "DS", + HandleToUint64(pCommandBuffers[i]), __LINE__, VALIDATION_ERROR_1b2000b0, "DS", "vkCmdExecuteCommands() called w/ Primary Cmd Buffer 0x%p in element %u of pCommandBuffers " "array. All cmd buffers in pCommandBuffers array must be secondary. %s", - pCommandBuffers[i], i, validation_error_map[VALIDATION_ERROR_00156]); + pCommandBuffers[i], i, validation_error_map[VALIDATION_ERROR_1b2000b0]); } else if (pCB->activeRenderPass) { // Secondary CB w/i RenderPass must have *CONTINUE_BIT set if (pSubCB->beginInfo.pInheritanceInfo != nullptr) { auto secondary_rp_state = GetRenderPassState(dev_data, pSubCB->beginInfo.pInheritanceInfo->renderPass); if (!(pSubCB->beginInfo.flags & VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT)) { skip |= log_msg( dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(pCommandBuffers[i]), __LINE__, VALIDATION_ERROR_02057, "DS", + HandleToUint64(pCommandBuffers[i]), __LINE__, VALIDATION_ERROR_1b2000c0, "DS", "vkCmdExecuteCommands(): Secondary Command Buffer (0x%p) executed within render pass (0x%" PRIxLEAST64 ") must have had vkBeginCommandBuffer() called w/ VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT " "set. %s", pCommandBuffers[i], HandleToUint64(pCB->activeRenderPass->renderPass), - validation_error_map[VALIDATION_ERROR_02057]); + validation_error_map[VALIDATION_ERROR_1b2000c0]); } else { // Make sure render pass is compatible with parent command buffer pass if has continue if (pCB->activeRenderPass->renderPass != secondary_rp_state->renderPass) { @@ -9518,15 +9530,15 @@ VKAPI_ATTR void VKAPI_CALL CmdExecuteCommands(VkCommandBuffer commandBuffer, uin } // TODO(mlentine): Move more logic into this method skip |= validateSecondaryCommandBufferState(dev_data, pCB, pSubCB); - skip |= validateCommandBufferState(dev_data, pSubCB, "vkCmdExecuteCommands()", 0, VALIDATION_ERROR_00155); + skip |= validateCommandBufferState(dev_data, pSubCB, "vkCmdExecuteCommands()", 0, VALIDATION_ERROR_1b2000b2); if (!(pSubCB->beginInfo.flags & VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT)) { if (pSubCB->in_use.load() || pCB->linkedCommandBuffers.count(pSubCB)) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, HandleToUint64(pCB->commandBuffer), __LINE__, - VALIDATION_ERROR_00154, "DS", + VALIDATION_ERROR_1b2000b4, "DS", "Attempt to simultaneously execute command buffer 0x%p" " without VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT set! %s", - pCB->commandBuffer, validation_error_map[VALIDATION_ERROR_00154]); + pCB->commandBuffer, validation_error_map[VALIDATION_ERROR_1b2000b4]); } if (pCB->beginInfo.flags & VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT) { // Warn that non-simultaneous secondary cmd buffer renders primary non-simultaneous @@ -9544,12 +9556,12 @@ VKAPI_ATTR void VKAPI_CALL CmdExecuteCommands(VkCommandBuffer commandBuffer, uin if (!pCB->activeQueries.empty() && !dev_data->enabled_features.inheritedQueries) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - HandleToUint64(pCommandBuffers[i]), __LINE__, VALIDATION_ERROR_02062, "DS", + HandleToUint64(pCommandBuffers[i]), __LINE__, VALIDATION_ERROR_1b2000ca, "DS", "vkCmdExecuteCommands(): Secondary Command Buffer " "(0x%p) cannot be submitted with a query in " "flight and inherited queries not " "supported on this device. %s", - pCommandBuffers[i], validation_error_map[VALIDATION_ERROR_02062]); + pCommandBuffers[i], validation_error_map[VALIDATION_ERROR_1b2000ca]); } // TODO: separate validate from update! This is very tangled. // Propagate layout transitions to the primary cmd buffer @@ -9563,9 +9575,10 @@ VKAPI_ATTR void VKAPI_CALL CmdExecuteCommands(VkCommandBuffer commandBuffer, uin pCB->queryUpdates.push_back(function); } } - skip |= validatePrimaryCommandBuffer(dev_data, pCB, "vkCmdExecuteCommands()", VALIDATION_ERROR_00163); - skip |= ValidateCmdQueueFlags(dev_data, pCB, "vkCmdExecuteCommands()", - VK_QUEUE_TRANSFER_BIT | VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, VALIDATION_ERROR_00162); + skip |= validatePrimaryCommandBuffer(dev_data, pCB, "vkCmdExecuteCommands()", VALIDATION_ERROR_1b200019); + skip |= + ValidateCmdQueueFlags(dev_data, pCB, "vkCmdExecuteCommands()", + VK_QUEUE_TRANSFER_BIT | VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, VALIDATION_ERROR_1b202415); skip |= ValidateCmd(dev_data, pCB, CMD_EXECUTECOMMANDS, "vkCmdExecuteCommands()"); UpdateCmdBufferLastCmd(pCB, CMD_EXECUTECOMMANDS); } @@ -9591,9 +9604,9 @@ VKAPI_ATTR VkResult VKAPI_CALL MapMemory(VkDevice device, VkDeviceMemory mem, Vk if ((dev_data->phys_dev_mem_props.memoryTypes[mem_info->alloc_info.memoryTypeIndex].propertyFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) == 0) { skip = log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT, - HandleToUint64(mem), __LINE__, VALIDATION_ERROR_00629, "MEM", + HandleToUint64(mem), __LINE__, VALIDATION_ERROR_31200554, "MEM", "Mapping Memory without VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT set: mem obj 0x%" PRIxLEAST64 ". %s", - HandleToUint64(mem), validation_error_map[VALIDATION_ERROR_00629]); + HandleToUint64(mem), validation_error_map[VALIDATION_ERROR_31200554]); } } skip |= ValidateMapMemRange(dev_data, mem, offset, size); @@ -9632,13 +9645,14 @@ static bool validateMemoryIsMapped(layer_data *dev_data, const char *funcName, u if (mem_info) { if (pMemRanges[i].size == VK_WHOLE_SIZE) { if (mem_info->mem_range.offset > pMemRanges[i].offset) { - skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT, HandleToUint64(pMemRanges[i].memory), __LINE__, - VALIDATION_ERROR_00643, "MEM", "%s: Flush/Invalidate offset (" PRINTF_SIZE_T_SPECIFIER - ") is less than Memory Object's offset " - "(" PRINTF_SIZE_T_SPECIFIER "). %s", - funcName, static_cast<size_t>(pMemRanges[i].offset), - static_cast<size_t>(mem_info->mem_range.offset), validation_error_map[VALIDATION_ERROR_00643]); + skip |= + log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT, + HandleToUint64(pMemRanges[i].memory), __LINE__, VALIDATION_ERROR_0c20055c, "MEM", + "%s: Flush/Invalidate offset (" PRINTF_SIZE_T_SPECIFIER + ") is less than Memory Object's offset " + "(" PRINTF_SIZE_T_SPECIFIER "). %s", + funcName, static_cast<size_t>(pMemRanges[i].offset), + static_cast<size_t>(mem_info->mem_range.offset), validation_error_map[VALIDATION_ERROR_0c20055c]); } } else { const uint64_t data_end = (mem_info->mem_range.size == VK_WHOLE_SIZE) @@ -9648,13 +9662,13 @@ static bool validateMemoryIsMapped(layer_data *dev_data, const char *funcName, u (data_end < (pMemRanges[i].offset + pMemRanges[i].size))) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT, - HandleToUint64(pMemRanges[i].memory), __LINE__, VALIDATION_ERROR_00642, "MEM", + HandleToUint64(pMemRanges[i].memory), __LINE__, VALIDATION_ERROR_0c20055a, "MEM", "%s: Flush/Invalidate size or offset (" PRINTF_SIZE_T_SPECIFIER ", " PRINTF_SIZE_T_SPECIFIER ") exceed the Memory Object's upper-bound " "(" PRINTF_SIZE_T_SPECIFIER "). %s", funcName, static_cast<size_t>(pMemRanges[i].offset + pMemRanges[i].size), static_cast<size_t>(pMemRanges[i].offset), static_cast<size_t>(data_end), - validation_error_map[VALIDATION_ERROR_00642]); + validation_error_map[VALIDATION_ERROR_0c20055a]); } } } @@ -9716,17 +9730,17 @@ static bool ValidateMappedMemoryRangeDeviceLimits(layer_data *dev_data, const ch uint64_t atom_size = dev_data->phys_dev_properties.properties.limits.nonCoherentAtomSize; if (SafeModulo(mem_ranges[i].offset, atom_size) != 0) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT, - HandleToUint64(mem_ranges->memory), __LINE__, VALIDATION_ERROR_00644, "MEM", + HandleToUint64(mem_ranges->memory), __LINE__, VALIDATION_ERROR_0c20055e, "MEM", "%s: Offset in pMemRanges[%d] is 0x%" PRIxLEAST64 ", which is not a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize (0x%" PRIxLEAST64 "). %s", - func_name, i, mem_ranges[i].offset, atom_size, validation_error_map[VALIDATION_ERROR_00644]); + func_name, i, mem_ranges[i].offset, atom_size, validation_error_map[VALIDATION_ERROR_0c20055e]); } if ((mem_ranges[i].size != VK_WHOLE_SIZE) && (SafeModulo(mem_ranges[i].size, atom_size) != 0)) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT, - HandleToUint64(mem_ranges->memory), __LINE__, VALIDATION_ERROR_00645, "MEM", + HandleToUint64(mem_ranges->memory), __LINE__, VALIDATION_ERROR_0c200560, "MEM", "%s: Size in pMemRanges[%d] is 0x%" PRIxLEAST64 ", which is not a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize (0x%" PRIxLEAST64 "). %s", - func_name, i, mem_ranges[i].size, atom_size, validation_error_map[VALIDATION_ERROR_00645]); + func_name, i, mem_ranges[i].size, atom_size, validation_error_map[VALIDATION_ERROR_0c200560]); } } return skip; @@ -9810,30 +9824,30 @@ static bool PreCallValidateBindImageMemory(layer_data *dev_data, VkImage image, skip |= ValidateInsertImageMemoryRange(dev_data, image, mem_info, memoryOffset, image_state->requirements, image_state->createInfo.tiling == VK_IMAGE_TILING_LINEAR, "vkBindImageMemory()"); skip |= ValidateMemoryTypes(dev_data, mem_info, image_state->requirements.memoryTypeBits, "vkBindImageMemory()", - VALIDATION_ERROR_00806); + VALIDATION_ERROR_1740082e); } // Validate memory requirements alignment if (SafeModulo(memoryOffset, image_state->requirements.alignment) != 0) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, - image_handle, __LINE__, VALIDATION_ERROR_02178, "DS", + image_handle, __LINE__, VALIDATION_ERROR_17400830, "DS", "vkBindImageMemory(): memoryOffset is 0x%" PRIxLEAST64 " but must be an integer multiple of the " "VkMemoryRequirements::alignment value 0x%" PRIxLEAST64 ", returned from a call to vkGetImageMemoryRequirements with image. %s", - memoryOffset, image_state->requirements.alignment, validation_error_map[VALIDATION_ERROR_02178]); + memoryOffset, image_state->requirements.alignment, validation_error_map[VALIDATION_ERROR_17400830]); } // Validate memory requirements size if (image_state->requirements.size > mem_info->alloc_info.allocationSize - memoryOffset) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, - image_handle, __LINE__, VALIDATION_ERROR_02179, "DS", + image_handle, __LINE__, VALIDATION_ERROR_17400832, "DS", "vkBindImageMemory(): memory size minus memoryOffset is 0x%" PRIxLEAST64 " but must be at least as large as " "VkMemoryRequirements::size value 0x%" PRIxLEAST64 ", returned from a call to vkGetImageMemoryRequirements with image. %s", mem_info->alloc_info.allocationSize - memoryOffset, image_state->requirements.size, - validation_error_map[VALIDATION_ERROR_02179]); + validation_error_map[VALIDATION_ERROR_17400832]); } } return skip; @@ -10056,11 +10070,11 @@ static bool PreCallValidateCreateSwapchainKHR(layer_data *dev_data, const char * if (!is_supported) { if (log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, - HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_01922, "DS", + HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_146009ec, "DS", "%s: pCreateInfo->surface is not known at this time to be supported for presentation by this device. " "The vkGetPhysicalDeviceSurfaceSupportKHR() must be called beforehand, and it must return VK_TRUE support " "with this surface for at least one queue family of this device. %s", - func_name, validation_error_map[VALIDATION_ERROR_01922])) + func_name, validation_error_map[VALIDATION_ERROR_146009ec])) return true; } } @@ -10088,21 +10102,21 @@ static bool PreCallValidateCreateSwapchainKHR(layer_data *dev_data, const char * // Validate pCreateInfo->minImageCount against VkSurfaceCapabilitiesKHR::{min|max}ImageCount: if (pCreateInfo->minImageCount < capabilities.minImageCount) { if (log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, - HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_02331, "DS", + HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_146009ee, "DS", "%s called with minImageCount = %d, which is outside the bounds returned " "by vkGetPhysicalDeviceSurfaceCapabilitiesKHR() (i.e. minImageCount = %d, maxImageCount = %d). %s", func_name, pCreateInfo->minImageCount, capabilities.minImageCount, capabilities.maxImageCount, - validation_error_map[VALIDATION_ERROR_02331])) + validation_error_map[VALIDATION_ERROR_146009ee])) return true; } if ((capabilities.maxImageCount > 0) && (pCreateInfo->minImageCount > capabilities.maxImageCount)) { if (log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, - HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_02332, "DS", + HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_146009f0, "DS", "%s called with minImageCount = %d, which is outside the bounds returned " "by vkGetPhysicalDeviceSurfaceCapabilitiesKHR() (i.e. minImageCount = %d, maxImageCount = %d). %s", func_name, pCreateInfo->minImageCount, capabilities.minImageCount, capabilities.maxImageCount, - validation_error_map[VALIDATION_ERROR_02332])) + validation_error_map[VALIDATION_ERROR_146009f0])) return true; } @@ -10113,14 +10127,14 @@ static bool PreCallValidateCreateSwapchainKHR(layer_data *dev_data, const char * (pCreateInfo->imageExtent.height < capabilities.minImageExtent.height) || (pCreateInfo->imageExtent.height > capabilities.maxImageExtent.height))) { if (log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, - HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_02334, "DS", + HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_146009f4, "DS", "%s called with imageExtent = (%d,%d), which is outside the bounds returned by " "vkGetPhysicalDeviceSurfaceCapabilitiesKHR(): currentExtent = (%d,%d), minImageExtent = (%d,%d), " "maxImageExtent = (%d,%d). %s", func_name, pCreateInfo->imageExtent.width, pCreateInfo->imageExtent.height, capabilities.currentExtent.width, capabilities.currentExtent.height, capabilities.minImageExtent.width, capabilities.minImageExtent.height, capabilities.maxImageExtent.width, capabilities.maxImageExtent.height, - validation_error_map[VALIDATION_ERROR_02334])) + validation_error_map[VALIDATION_ERROR_146009f4])) return true; } // pCreateInfo->preTransform should have exactly one bit set, and that bit must also be set in @@ -10145,8 +10159,8 @@ static bool PreCallValidateCreateSwapchainKHR(layer_data *dev_data, const char * } // Log the message that we've built up: if (log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, - HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_02339, "DS", "%s. %s", errorString.c_str(), - validation_error_map[VALIDATION_ERROR_02339])) + HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_146009fe, "DS", "%s. %s", errorString.c_str(), + validation_error_map[VALIDATION_ERROR_146009fe])) return true; } @@ -10172,26 +10186,26 @@ static bool PreCallValidateCreateSwapchainKHR(layer_data *dev_data, const char * } // Log the message that we've built up: if (log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, - HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_02340, "DS", "%s. %s", errorString.c_str(), - validation_error_map[VALIDATION_ERROR_02340])) + HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_14600a00, "DS", "%s. %s", errorString.c_str(), + validation_error_map[VALIDATION_ERROR_14600a00])) return true; } // Validate pCreateInfo->imageArrayLayers against VkSurfaceCapabilitiesKHR::maxImageArrayLayers: if ((pCreateInfo->imageArrayLayers < 1) || (pCreateInfo->imageArrayLayers > capabilities.maxImageArrayLayers)) { if (log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, - HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_02335, "DS", + HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_146009f6, "DS", "%s called with a non-supported imageArrayLayers (i.e. %d). Minimum value is 1, maximum value is %d. %s", func_name, pCreateInfo->imageArrayLayers, capabilities.maxImageArrayLayers, - validation_error_map[VALIDATION_ERROR_02335])) + validation_error_map[VALIDATION_ERROR_146009f6])) return true; } // Validate pCreateInfo->imageUsage against VkSurfaceCapabilitiesKHR::supportedUsageFlags: if (pCreateInfo->imageUsage != (pCreateInfo->imageUsage & capabilities.supportedUsageFlags)) { if (log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, - HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_02336, "DS", + HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_146009f8, "DS", "%s called with a non-supported pCreateInfo->imageUsage (i.e. 0x%08x). Supported flag bits are 0x%08x. %s", func_name, pCreateInfo->imageUsage, capabilities.supportedUsageFlags, - validation_error_map[VALIDATION_ERROR_02336])) + validation_error_map[VALIDATION_ERROR_146009f8])) return true; } } @@ -10224,16 +10238,16 @@ static bool PreCallValidateCreateSwapchainKHR(layer_data *dev_data, const char * if (!foundMatch) { if (!foundFormat) { if (log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, - HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_02333, "DS", + HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_146009f2, "DS", "%s called with a non-supported pCreateInfo->imageFormat (i.e. %d). %s", func_name, - pCreateInfo->imageFormat, validation_error_map[VALIDATION_ERROR_02333])) + pCreateInfo->imageFormat, validation_error_map[VALIDATION_ERROR_146009f2])) return true; } if (!foundColorSpace) { if (log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, - HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_02333, "DS", + HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_146009f2, "DS", "%s called with a non-supported pCreateInfo->imageColorSpace (i.e. %d). %s", func_name, - pCreateInfo->imageColorSpace, validation_error_map[VALIDATION_ERROR_02333])) + pCreateInfo->imageColorSpace, validation_error_map[VALIDATION_ERROR_146009f2])) return true; } } @@ -10254,9 +10268,9 @@ static bool PreCallValidateCreateSwapchainKHR(layer_data *dev_data, const char * pCreateInfo->presentMode) != physical_device_state->present_modes.end(); if (!foundMatch) { if (log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, - HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_02341, "DS", + HandleToUint64(dev_data->device), __LINE__, VALIDATION_ERROR_14600a02, "DS", "%s called with a non-supported presentMode (i.e. %s). %s", func_name, - string_VkPresentModeKHR(pCreateInfo->presentMode), validation_error_map[VALIDATION_ERROR_02341])) + string_VkPresentModeKHR(pCreateInfo->presentMode), validation_error_map[VALIDATION_ERROR_14600a02])) return true; } } @@ -10272,11 +10286,11 @@ static bool PreCallValidateCreateSwapchainKHR(layer_data *dev_data, const char * return true; } else if (pCreateInfo->minImageCount != 1) { if (log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, - reinterpret_cast<uint64_t>(dev_data->device), __LINE__, VALIDATION_ERROR_03295, "DS", + reinterpret_cast<uint64_t>(dev_data->device), __LINE__, VALIDATION_ERROR_14600ace, "DS", "%s called with presentMode %s, but minImageCount value is %d. For shared presentable image, minImageCount " "must be 1. %s", func_name, string_VkPresentModeKHR(pCreateInfo->presentMode), pCreateInfo->minImageCount, - validation_error_map[VALIDATION_ERROR_03295])) + validation_error_map[VALIDATION_ERROR_14600ace])) return true; } } @@ -10466,10 +10480,10 @@ VKAPI_ATTR VkResult VKAPI_CALL QueuePresentKHR(VkQueue queue, const VkPresentInf (layout != VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR))) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT, - HandleToUint64(queue), __LINE__, VALIDATION_ERROR_01964, "DS", + HandleToUint64(queue), __LINE__, VALIDATION_ERROR_11200a20, "DS", "Images passed to present must be in layout " "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR but is in %s. %s", - string_VkImageLayout(layout), validation_error_map[VALIDATION_ERROR_01964]); + string_VkImageLayout(layout), validation_error_map[VALIDATION_ERROR_11200a20]); } } } @@ -10491,10 +10505,10 @@ VKAPI_ATTR VkResult VKAPI_CALL QueuePresentKHR(VkQueue queue, const VkPresentInf } else if (!support_it->second) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT, - HandleToUint64(pPresentInfo->pSwapchains[i]), __LINE__, VALIDATION_ERROR_01961, "DS", + HandleToUint64(pPresentInfo->pSwapchains[i]), __LINE__, VALIDATION_ERROR_31800a18, "DS", "vkQueuePresentKHR: Presenting image on queue that cannot " "present to this surface. %s", - validation_error_map[VALIDATION_ERROR_01961]); + validation_error_map[VALIDATION_ERROR_31800a18]); } } } @@ -10553,7 +10567,7 @@ VKAPI_ATTR VkResult VKAPI_CALL QueuePresentKHR(VkQueue queue, const VkPresentInf log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT, HandleToUint64(pPresentInfo->pSwapchains[0]), __LINE__, - VALIDATION_ERROR_03214, "DS", + VALIDATION_ERROR_118009be, "DS", "vkQueuePresentKHR(): VkPresentTimesInfoGOOGLE.swapchainCount is %i but " "pPresentInfo->swapchainCount is %i. For VkPresentTimesInfoGOOGLE down pNext " "chain of VkPresentInfoKHR, VkPresentTimesInfoGOOGLE.swapchainCount " @@ -10692,9 +10706,9 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquireNextImageKHR(VkDevice device, VkSwapchainK auto pSemaphore = GetSemaphoreNode(dev_data, semaphore); if (pSemaphore && pSemaphore->signaled) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT, - HandleToUint64(semaphore), __LINE__, VALIDATION_ERROR_01952, "DS", + HandleToUint64(semaphore), __LINE__, VALIDATION_ERROR_16400a0c, "DS", "vkAcquireNextImageKHR: Semaphore must not be currently signaled or in a wait state. %s", - validation_error_map[VALIDATION_ERROR_01952]); + validation_error_map[VALIDATION_ERROR_16400a0c]); } auto pFence = GetFenceNode(dev_data, fence); @@ -11001,7 +11015,7 @@ VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceMirPresentationSupportKHR(VkPhys std::unique_lock<std::mutex> lock(global_lock); const auto pd_state = GetPhysicalDeviceState(instance_data, physicalDevice); - skip |= ValidatePhysicalDeviceQueueFamily(instance_data, pd_state, queueFamilyIndex, VALIDATION_ERROR_01893, + skip |= ValidatePhysicalDeviceQueueFamily(instance_data, pd_state, queueFamilyIndex, VALIDATION_ERROR_2d2009e2, "vkGetPhysicalDeviceMirPresentationSupportKHR", "queueFamilyIndex"); lock.unlock(); @@ -11031,7 +11045,7 @@ VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceWaylandPresentationSupportKHR(Vk std::unique_lock<std::mutex> lock(global_lock); const auto pd_state = GetPhysicalDeviceState(instance_data, physicalDevice); - skip |= ValidatePhysicalDeviceQueueFamily(instance_data, pd_state, queueFamilyIndex, VALIDATION_ERROR_01896, + skip |= ValidatePhysicalDeviceQueueFamily(instance_data, pd_state, queueFamilyIndex, VALIDATION_ERROR_2f000a34, "vkGetPhysicalDeviceWaylandPresentationSupportKHR", "queueFamilyIndex"); lock.unlock(); @@ -11060,7 +11074,7 @@ VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceWin32PresentationSupportKHR(VkPh std::unique_lock<std::mutex> lock(global_lock); const auto pd_state = GetPhysicalDeviceState(instance_data, physicalDevice); - skip |= ValidatePhysicalDeviceQueueFamily(instance_data, pd_state, queueFamilyIndex, VALIDATION_ERROR_01899, + skip |= ValidatePhysicalDeviceQueueFamily(instance_data, pd_state, queueFamilyIndex, VALIDATION_ERROR_2f200a3a, "vkGetPhysicalDeviceWin32PresentationSupportKHR", "queueFamilyIndex"); lock.unlock(); @@ -11089,7 +11103,7 @@ VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceXcbPresentationSupportKHR(VkPhys std::unique_lock<std::mutex> lock(global_lock); const auto pd_state = GetPhysicalDeviceState(instance_data, physicalDevice); - skip |= ValidatePhysicalDeviceQueueFamily(instance_data, pd_state, queueFamilyIndex, VALIDATION_ERROR_01901, + skip |= ValidatePhysicalDeviceQueueFamily(instance_data, pd_state, queueFamilyIndex, VALIDATION_ERROR_2f400a40, "vkGetPhysicalDeviceXcbPresentationSupportKHR", "queueFamilyIndex"); lock.unlock(); @@ -11119,7 +11133,7 @@ VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceXlibPresentationSupportKHR(VkPhy std::unique_lock<std::mutex> lock(global_lock); const auto pd_state = GetPhysicalDeviceState(instance_data, physicalDevice); - skip |= ValidatePhysicalDeviceQueueFamily(instance_data, pd_state, queueFamilyIndex, VALIDATION_ERROR_01904, + skip |= ValidatePhysicalDeviceQueueFamily(instance_data, pd_state, queueFamilyIndex, VALIDATION_ERROR_2f600a46, "vkGetPhysicalDeviceXlibPresentationSupportKHR", "queueFamilyIndex"); lock.unlock(); @@ -11218,7 +11232,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevi const auto pd_state = GetPhysicalDeviceState(instance_data, physicalDevice); auto surface_state = GetSurfaceState(instance_data, surface); - skip |= ValidatePhysicalDeviceQueueFamily(instance_data, pd_state, queueFamilyIndex, VALIDATION_ERROR_01889, + skip |= ValidatePhysicalDeviceQueueFamily(instance_data, pd_state, queueFamilyIndex, VALIDATION_ERROR_2ee009ea, "vkGetPhysicalDeviceSurfaceSupportKHR", "queueFamilyIndex"); lock.unlock(); |
