From 15a45e38a9b8c235d963a308680c8dc324d027d0 Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Mon, 19 Jun 2017 17:21:50 -0700 Subject: [PATCH] layers: Avoid renderpass lookup in verifyPipelineCreateState --- layers/core_validation.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index a167050..d7e0591 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -1218,20 +1218,19 @@ static bool verifyPipelineCreateState(layer_data *dev_data, std::vectorgraphicsPipelineCI.renderPass); - if (renderPass && pPipeline->graphicsPipelineCI.subpass >= renderPass->createInfo.subpassCount) { + auto subpass_desc = &pPipeline->render_pass_ci.pSubpasses[pPipeline->graphicsPipelineCI.subpass]; + if (pPipeline->graphicsPipelineCI.subpass >= pPipeline->render_pass_ci.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_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, + pPipeline->graphicsPipelineCI.subpass, pPipeline->render_pass_ci.subpassCount - 1, validation_error_map[VALIDATION_ERROR_096005ee]); + subpass_desc = nullptr; } if (pPipeline->graphicsPipelineCI.pColorBlendState != NULL) { const safe_VkPipelineColorBlendStateCreateInfo *color_blend_state = pPipeline->graphicsPipelineCI.pColorBlendState; - auto const render_pass_info = GetRenderPassState(dev_data, pPipeline->graphicsPipelineCI.renderPass)->createInfo.ptr(); - const VkSubpassDescription *subpass_desc = &render_pass_info->pSubpasses[pPipeline->graphicsPipelineCI.subpass]; 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, @@ -1368,8 +1367,6 @@ static bool verifyPipelineCreateState(layer_data *dev_data, std::vectorgraphicsPipelineCI.pRasterizationState->rasterizerDiscardEnable == VK_FALSE) { - auto subpass_desc = renderPass ? &renderPass->createInfo.pSubpasses[pPipeline->graphicsPipelineCI.subpass] : nullptr; - 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, -- 2.7.4