diff --git a/registry/validusage.json b/registry/validusage.json index 1bd6b30..ce91f36 100644 --- a/registry/validusage.json +++ b/registry/validusage.json @@ -1,9 +1,9 @@ { "version info": { "schema version": 2, - "api version": "1.1.79", - "comment": "from git branch: master commit: ff9357a4bad5fa49b99b9d3f69d254e2a3f0f575", - "date": "2018-07-02 20:23:28Z" + "api version": "1.1.80", + "comment": "from git branch: master commit: 831e2d4525cc3231adfadc3bc6b0c8372e6f7f68", + "date": "2018-07-18 14:45:22Z" }, "validation": { "vkGetInstanceProcAddr": { @@ -310,7 +310,7 @@ }, { "vuid": "VUID-VkDeviceCreateInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceGroupDeviceCreateInfo, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDeviceDescriptorIndexingFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceSamplerYcbcrConversionFeatures, or VkPhysicalDeviceVariablePointerFeatures" + "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceGroupDeviceCreateInfo, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice8BitStorageFeaturesKHR, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceSamplerYcbcrConversionFeatures, or VkPhysicalDeviceVariablePointerFeatures" }, { "vuid": "VUID-VkDeviceCreateInfo-sType-unique", @@ -808,7 +808,7 @@ }, { "vuid": "VUID-VkCommandBufferInheritanceInfo-pNext-pNext", - "text": " pNext must be NULL" + "text": " pNext must be NULL or a pointer to a valid instance of VkCommandBufferInheritanceConditionalRenderingInfoEXT" }, { "vuid": "VUID-VkCommandBufferInheritanceInfo-commonparent", @@ -816,6 +816,18 @@ } ] }, + "VkCommandBufferInheritanceConditionalRenderingInfoEXT": { + "(VK_EXT_conditional_rendering)": [ + { + "vuid": "VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-conditionalRenderingEnable-01977", + "text": " If the <<features-features-inheritedConditionalRendering, inherited conditional rendering>> feature is not enabled, conditionalRenderingEnable must be VK_FALSE" + }, + { + "vuid": "VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT" + } + ] + }, "vkEndCommandBuffer": { "core": [ { @@ -835,6 +847,12 @@ "text": " commandBuffer must be a valid VkCommandBuffer handle" } ], + "(VK_EXT_conditional_rendering)": [ + { + "vuid": "VUID-vkEndCommandBuffer-None-01978", + "text": " Conditional rendering must not be <<active-conditional-rendering,active>>" + } + ], "(VK_EXT_debug_utils)": [ { "vuid": "VUID-vkEndCommandBuffer-commandBuffer-01815", @@ -3172,7 +3190,7 @@ }, { "vuid": "VUID-VkSubpassDependency-srcSubpass-00866", - "text": " If srcSubpass is equal to dstSubpass, srcStageMask and dstStageMask must only contain one of VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, or VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT" + "text": " If srcSubpass is equal to dstSubpass, srcStageMask and dstStageMask must only contain one of VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT," }, { "vuid": "VUID-VkSubpassDependency-srcSubpass-00867", @@ -3230,6 +3248,384 @@ } ] }, + "vkCreateRenderPass2KHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-vkCreateRenderPass2KHR-device-parameter", + "text": " device must be a valid VkDevice handle" + }, + { + "vuid": "VUID-vkCreateRenderPass2KHR-pCreateInfo-parameter", + "text": " pCreateInfo must be a valid pointer to a valid VkRenderPassCreateInfo2KHR structure" + }, + { + "vuid": "VUID-vkCreateRenderPass2KHR-pAllocator-parameter", + "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" + }, + { + "vuid": "VUID-vkCreateRenderPass2KHR-pRenderPass-parameter", + "text": " pRenderPass must be a valid pointer to a VkRenderPass handle" + } + ] + }, + "VkRenderPassCreateInfo2KHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-None-03049", + "text": " If any two subpasses operate on attachments with overlapping ranges of the same VkDeviceMemory object, and at least one subpass writes to that area of VkDeviceMemory, a subpass dependency must be included (either directly or via some intermediate subpasses) between them" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-attachment-03050", + "text": " If the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or the attachment indexed by any element of pPreserveAttachments in any given element of pSubpasses is bound to a range of a VkDeviceMemory object that overlaps with any other attachment in any subpass (including the same subpass), the VkAttachmentDescription2KHR structures describing them must include VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT in flags" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-attachment-03051", + "text": " If the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or any element of pPreserveAttachments in any given element of pSubpasses is not VK_ATTACHMENT_UNUSED, it must be less than attachmentCount" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-pPreserveAttachments-03052", + "text": " The value of any element of the pPreserveAttachments member in any given element of pSubpasses must not be VK_ATTACHMENT_UNUSED" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-pAttachments-03053", + "text": " For any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL." + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-pDependencies-03054", + "text": " For any element of pDependencies, if the srcSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the srcStageMask member of that dependency must be a pipeline stage supported by the <<synchronization-pipeline-stages-types, pipeline>> identified by the pipelineBindPoint member of the source subpass." + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-pDependencies-03055", + "text": " For any element of pDependencies, if the dstSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the dstStageMask member of that dependency must be a pipeline stage supported by the <<synchronization-pipeline-stages-types, pipeline>> identified by the pipelineBindPoint member of the source subpass." + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-pCorrelatedViewMasks-03056", + "text": " The set of bits included in any element of pCorrelatedViewMasks must not overlap with the set of bits included in any other element of pCorrelatedViewMasks" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-viewMask-03057", + "text": " If the VkSubpassDescription2KHR::viewMask member of all elements of pSubpasses is 0, correlatedViewMaskCount must be 0" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-viewMask-03058", + "text": " The VkSubpassDescription2KHR::viewMask member of all elements of pSubpasses must either all be 0, or all not be 0" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-viewMask-03059", + "text": " If the VkSubpassDescription2KHR::viewMask member of all elements of pSubpasses is 0, the dependencyFlags member of any element of pDependencies must not include VK_DEPENDENCY_VIEW_LOCAL_BIT" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-pDependencies-03060", + "text": " For any element of pDependencies where its srcSubpass member equals its dstSubpass member, if the viewMask member of the corresponding element of pSubpasses includes more than one bit, its dependencyFlags member must include VK_DEPENDENCY_VIEW_LOCAL_BIT" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-flags-zerobitmask", + "text": " flags must be 0" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-pAttachments-parameter", + "text": " If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkAttachmentDescription2KHR structures" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-pSubpasses-parameter", + "text": " pSubpasses must be a valid pointer to an array of subpassCount valid VkSubpassDescription2KHR structures" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-pDependencies-parameter", + "text": " If dependencyCount is not 0, pDependencies must be a valid pointer to an array of dependencyCount valid VkSubpassDependency2KHR structures" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-pCorrelatedViewMasks-parameter", + "text": " If correlatedViewMaskCount is not 0, pCorrelatedViewMasks must be a valid pointer to an array of correlatedViewMaskCount uint32_t values" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-subpassCount-arraylength", + "text": " subpassCount must be greater than 0" + } + ] + }, + "VkAttachmentDescription2KHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-VkAttachmentDescription2KHR-finalLayout-03061", + "text": " finalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED" + }, + { + "vuid": "VUID-VkAttachmentDescription2KHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR" + }, + { + "vuid": "VUID-VkAttachmentDescription2KHR-flags-parameter", + "text": " flags must be a valid combination of VkAttachmentDescriptionFlagBits values" + }, + { + "vuid": "VUID-VkAttachmentDescription2KHR-format-parameter", + "text": " format must be a valid VkFormat value" + }, + { + "vuid": "VUID-VkAttachmentDescription2KHR-samples-parameter", + "text": " samples must be a valid VkSampleCountFlagBits value" + }, + { + "vuid": "VUID-VkAttachmentDescription2KHR-loadOp-parameter", + "text": " loadOp must be a valid VkAttachmentLoadOp value" + }, + { + "vuid": "VUID-VkAttachmentDescription2KHR-storeOp-parameter", + "text": " storeOp must be a valid VkAttachmentStoreOp value" + }, + { + "vuid": "VUID-VkAttachmentDescription2KHR-stencilLoadOp-parameter", + "text": " stencilLoadOp must be a valid VkAttachmentLoadOp value" + }, + { + "vuid": "VUID-VkAttachmentDescription2KHR-stencilStoreOp-parameter", + "text": " stencilStoreOp must be a valid VkAttachmentStoreOp value" + }, + { + "vuid": "VUID-VkAttachmentDescription2KHR-initialLayout-parameter", + "text": " initialLayout must be a valid VkImageLayout value" + }, + { + "vuid": "VUID-VkAttachmentDescription2KHR-finalLayout-parameter", + "text": " finalLayout must be a valid VkImageLayout value" + } + ] + }, + "VkSubpassDescription2KHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-VkSubpassDescription2KHR-pipelineBindPoint-03062", + "text": " pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-colorAttachmentCount-03063", + "text": " colorAttachmentCount must be less than or equal to VkPhysicalDeviceLimits::maxColorAttachments" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-loadOp-03064", + "text": " If the first use of an attachment in this render pass is as an input attachment, and the attachment is not also used as a color or depth/stencil attachment in the same subpass, then loadOp must not be VK_ATTACHMENT_LOAD_OP_CLEAR" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-pResolveAttachments-03065", + "text": " If pResolveAttachments is not NULL, for each resolve attachment that does not have the value VK_ATTACHMENT_UNUSED, the corresponding color attachment must not have the value VK_ATTACHMENT_UNUSED" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-pResolveAttachments-03066", + "text": " If pResolveAttachments is not NULL, the sample count of each element of pColorAttachments must be anything other than VK_SAMPLE_COUNT_1_BIT" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-pResolveAttachments-03067", + "text": " Any given element of pResolveAttachments must have a sample count of VK_SAMPLE_COUNT_1_BIT" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-pResolveAttachments-03068", + "text": " Any given element of pResolveAttachments must have the same VkFormat as its corresponding color attachment" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-pColorAttachments-03069", + "text": " All attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have the same sample count" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-None-03072", + "text": " If any input attachments are VK_ATTACHMENT_UNUSED, then any pipelines bound during the subpass must not access those input attachments from the fragment shader" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-attachment-03073", + "text": " The attachment member of any element of pPreserveAttachments must not be VK_ATTACHMENT_UNUSED" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-pPreserveAttachments-03074", + "text": " Any given element of pPreserveAttachments must not also be an element of any other member of the subpass description" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-layout-03075", + "text": " If any attachment is used as both an input attachment and a color or depth/stencil attachment, then each use must use the same layout" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-aspectMask-03175", + "text": " The aspectMask member of any element of pInputAttachments must be a valid combination of VkImageAspectFlagBits" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-aspectMask-03176", + "text": " The aspectMask member of any element of pInputAttachments must not be 0" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-flags-parameter", + "text": " flags must be a valid combination of VkSubpassDescriptionFlagBits values" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-pipelineBindPoint-parameter", + "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-pInputAttachments-parameter", + "text": " If inputAttachmentCount is not 0, pInputAttachments must be a valid pointer to an array of inputAttachmentCount valid VkAttachmentReference2KHR structures" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-pColorAttachments-parameter", + "text": " If colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference2KHR structures" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-pResolveAttachments-parameter", + "text": " If colorAttachmentCount is not 0, and pResolveAttachments is not NULL, pResolveAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference2KHR structures" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-pDepthStencilAttachment-parameter", + "text": " If pDepthStencilAttachment is not NULL, pDepthStencilAttachment must be a valid pointer to a valid VkAttachmentReference2KHR structure" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-pPreserveAttachments-parameter", + "text": " If preserveAttachmentCount is not 0, pPreserveAttachments must be a valid pointer to an array of preserveAttachmentCount uint32_t values" + } + ], + "(VK_KHR_create_renderpass2)+(VK_AMD_mixed_attachment_samples)": [ + { + "vuid": "VUID-VkSubpassDescription2KHR-pColorAttachments-03070", + "text": " All attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have a sample count that is smaller than or equal to the sample count of pDepthStencilAttachment if it is not VK_ATTACHMENT_UNUSED" + } + ], + "(VK_KHR_create_renderpass2)+!(VK_AMD_mixed_attachment_samples)+!(VK_NV_framebuffer_mixed_samples)": [ + { + "vuid": "VUID-VkSubpassDescription2KHR-pDepthStencilAttachment-03071", + "text": " If pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED and any attachments in pColorAttachments are not VK_ATTACHMENT_UNUSED, they must have the same sample count" + } + ], + "(VK_KHR_create_renderpass2)+(VK_NVX_multiview_per_view_attributes)": [ + { + "vuid": "VUID-VkSubpassDescription2KHR-flags-03076", + "text": " If flags includes VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX, it must also include VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX." + } + ] + }, + "VkAttachmentReference2KHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-VkAttachmentReference2KHR-layout-03077", + "text": " layout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED" + }, + { + "vuid": "VUID-VkAttachmentReference2KHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR" + }, + { + "vuid": "VUID-VkAttachmentReference2KHR-layout-parameter", + "text": " layout must be a valid VkImageLayout value" + } + ] + }, + "VkSubpassDependency2KHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-VkSubpassDependency2KHR-srcSubpass-03078", + "text": " If srcSubpass is not VK_SUBPASS_EXTERNAL, srcStageMask must not include VK_PIPELINE_STAGE_HOST_BIT" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-dstSubpass-03079", + "text": " If dstSubpass is not VK_SUBPASS_EXTERNAL, dstStageMask must not include VK_PIPELINE_STAGE_HOST_BIT" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-srcStageMask-03080", + "text": " If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-dstStageMask-03081", + "text": " If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-srcStageMask-03082", + "text": " If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-dstStageMask-03083", + "text": " If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-srcSubpass-03084", + "text": " srcSubpass must be less than or equal to dstSubpass, unless one of them is VK_SUBPASS_EXTERNAL, to avoid cyclic dependencies and ensure a valid execution order" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-srcSubpass-03085", + "text": " srcSubpass and dstSubpass must not both be equal to VK_SUBPASS_EXTERNAL" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-srcSubpass-03086", + "text": " If srcSubpass is equal to dstSubpass, srcStageMask and dstStageMask must only contain one of VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, or VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-srcSubpass-03087", + "text": " If srcSubpass is equal to dstSubpass and not all of the stages in srcStageMask and dstStageMask are <<synchronization-framebuffer-regions,framebuffer-space stages>>, the <<synchronization-pipeline-stages-order, logically latest>> pipeline stage in srcStageMask must be <<synchronization-pipeline-stages-order, logically earlier>> than or equal to the <<synchronization-pipeline-stages-order, logically earliest>> pipeline stage in dstStageMask" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-srcAccessMask-03088", + "text": " Any access flag included in srcAccessMask must be supported by one of the pipeline stages in srcStageMask, as specified in the <<synchronization-access-types-supported, table of supported access types>>" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-dstAccessMask-03089", + "text": " Any access flag included in dstAccessMask must be supported by one of the pipeline stages in dstStageMask, as specified in the <<synchronization-access-types-supported, table of supported access types>>" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-dependencyFlags-03090", + "text": " If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, srcSubpass must not be equal to VK_SUBPASS_EXTERNAL" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-dependencyFlags-03091", + "text": " If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, dstSubpass must not be equal to VK_SUBPASS_EXTERNAL" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-dependencyFlags-03092", + "text": " If dependencyFlags does not include VK_DEPENDENCY_VIEW_LOCAL_BIT, viewOffset must be 0" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-viewOffset-03093", + "text": " If viewOffset is not 0, srcSubpass must not be equal to dstSubpass." + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-srcStageMask-parameter", + "text": " srcStageMask must be a valid combination of VkPipelineStageFlagBits values" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-srcStageMask-requiredbitmask", + "text": " srcStageMask must not be 0" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-dstStageMask-parameter", + "text": " dstStageMask must be a valid combination of VkPipelineStageFlagBits values" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-dstStageMask-requiredbitmask", + "text": " dstStageMask must not be 0" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-srcAccessMask-parameter", + "text": " srcAccessMask must be a valid combination of VkAccessFlagBits values" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-dstAccessMask-parameter", + "text": " dstAccessMask must be a valid combination of VkAccessFlagBits values" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-dependencyFlags-parameter", + "text": " dependencyFlags must be a valid combination of VkDependencyFlagBits values" + } + ] + }, "vkDestroyRenderPass": { "core": [ { @@ -3476,6 +3872,74 @@ } ] }, + "vkCmdBeginRenderPass2KHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-initialLayout-03094", + "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then the corresponding attachment image subresource of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT set" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-initialLayout-03097", + "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then the corresponding attachment image subresource of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT set" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-initialLayout-03098", + "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then the corresponding attachment image subresource of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT set" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-initialLayout-03099", + "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL then the corresponding attachment image subresource of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT set" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-initialLayout-03100", + "text": " If any of the initialLayout members of the VkAttachmentDescription structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is not VK_IMAGE_LAYOUT_UNDEFINED, then each such initialLayout must be equal to the current layout of the corresponding attachment image subresource of the framebuffer specified in the framebuffer member of pRenderPassBegin" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-srcStageMask-03101", + "text": " The srcStageMask and dstStageMask members of any element of the pDependencies member of VkRenderPassCreateInfo used to create renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the VkCommandPoolCreateInfo used to create the command pool which commandBuffer was allocated from." + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-pRenderPassBegin-parameter", + "text": " pRenderPassBegin must be a valid pointer to a valid VkRenderPassBeginInfo structure" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-pSubpassBeginInfo-parameter", + "text": " pSubpassBeginInfo must be a valid pointer to a valid VkSubpassBeginInfoKHR structure" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-commandBuffer-recording", + "text": " commandBuffer must be in the <<commandbuffers-lifecycle, recording state>>" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-renderpass", + "text": " This command must only be called outside of a render pass instance" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-bufferlevel", + "text": " commandBuffer must be a primary VkCommandBuffer" + } + ], + "(VK_KHR_create_renderpass2)+!(VK_KHR_maintenance2)": [ + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-initialLayout-03095", + "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image subresource of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" + } + ], + "(VK_KHR_create_renderpass2)+(VK_KHR_maintenance2)": [ + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-initialLayout-03096", + "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image subresource of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" + } + ] + }, "VkRenderPassBeginInfo": { "core": [ { @@ -3556,6 +4020,22 @@ } ] }, + "VkSubpassBeginInfoKHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-VkSubpassBeginInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR" + }, + { + "vuid": "VUID-VkSubpassBeginInfoKHR-pNext-pNext", + "text": " pNext must be NULL" + }, + { + "vuid": "VUID-VkSubpassBeginInfoKHR-contents-parameter", + "text": " contents must be a valid VkSubpassContents value" + } + ] + }, "VkDeviceGroupRenderPassBeginInfo": { "(VK_VERSION_1_1,VK_KHR_device_group)": [ { @@ -3636,6 +4116,42 @@ } ] }, + "vkCmdNextSubpass2KHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-vkCmdNextSubpass2KHR-None-03102", + "text": " The current subpass index must be less than the number of subpasses in the render pass minus one" + }, + { + "vuid": "VUID-vkCmdNextSubpass2KHR-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" + }, + { + "vuid": "VUID-vkCmdNextSubpass2KHR-pSubpassBeginInfo-parameter", + "text": " pSubpassBeginInfo must be a valid pointer to a valid VkSubpassBeginInfoKHR structure" + }, + { + "vuid": "VUID-vkCmdNextSubpass2KHR-pSubpassEndInfo-parameter", + "text": " pSubpassEndInfo must be a valid pointer to a valid VkSubpassEndInfoKHR structure" + }, + { + "vuid": "VUID-vkCmdNextSubpass2KHR-commandBuffer-recording", + "text": " commandBuffer must be in the <<commandbuffers-lifecycle, recording state>>" + }, + { + "vuid": "VUID-vkCmdNextSubpass2KHR-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + }, + { + "vuid": "VUID-vkCmdNextSubpass2KHR-renderpass", + "text": " This command must only be called inside of a render pass instance" + }, + { + "vuid": "VUID-vkCmdNextSubpass2KHR-bufferlevel", + "text": " commandBuffer must be a primary VkCommandBuffer" + } + ] + }, "vkCmdEndRenderPass": { "core": [ { @@ -3664,6 +4180,50 @@ } ] }, + "vkCmdEndRenderPass2KHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-vkCmdEndRenderPass2KHR-None-03103", + "text": " The current subpass index must be equal to the number of subpasses in the render pass minus one" + }, + { + "vuid": "VUID-vkCmdEndRenderPass2KHR-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" + }, + { + "vuid": "VUID-vkCmdEndRenderPass2KHR-pSubpassEndInfo-parameter", + "text": " pSubpassEndInfo must be a valid pointer to a valid VkSubpassEndInfoKHR structure" + }, + { + "vuid": "VUID-vkCmdEndRenderPass2KHR-commandBuffer-recording", + "text": " commandBuffer must be in the <<commandbuffers-lifecycle, recording state>>" + }, + { + "vuid": "VUID-vkCmdEndRenderPass2KHR-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" + }, + { + "vuid": "VUID-vkCmdEndRenderPass2KHR-renderpass", + "text": " This command must only be called inside of a render pass instance" + }, + { + "vuid": "VUID-vkCmdEndRenderPass2KHR-bufferlevel", + "text": " commandBuffer must be a primary VkCommandBuffer" + } + ] + }, + "VkSubpassEndInfoKHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-VkSubpassEndInfoKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR" + }, + { + "vuid": "VUID-VkSubpassEndInfoKHR-pNext-pNext", + "text": " pNext must be NULL" + } + ] + }, "vkCreateShaderModule": { "core": [ { @@ -9210,6 +9770,10 @@ "vuid": "VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01972", "text": " Each element of pDynamicOffsets which corresponds to a descriptor binding with type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must be a multiple of VkPhysicalDeviceLimits::minStorageBufferOffsetAlignment" }, + { + "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-01979", + "text": " For each dynamic uniform or storage buffer binding in pDescriptorSets, the sum of the effective offset, as defined above, and the range of the binding must be less than or equal to the size of the buffer" + }, { "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-parameter", "text": " commandBuffer must be a valid VkCommandBuffer handle" @@ -13196,6 +13760,78 @@ } ] }, + "vkCmdBeginConditionalRenderingEXT": { + "(VK_EXT_conditional_rendering)": [ + { + "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-None-01980", + "text": " Conditional rendering must not already be <<active-conditional-rendering,active>>" + }, + { + "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" + }, + { + "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-pConditionalRenderingBegin-parameter", + "text": " pConditionalRenderingBegin must be a valid pointer to a valid VkConditionalRenderingBeginInfoEXT structure" + }, + { + "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-recording", + "text": " commandBuffer must be in the <<commandbuffers-lifecycle, recording state>>" + }, + { + "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + } + ] + }, + "VkConditionalRenderingBeginInfoEXT": { + "(VK_EXT_conditional_rendering)": [ + { + "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-buffer-01981", + "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" + }, + { + "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-buffer-01982", + "text": " buffer must have been created with the VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT bit set" + }, + { + "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-offset-01983", + "text": " offset must be less than the size of buffer by at least 32 bits." + }, + { + "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-offset-01984", + "text": " offset must be a multiple of 4" + } + ] + }, + "vkCmdEndConditionalRenderingEXT": { + "(VK_EXT_conditional_rendering)": [ + { + "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01985", + "text": " Conditional rendering must be <<active-conditional-rendering,active>>" + }, + { + "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01986", + "text": " If conditional rendering was made <<active-conditional-rendering,active>> outside of a render pass instance, it must not be ended inside a render pass instance" + }, + { + "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01987", + "text": " If conditional rendering was made <<active-conditional-rendering,active>> within a subpass it must be ended in the same subpass" + }, + { + "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-parameter", + "text": " commandBuffer must be a valid VkCommandBuffer handle" + }, + { + "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-recording", + "text": " commandBuffer must be in the <<commandbuffers-lifecycle, recording state>>" + }, + { + "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-cmdpool", + "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" + } + ] + }, "VkPipelineVertexInputStateCreateInfo": { "core": [ { @@ -17882,6 +18518,14 @@ } ] }, + "VkPhysicalDevice8BitStorageFeaturesKHR": { + "(VK_KHR_8bit_storage)": [ + { + "vuid": "VUID-VkPhysicalDevice8BitStorageFeaturesKHR-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR" + } + ] + }, "VkPhysicalDevice16BitStorageFeatures": { "(VK_VERSION_1_1,VK_KHR_16bit_storage)": [ { @@ -17914,6 +18558,14 @@ } ] }, + "VkPhysicalDeviceConditionalRenderingFeaturesEXT": { + "(VK_EXT_conditional_rendering)": [ + { + "vuid": "VUID-VkPhysicalDeviceConditionalRenderingFeaturesEXT-sType-sType", + "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT" + } + ] + }, "VkPhysicalDeviceShaderDrawParameterFeatures": { "(VK_VERSION_1_1)": [ {