diff options
author | Petr Kraus <petr_kraus@email.cz> | 2019-08-15 17:19:33 +0200 |
---|---|---|
committer | Mark Lobodzinski <mark@lunarg.com> | 2019-08-19 10:01:19 -0600 |
commit | 139757bc47fde17503384fb473046277523823b9 (patch) | |
tree | 58433b74d0d8fe303f68135a34d71b85320facab | |
parent | 715bcc70755d257dd4857e2f4d36595a0213f278 (diff) | |
download | vulkan-validation-layers-139757bc47fde17503384fb473046277523823b9.tar.gz |
layers: Validate inherited conditional rendering
-rw-r--r-- | layers/parameter_validation_utils.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/layers/parameter_validation_utils.cpp b/layers/parameter_validation_utils.cpp index cb9818e93..7e953abb2 100644 --- a/layers/parameter_validation_utils.cpp +++ b/layers/parameter_validation_utils.cpp @@ -2296,6 +2296,21 @@ bool StatelessValidation::manual_PreCallValidateBeginCommandBuffer(VkCommandBuff skip |= validate_reserved_flags(cmd_name, "pBeginInfo->pInheritanceInfo->pipelineStatistics", pInfo->pipelineStatistics, "VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-00058"); } + + const auto *conditional_rendering = lvl_find_in_chain<VkCommandBufferInheritanceConditionalRenderingInfoEXT>(pInfo->pNext); + if (conditional_rendering) { + const auto *cr_features = + lvl_find_in_chain<VkPhysicalDeviceConditionalRenderingFeaturesEXT>(physical_device_features2.pNext); + const auto inherited_conditional_rendering = cr_features && cr_features->inheritedConditionalRendering; + if (!inherited_conditional_rendering && conditional_rendering->conditionalRenderingEnable == VK_TRUE) { + skip |= log_msg( + report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, + HandleToUint64(commandBuffer), + "VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-conditionalRenderingEnable-01977", + "vkBeginCommandBuffer: Inherited conditional rendering is disabled, but " + "pBeginInfo->pInheritanceInfo->pNext<VkCommandBufferInheritanceConditionalRenderingInfoEXT> is VK_TRUE."); + } + } } return skip; |