diff options
Diffstat (limited to 'registry')
-rw-r--r-- | registry/validusage.json | 536 | ||||
-rw-r--r-- | registry/vk.xml | 186 |
2 files changed, 396 insertions, 326 deletions
diff --git a/registry/validusage.json b/registry/validusage.json index 24b62e5..d06690e 100644 --- a/registry/validusage.json +++ b/registry/validusage.json @@ -1,9 +1,9 @@ { "version info": { "schema version": 2, - "api version": "1.2.177", - "comment": "from git branch: github-main commit: 88da24862cf91d692801c6ae64665d26d39f06c4", - "date": "2021-04-25 23:32:21Z" + "api version": "1.2.178", + "comment": "from git branch: github-main commit: dfe3bcd0e1b7239e2d6ae8b6afe563780a711854", + "date": "2021-05-10 09:32:36Z" }, "validation": { "vkGetInstanceProcAddr": { @@ -134,7 +134,7 @@ "core": [ { "vuid": "VUID-VkApplicationInfo-apiVersion-04010", - "text": " If <code>apiVersion</code> is not <code>0</code>, then it <strong class=\"purple\">must</strong> be greater or equal to <a href=\"#VK_API_VERSION_1_0\">VK_API_VERSION_1_0</a>" + "text": " If <code>apiVersion</code> is not <code>0</code>, then it <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#VK_API_VERSION_1_0\">VK_API_VERSION_1_0</a>" }, { "vuid": "VUID-VkApplicationInfo-sType-sType", @@ -1060,7 +1060,7 @@ }, { "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00052", - "text": " If <code>commandBuffer</code> is a secondary command buffer and either the <code>occlusionQueryEnable</code> member of the <code>pInheritanceInfo</code> member of <code>pBeginInfo</code> is <code>VK_FALSE</code>, or the precise occlusion queries feature is not enabled, the <code>queryFlags</code> member of the <code>pInheritanceInfo</code> member <code>pBeginInfo</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_CONTROL_PRECISE_BIT</code>" + "text": " If <code>commandBuffer</code> is a secondary command buffer and either the <code>occlusionQueryEnable</code> member of the <code>pInheritanceInfo</code> member of <code>pBeginInfo</code> is <code>VK_FALSE</code>, or the precise occlusion queries feature is not enabled, then <code>pBeginInfo->pInheritanceInfo->queryFlags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_CONTROL_PRECISE_BIT</code>" }, { "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-02840", @@ -1250,7 +1250,7 @@ }, { "vuid": "VUID-vkQueueSubmit2KHR-semaphore-03868", - "text": " The <code>semaphore</code> member of any element of the <code>pSignalSemaphoreInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be unsignaled when the semaphore signal operation it defines is executed on the device" + "text": " The <code>semaphore</code> member of any binary semaphore element of the <code>pSignalSemaphoreInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be unsignaled when the semaphore signal operation it defines is executed on the device" }, { "vuid": "VUID-vkQueueSubmit2KHR-stageMask-03869", @@ -1504,7 +1504,7 @@ }, { "vuid": "VUID-vkQueueSubmit-pSignalSemaphores-00067", - "text": " Each element of the <code>pSignalSemaphores</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be unsignaled when the semaphore signal operation it defines is executed on the device" + "text": " Each binary semaphore element of the <code>pSignalSemaphores</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be unsignaled when the semaphore signal operation it defines is executed on the device" }, { "vuid": "VUID-vkQueueSubmit-pWaitSemaphores-00068", @@ -2537,20 +2537,20 @@ "VkSemaphoreTypeCreateInfo": { "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ { - "vuid": "VUID-VkSemaphoreTypeCreateInfo-sType-sType", - "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO</code>" - }, - { - "vuid": "VUID-VkSemaphoreTypeCreateInfo-semaphoreType-parameter", - "text": " <code>semaphoreType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> value" - }, - { "vuid": "VUID-VkSemaphoreTypeCreateInfo-timelineSemaphore-03252", "text": " If the <a href=\"#features-timelineSemaphore\"><code>timelineSemaphore</code></a> feature is not enabled, <code>semaphoreType</code> <strong class=\"purple\">must</strong> not equal <code>VK_SEMAPHORE_TYPE_TIMELINE</code>" }, { "vuid": "VUID-VkSemaphoreTypeCreateInfo-semaphoreType-03279", "text": " If <code>semaphoreType</code> is <code>VK_SEMAPHORE_TYPE_BINARY</code>, <code>initialValue</code> <strong class=\"purple\">must</strong> be zero" + }, + { + "vuid": "VUID-VkSemaphoreTypeCreateInfo-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO</code>" + }, + { + "vuid": "VUID-VkSemaphoreTypeCreateInfo-semaphoreType-parameter", + "text": " <code>semaphoreType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> value" } ] }, @@ -3266,7 +3266,7 @@ }, { "vuid": "VUID-vkCmdSetEvent2KHR-dependencyFlags-03825", - "text": " The <code>dependencyFlags</code> member of <code>dependencyInfo</code> <strong class=\"purple\">must</strong> be <code>0</code>" + "text": " The <code>dependencyFlags</code> member of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> be <code>0</code>" }, { "vuid": "VUID-vkCmdSetEvent2KHR-srcStageMask-03827", @@ -3668,19 +3668,19 @@ }, { "vuid": "VUID-vkCmdWaitEvents2KHR-pEvents-03841", - "text": " For any element <span class=\"eq\">i</span> of <code>pEvents</code>, if barriers in the <span class=\"eq\">i</span>th element of <code>pDependencyInfos</code> do not include host operations, the <span class=\"eq\">i</span>th element of <code>pEvents</code> <strong class=\"purple\">must</strong> be by a corresponding <a href=\"#vkCmdSetEvent2KHR\">vkCmdSetEvent2KHR</a> that occurred earlier in <a href=\"#synchronization-submission-order\">submission order</a>" + "text": " For any element <span class=\"eq\">i</span> of <code>pEvents</code>, if barriers in the <span class=\"eq\">i</span>th element of <code>pDependencyInfos</code> do not include host operations, the <span class=\"eq\">i</span>th element of <code>pEvents</code> <strong class=\"purple\">must</strong> be signaled by a corresponding <a href=\"#vkCmdSetEvent2KHR\">vkCmdSetEvent2KHR</a> that occurred earlier in <a href=\"#synchronization-submission-order\">submission order</a>" }, { "vuid": "VUID-vkCmdWaitEvents2KHR-srcStageMask-03842", - "text": " The <code>srcStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> either include only pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from, or include only <code>VK_PIPELINE_STAGE_2_HOST_BIT_KHR</code>" + "text": " The <code>srcStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfos</code> <strong class=\"purple\">must</strong> either include only pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from, or include only <code>VK_PIPELINE_STAGE_2_HOST_BIT_KHR</code>" }, { "vuid": "VUID-vkCmdWaitEvents2KHR-dstStageMask-03843", - "text": " The <code>dstStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> only include pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from" + "text": " The <code>dstStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfos</code> <strong class=\"purple\">must</strong> only include pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from" }, { "vuid": "VUID-vkCmdWaitEvents2KHR-dependencyFlags-03844", - "text": " The <code>dependencyFlags</code> member of any element of <code>dependencyInfo</code> <strong class=\"purple\">must</strong> be <code>0</code>" + "text": " The <code>dependencyFlags</code> member of any element of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> be <code>0</code>" }, { "vuid": "VUID-vkCmdWaitEvents2KHR-pEvents-03845", @@ -3772,7 +3772,7 @@ }, { "vuid": "VUID-vkCmdWaitEvents-srcStageMask-01158", - "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be the bitwise OR of the <code>stageMask</code> parameter used in previous calls to <code>vkCmdSetEvent</code> with any of the members of <code>pEvents</code> and <code>VK_PIPELINE_STAGE_HOST_BIT</code> if any of the members of <code>pEvents</code> was set using <code>vkSetEvent</code>" + "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be the bitwise OR of the <code>stageMask</code> parameter used in previous calls to <code>vkCmdSetEvent</code> with any of the elements of <code>pEvents</code> and <code>VK_PIPELINE_STAGE_HOST_BIT</code> if any of the elements of <code>pEvents</code> was set using <code>vkSetEvent</code>" }, { "vuid": "VUID-vkCmdWaitEvents-pEvents-01163", @@ -3896,7 +3896,7 @@ }, { "vuid": "VUID-vkCmdWaitEvents-pEvents-03847", - "text": " Members of <code>pEvents</code> <strong class=\"purple\">must</strong> not have been signaled by <a href=\"#vkCmdSetEvent2KHR\">vkCmdSetEvent2KHR</a>" + "text": " Elements of <code>pEvents</code> <strong class=\"purple\">must</strong> not have been signaled by <a href=\"#vkCmdSetEvent2KHR\">vkCmdSetEvent2KHR</a>" } ], "(VK_VERSION_1_1,VK_KHR_device_group)": [ @@ -4157,26 +4157,6 @@ "VkMemoryBarrier2KHR": { "(VK_KHR_synchronization2)": [ { - "vuid": "VUID-VkMemoryBarrier2KHR-sType-sType", - "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR</code>" - }, - { - "vuid": "VUID-VkMemoryBarrier2KHR-srcStageMask-parameter", - "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2KHR\">VkPipelineStageFlagBits2KHR</a> values" - }, - { - "vuid": "VUID-VkMemoryBarrier2KHR-srcAccessMask-parameter", - "text": " <code>srcAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2KHR\">VkAccessFlagBits2KHR</a> values" - }, - { - "vuid": "VUID-VkMemoryBarrier2KHR-dstStageMask-parameter", - "text": " <code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2KHR\">VkPipelineStageFlagBits2KHR</a> values" - }, - { - "vuid": "VUID-VkMemoryBarrier2KHR-dstAccessMask-parameter", - "text": " <code>dstAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2KHR\">VkAccessFlagBits2KHR</a> values" - }, - { "vuid": "VUID-VkMemoryBarrier2KHR-srcStageMask-03929", "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR</code>" }, @@ -4335,6 +4315,26 @@ { "vuid": "VUID-VkMemoryBarrier2KHR-dstAccessMask-03917", "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_HOST_WRITE_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT_KHR</code>" + }, + { + "vuid": "VUID-VkMemoryBarrier2KHR-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR</code>" + }, + { + "vuid": "VUID-VkMemoryBarrier2KHR-srcStageMask-parameter", + "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2KHR\">VkPipelineStageFlagBits2KHR</a> values" + }, + { + "vuid": "VUID-VkMemoryBarrier2KHR-srcAccessMask-parameter", + "text": " <code>srcAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2KHR\">VkAccessFlagBits2KHR</a> values" + }, + { + "vuid": "VUID-VkMemoryBarrier2KHR-dstStageMask-parameter", + "text": " <code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2KHR\">VkPipelineStageFlagBits2KHR</a> values" + }, + { + "vuid": "VUID-VkMemoryBarrier2KHR-dstAccessMask-parameter", + "text": " <code>dstAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2KHR\">VkAccessFlagBits2KHR</a> values" } ], "(VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)": [ @@ -4726,7 +4726,7 @@ }, { "vuid": "VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03851", - "text": " If <code>srcStageMask</code> or <code>dstStageMask</code> include <code>VK_PIPELINE_STAGE_2_HOST_BIT_KHR</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be equal" + "text": " If either <code>srcStageMask</code> or <code>dstStageMask</code> includes <code>VK_PIPELINE_STAGE_2_HOST_BIT_KHR</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be equal" }, { "vuid": "VUID-VkBufferMemoryBarrier2KHR-sType-sType", @@ -4958,7 +4958,7 @@ }, { "vuid": "VUID-VkBufferMemoryBarrier2KHR-buffer-04088", - "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is a special queue family values reserved for external memory transfers, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>" + "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is one of the special queue family values reserved for external memory transfers, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>" }, { "vuid": "VUID-VkBufferMemoryBarrier2KHR-buffer-04089", @@ -5014,7 +5014,7 @@ }, { "vuid": "VUID-VkBufferMemoryBarrier-buffer-04088", - "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is a special queue family values reserved for external memory transfers, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>" + "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is one of the special queue family values reserved for external memory transfers, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>" }, { "vuid": "VUID-VkBufferMemoryBarrier-buffer-04089", @@ -5242,11 +5242,11 @@ }, { "vuid": "VUID-VkImageMemoryBarrier2KHR-srcStageMask-03854", - "text": " If <code>srcStageMask</code> or <code>dstStageMask</code> include <code>VK_PIPELINE_STAGE_2_HOST_BIT_KHR</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be equal" + "text": " If either <code>srcStageMask</code> or <code>dstStageMask</code> includes <code>VK_PIPELINE_STAGE_2_HOST_BIT_KHR</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be equal" }, { "vuid": "VUID-VkImageMemoryBarrier2KHR-srcStageMask-03855", - "text": " If <code>srcStageMask</code> includes <code>VK_PIPELINE_STAGE_2_HOST_BIT_KHR</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define a <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, <code>oldLayout</code> <strong class=\"purple\">must</strong> be one of <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>, <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, or <code>VK_IMAGE_LAYOUT_GENERAL</code>" + "text": " If <code>srcStageMask</code> includes <code>VK_PIPELINE_STAGE_2_HOST_BIT_KHR</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, <code>oldLayout</code> <strong class=\"purple\">must</strong> be one of <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>, <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, or <code>VK_IMAGE_LAYOUT_GENERAL</code>" }, { "vuid": "VUID-VkImageMemoryBarrier2KHR-sType-sType", @@ -5574,7 +5574,7 @@ }, { "vuid": "VUID-VkImageMemoryBarrier2KHR-image-04071", - "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is a special queue family values reserved for external memory transfers, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>" + "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is one of the special queue family values reserved for external memory transfers, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>" }, { "vuid": "VUID-VkImageMemoryBarrier2KHR-image-04072", @@ -5762,7 +5762,7 @@ }, { "vuid": "VUID-VkImageMemoryBarrier-image-04071", - "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is a special queue family values reserved for external memory transfers, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>" + "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is one of the special queue family values reserved for external memory transfers, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>" }, { "vuid": "VUID-VkImageMemoryBarrier-image-04072", @@ -5932,7 +5932,7 @@ }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-01927", - "text": " If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassInputAttachmentAspectCreateInfo\">VkRenderPassInputAttachmentAspectCreateInfo</a> structure, the <code>inputAttachmentIndex</code> member of each element of its <code>pAspectReferences</code> member <strong class=\"purple\">must</strong> be less than the value of <code>inputAttachmentCount</code> in the member of <code>pSubpasses</code> identified by its <code>subpass</code> member" + "text": " If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassInputAttachmentAspectCreateInfo\">VkRenderPassInputAttachmentAspectCreateInfo</a> structure, the <code>inputAttachmentIndex</code> member of each element of its <code>pAspectReferences</code> member <strong class=\"purple\">must</strong> be less than the value of <code>inputAttachmentCount</code> in the element of <code>pSubpasses</code> identified by its <code>subpass</code> member" }, { "vuid": "VUID-VkRenderPassCreateInfo-pNext-01963", @@ -6222,7 +6222,7 @@ }, { "vuid": "VUID-VkSubpassDescription-attachment-00853", - "text": " The <code>attachment</code> member of each element of <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_UNUSED</code>" + "text": " Each element of <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_UNUSED</code>" }, { "vuid": "VUID-VkSubpassDescription-pPreserveAttachments-00854", @@ -6752,7 +6752,7 @@ }, { "vuid": "VUID-VkSubpassDescription2-attachment-03073", - "text": " The <code>attachment</code> member of any element of <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_UNUSED</code>" + "text": " Each element of <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_UNUSED</code>" }, { "vuid": "VUID-VkSubpassDescription2-pPreserveAttachments-03074", @@ -6760,7 +6760,7 @@ }, { "vuid": "VUID-VkSubpassDescription2-layout-02528", - "text": " If any attachment is used by more than one <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> member, then each use <strong class=\"purple\">must</strong> use the same <code>layout</code>" + "text": " If any attachment is used by more than one <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> member, then each use <strong class=\"purple\">must</strong> use the same <code>layout</code>" }, { "vuid": "VUID-VkSubpassDescription2-None-04439", @@ -6950,7 +6950,7 @@ }, { "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-parameter", - "text": " <code>pFragmentShadingRateAttachment</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structure" + "text": " If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code>, <code>pFragmentShadingRateAttachment</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structure" } ] }, @@ -7348,11 +7348,11 @@ "(VK_KHR_fragment_shading_rate)": [ { "vuid": "VUID-VkFramebufferCreateInfo-flags-04539", - "text": " If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, an element of <code>pAttachments</code> that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> have a width at least as large as <span class=\"eq\">{lceil}<code>width</code> \\ <code>texelWidth</code>{rceil}</span>, where <code>texelWidth</code> is the largest value of <code>shadingRateAttachmentTexelSize.width</code> in a <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> which references that attachment" + "text": " If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, an element of <code>pAttachments</code> that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> have a width at least as large as <span class=\"eq\">{lceil}<code>width</code> / <code>texelWidth</code>{rceil}</span>, where <code>texelWidth</code> is the largest value of <code>shadingRateAttachmentTexelSize.width</code> in a <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> which references that attachment" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04540", - "text": " If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, an element of <code>pAttachments</code> that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> have a height at least as large as <span class=\"eq\">{lceil}<code>height</code> \\ <code>texelHeight</code>{rceil}</span>, where <code>texelHeight</code> is the largest value of <code>shadingRateAttachmentTexelSize.height</code> in a <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> which references that attachment" + "text": " If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, an element of <code>pAttachments</code> that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> have a height at least as large as <span class=\"eq\">{lceil}<code>height</code> / <code>texelHeight</code>{rceil}</span>, where <code>texelHeight</code> is the largest value of <code>shadingRateAttachmentTexelSize.height</code> in a <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> which references that attachment" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04548", @@ -7380,11 +7380,11 @@ }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04541", - "text": " If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>width</code> member of any element of the <code>pAttachmentImageInfos</code> member of an instance of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> in the <code>pNext</code> chain that is used as an input, color, resolve or depth/stencil attachment in <code>pRenderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>width</code>" + "text": " If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>width</code> member of any element of the <code>pAttachmentImageInfos</code> member of an instance of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> in the <code>pNext</code> chain that is used as an input, color, resolve or depth/stencil attachment in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>width</code>" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04542", - "text": " If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>height</code> member of any element of the <code>pAttachmentImageInfos</code> member of an instance of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> in the <code>pNext</code> chain that is used as an input, color, resolve or depth/stencil attachment in <code>pRenderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>height</code>" + "text": " If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>height</code> member of any element of the <code>pAttachmentImageInfos</code> member of an instance of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> in the <code>pNext</code> chain that is used as an input, color, resolve or depth/stencil attachment in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>height</code>" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-03201", @@ -7416,11 +7416,11 @@ "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_KHR_fragment_shading_rate)": [ { "vuid": "VUID-VkFramebufferCreateInfo-flags-04543", - "text": " If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>width</code> member of any element of the <code>pAttachmentImageInfos</code> member of an instance of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> in the <code>pNext</code> chain that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\">{lceil}<code>width</code> \\ <code>texelWidth</code>{rceil}</span>, where <code>texelWidth</code> is the largest value of <code>shadingRateAttachmentTexelSize.width</code> in a <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> which references that attachment" + "text": " If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>width</code> member of any element of the <code>pAttachmentImageInfos</code> member of an instance of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> in the <code>pNext</code> chain that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\">{lceil}<code>width</code> / <code>texelWidth</code>{rceil}</span>, where <code>texelWidth</code> is the largest value of <code>shadingRateAttachmentTexelSize.width</code> in a <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> which references that attachment" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04544", - "text": " If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>height</code> member of any element of the <code>pAttachmentImageInfos</code> member of an instance of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> in the <code>pNext</code> chain that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\">{lceil}<code>height</code> \\ <code>texelHeight</code>{rceil}</span>, where <code>texelHeight</code> is the largest value of <code>shadingRateAttachmentTexelSize.height</code> in a <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> which references that attachment" + "text": " If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>height</code> member of any element of the <code>pAttachmentImageInfos</code> member of an instance of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> in the <code>pNext</code> chain that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\">{lceil}<code>height</code> / <code>texelHeight</code>{rceil}</span>, where <code>texelHeight</code> is the largest value of <code>shadingRateAttachmentTexelSize.height</code> in a <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> which references that attachment" }, { "vuid": "VUID-VkFramebufferCreateInfo-flags-04545", @@ -7434,11 +7434,11 @@ "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_VERSION_1_1,VK_KHR_multiview)": [ { "vuid": "VUID-VkFramebufferCreateInfo-renderPass-03198", - "text": " If multiview is enabled for <code>renderPass</code>, and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>layerCount</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain used as an input, color, resolve, or depth/stencil attachment in <code>pRenderPass</code> <strong class=\"purple\">must</strong> be greater than the maximum bit index set in the view mask in the subpasses in which it is used in <code>renderPass</code>" + "text": " If multiview is enabled for <code>renderPass</code>, and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>layerCount</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain used as an input, color, resolve, or depth/stencil attachment in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than the maximum bit index set in the view mask in the subpasses in which it is used in <code>renderPass</code>" }, { "vuid": "VUID-VkFramebufferCreateInfo-renderPass-04546", - "text": " If multiview is not enabled for <code>renderPass</code>, and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>layerCount</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain used as an input, color, resolve, or depth/stencil attachment in <code>pRenderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>layers</code>" + "text": " If multiview is not enabled for <code>renderPass</code>, and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>layerCount</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain used as an input, color, resolve, or depth/stencil attachment in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>layers</code>" } ], "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+!(VK_VERSION_1_1+VK_KHR_multiview)": [ @@ -7552,7 +7552,7 @@ }, { "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00900", - "text": " If any of the <code>initialLayout</code> members of the <code>VkAttachmentDescription</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is not <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, then each such <code>initialLayout</code> <strong class=\"purple\">must</strong> be equal to the current layout of the corresponding attachment image subresource of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code>" + "text": " If the <code>initialLayout</code> member of any of the <code>VkAttachmentDescription</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is not <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, then each such <code>initialLayout</code> <strong class=\"purple\">must</strong> be equal to the current layout of the corresponding attachment image subresource of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code>" }, { "vuid": "VUID-vkCmdBeginRenderPass-srcStageMask-00901", @@ -7642,7 +7642,7 @@ }, { "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03100", - "text": " If any of the <code>initialLayout</code> members of the <code>VkAttachmentDescription</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is not <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, then each such <code>initialLayout</code> <strong class=\"purple\">must</strong> be equal to the current layout of the corresponding attachment image subresource of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code>" + "text": " If the <code>initialLayout</code> member of any of the <code>VkAttachmentDescription</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is not <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, then each such <code>initialLayout</code> <strong class=\"purple\">must</strong> be equal to the current layout of the corresponding attachment image subresource of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code>" }, { "vuid": "VUID-vkCmdBeginRenderPass2-srcStageMask-03101", @@ -8906,95 +8906,107 @@ }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00729", - "text": " If <code>pStages</code> includes a tessellation control shader stage, it <strong class=\"purple\">must</strong> include a tessellation evaluation shader stage" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes a tessellation control shader stage, it <strong class=\"purple\">must</strong> include a tessellation evaluation shader stage" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00730", - "text": " If <code>pStages</code> includes a tessellation evaluation shader stage, it <strong class=\"purple\">must</strong> include a tessellation control shader stage" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes a tessellation evaluation shader stage, it <strong class=\"purple\">must</strong> include a tessellation control shader stage" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00731", - "text": " If <code>pStages</code> includes a tessellation control shader stage and a tessellation evaluation shader stage, <code>pTessellationState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineTessellationStateCreateInfo\">VkPipelineTessellationStateCreateInfo</a> structure" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes a tessellation control shader stage and a tessellation evaluation shader stage, <code>pTessellationState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineTessellationStateCreateInfo\">VkPipelineTessellationStateCreateInfo</a> structure" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00732", - "text": " If <code>pStages</code> includes tessellation shader stages, the shader code of at least one stage <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction that specifies the type of subdivision in the pipeline" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes tessellation shader stages, the shader code of at least one stage <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction that specifies the type of subdivision in the pipeline" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00733", - "text": " If <code>pStages</code> includes tessellation shader stages, and the shader code of both stages contain an <code>OpExecutionMode</code> instruction that specifies the type of subdivision in the pipeline, they <strong class=\"purple\">must</strong> both specify the same subdivision mode" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes tessellation shader stages, and the shader code of both stages contain an <code>OpExecutionMode</code> instruction that specifies the type of subdivision in the pipeline, they <strong class=\"purple\">must</strong> both specify the same subdivision mode" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00734", - "text": " If <code>pStages</code> includes tessellation shader stages, the shader code of at least one stage <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction that specifies the output patch size in the pipeline" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes tessellation shader stages, the shader code of at least one stage <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction that specifies the output patch size in the pipeline" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00735", - "text": " If <code>pStages</code> includes tessellation shader stages, and the shader code of both contain an <code>OpExecutionMode</code> instruction that specifies the out patch size in the pipeline, they <strong class=\"purple\">must</strong> both specify the same patch size" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes tessellation shader stages, and the shader code of both contain an <code>OpExecutionMode</code> instruction that specifies the out patch size in the pipeline, they <strong class=\"purple\">must</strong> both specify the same patch size" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00736", - "text": " If <code>pStages</code> includes tessellation shader stages, the <code>topology</code> member of <code>pInputAssembly</code> <strong class=\"purple\">must</strong> be <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes tessellation shader stages, the <code>topology</code> member of <code>pInputAssembly</code> <strong class=\"purple\">must</strong> be <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-topology-00737", - "text": " If the <code>topology</code> member of <code>pInputAssembly</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, <code>pStages</code> <strong class=\"purple\">must</strong> include tessellation shader stages" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and the <code>topology</code> member of <code>pInputAssembly</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, <code>pStages</code> <strong class=\"purple\">must</strong> include tessellation shader stages" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00738", - "text": " If <code>pStages</code> includes a geometry shader stage, and does not include any tessellation shader stages, its shader code <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction that specifies an input primitive type that is <a href=\"#shaders-geometry-execution\">compatible</a> with the primitive topology specified in <code>pInputAssembly</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes a geometry shader stage, and does not include any tessellation shader stages, its shader code <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction that specifies an input primitive type that is <a href=\"#shaders-geometry-execution\">compatible</a> with the primitive topology specified in <code>pInputAssembly</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00739", - "text": " If <code>pStages</code> includes a geometry shader stage, and also includes tessellation shader stages, its shader code <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction that specifies an input primitive type that is <a href=\"#shaders-geometry-execution\">compatible</a> with the primitive topology that is output by the tessellation stages" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes a geometry shader stage, and also includes tessellation shader stages, its shader code <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction that specifies an input primitive type that is <a href=\"#shaders-geometry-execution\">compatible</a> with the primitive topology that is output by the tessellation stages" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00740", - "text": " If <code>pStages</code> includes a fragment shader stage and a geometry shader stage, and the fragment shader code reads from an input variable that is decorated with <code>PrimitiveID</code>, then the geometry shader code <strong class=\"purple\">must</strong> write to a matching output variable, decorated with <code>PrimitiveID</code>, in all execution paths" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, it includes both a fragment shader and a geometry shader, and the fragment shader code reads from an input variable that is decorated with <code>PrimitiveID</code>, then the geometry shader code <strong class=\"purple\">must</strong> write to a matching output variable, decorated with <code>PrimitiveID</code>, in all execution paths" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00741", - "text": " If <code>pStages</code> includes a fragment shader stage, its shader code <strong class=\"purple\">must</strong> not read from any input attachment that is defined as <code>VK_ATTACHMENT_UNUSED</code> in <code>subpass</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> the fragment shader <strong class=\"purple\">must</strong> not read from any input attachment that is defined as <code>VK_ATTACHMENT_UNUSED</code> in <code>subpass</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00742", - "text": " The shader code for the entry points identified by <code>pStages</code>, and the rest of the state identified by this structure <strong class=\"purple\">must</strong> adhere to the pipeline linking rules described in the <a href=\"#interfaces\">Shader Interfaces</a> chapter" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and multiple pre-rasterization shader stages are included in <code>pStages</code>, the shader code for the entry points identified by those <code>pStages</code> and the rest of the state identified by this structure <strong class=\"purple\">must</strong> adhere to the pipeline linking rules described in the <a href=\"#interfaces\">Shader Interfaces</a> chapter" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-04889", + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, the fragment shader and last vertex processing shader stage and any relevant state <strong class=\"purple\">must</strong> adhere to the pipeline linking rules described in the <a href=\"#interfaces\">Shader Interfaces</a> chapter" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-04890", + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and <code>subpass</code> uses a depth/stencil attachment in <code>renderPass</code> with a read-only layout for the depth aspect in the <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> defined by <code>subpass</code>, the <code>depthWriteEnable</code> member of <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-04891", + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and <code>subpass</code> uses a depth/stencil attachment in <code>renderPass</code> with a read-only layout for the stencil aspect in the <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> defined by <code>subpass</code>, the <code>failOp</code>, <code>passOp</code> and <code>depthFailOp</code> members of each of the <code>front</code> and <code>back</code> members of <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-blendEnable-04717", - "text": " If rasterization is not disabled, then for each color attachment in the subpass, if the <a href=\"#potential-format-features\">potential format features</a> of the format of the corresponding attachment description do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-output\">fragment output interface state</a>, then for each color attachment in the subpass, if the <a href=\"#potential-format-features\">potential format features</a> of the format of the corresponding attachment description do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-attachmentCount-00746", - "text": " If rasterization is not disabled and the subpass uses color attachments, the <code>attachmentCount</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be equal to the <code>colorAttachmentCount</code> used to create <code>subpass</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-output\">fragment output interface state</a>, and the subpass uses color attachments, the <code>attachmentCount</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be equal to the <code>colorAttachmentCount</code> used to create <code>subpass</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749", - "text": " If the wide lines feature is not enabled, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_LINE_WIDTH</code>, the <code>lineWidth</code> member of <code>pRasterizationState</code> <strong class=\"purple\">must</strong> be <code>1.0</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the wide lines feature is not enabled, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_LINE_WIDTH</code>, the <code>lineWidth</code> member of <code>pRasterizationState</code> <strong class=\"purple\">must</strong> be <code>1.0</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00750", - "text": " If the <code>rasterizerDiscardEnable</code> member of <code>pRasterizationState</code> is <code>VK_FALSE</code>," + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the <code>rasterizerDiscardEnable</code> member of <code>pRasterizationState</code> is <code>VK_FALSE</code>, <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a> structure" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00751", - "text": " If the <code>rasterizerDiscardEnable</code> member of <code>pRasterizationState</code> is <code>VK_FALSE</code>," + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00752", - "text": " If the <code>rasterizerDiscardEnable</code> member of <code>pRasterizationState</code> is <code>VK_FALSE</code>," + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and <code>subpass</code> uses a depth/stencil attachment, <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> structure" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00753", - "text": " If the <code>rasterizerDiscardEnable</code> member of <code>pRasterizationState</code> is <code>VK_FALSE</code>," + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-output\">fragment output interface state</a>, and <code>subpass</code> uses color attachments, <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineColorBlendStateCreateInfo\">VkPipelineColorBlendStateCreateInfo</a> structure" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-04493", - "text": " If the <code>rasterizerDiscardEnable</code> member of <code>pRasterizationState</code> is <code>VK_FALSE</code>," + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>pColorBlendState->attachmentCount</code> <strong class=\"purple\">must</strong> be greater than the index of all color attachments that are not <code>VK_ATTACHMENT_UNUSED</code> for the <code>subpass</code> index in <code>renderPass</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754", - "text": " If the depth bias clamping feature is not enabled, no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code>, and the <code>depthBiasEnable</code> member of <code>pRasterizationState</code> is <code>VK_TRUE</code>, the <code>depthBiasClamp</code> member of <code>pRasterizationState</code> <strong class=\"purple\">must</strong> be <code>0.0</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, the depth bias clamping feature is not enabled, no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code>, and the <code>depthBiasEnable</code> member of <code>pRasterizationState</code> is <code>VK_TRUE</code>, the <code>depthBiasClamp</code> member of <code>pRasterizationState</code> <strong class=\"purple\">must</strong> be <code>0.0</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-00756", @@ -9002,11 +9014,11 @@ }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-00757", - "text": " If neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, and if <code>subpass</code> uses color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be the same as the sample count for those subpass attachments" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, and if <code>subpass</code> uses color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be the same as the sample count for those subpass attachments" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-00758", - "text": " If <code>subpass</code> does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>subpass</code> does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-00759", @@ -9018,11 +9030,15 @@ }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02097", - "text": " If <code>pStages</code> includes a vertex shader stage, <code>pVertexInputState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineVertexInputStateCreateInfo\">VkPipelineVertexInputStateCreateInfo</a> structure" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-vertex-input\">vertex input state</a>, <code>pVertexInputState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineVertexInputStateCreateInfo\">VkPipelineVertexInputStateCreateInfo</a> structure" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02098", - "text": " If <code>pStages</code> includes a vertex shader stage, <code>pInputAssemblyState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a> structure" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-vertex-input\">vertex input state</a>, <code>pInputAssemblyState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a> structure" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-04893", + "text": " The pipeline <strong class=\"purple\">must</strong> be created with a <a href=\"#pipeline-graphics-subsets-complete\">complete set of state</a>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-sType-sType", @@ -9072,57 +9088,37 @@ "!(VK_NV_mesh_shader)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-stage-00727", - "text": " The <code>stage</code> member of one element of <code>pStages</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_STAGE_VERTEX_BIT</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> the <code>stage</code> member of one element of <code>pStages</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_STAGE_VERTEX_BIT</code>" } ], "(VK_NV_mesh_shader)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02095", - "text": " The geometric shader stages provided in <code>pStages</code> <strong class=\"purple\">must</strong> be either from the mesh shading pipeline (<code>stage</code> is <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>) or from the primitive shading pipeline (<code>stage</code> is <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>)" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> the geometric shader stages provided in <code>pStages</code> <strong class=\"purple\">must</strong> be either from the mesh shading pipeline (<code>stage</code> is <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>) or from the primitive shading pipeline (<code>stage</code> is <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>)" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-stage-02096", - "text": " The <code>stage</code> member of one element of <code>pStages</code> <strong class=\"purple\">must</strong> be either <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>" - } - ], - "!(VK_VERSION_1_1,VK_KHR_maintenance2)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-00743", - "text": " If rasterization is not disabled and <code>subpass</code> uses a depth/stencil attachment in <code>renderPass</code> that has a layout of <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code> in the <code>VkAttachmentReference</code> defined by <code>subpass</code>, the <code>depthWriteEnable</code> member of <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-00744", - "text": " If rasterization is not disabled and <code>subpass</code> uses a depth/stencil attachment in <code>renderPass</code> that has a layout of <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code> in the <code>VkAttachmentReference</code> defined by <code>subpass</code>, the <code>failOp</code>, <code>passOp</code> and <code>depthFailOp</code> members of each of the <code>front</code> and <code>back</code> members of <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01756", - "text": " If rasterization is not disabled and <code>subpass</code> uses a depth/stencil attachment in <code>renderPass</code> that has a layout of <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code> in the <code>VkAttachmentReference</code> defined by <code>subpass</code>, the <code>depthWriteEnable</code> member of <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01757", - "text": " If rasterization is not disabled and <code>subpass</code> uses a depth/stencil attachment in <code>renderPass</code> that has a layout of <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> in the <code>VkAttachmentReference</code> defined by <code>subpass</code>, the <code>failOp</code>, <code>passOp</code> and <code>depthFailOp</code> members of each of the <code>front</code> and <code>back</code> members of <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> the <code>stage</code> member of one element of <code>pStages</code> <strong class=\"purple\">must</strong> be either <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>" } ], "!(VK_EXT_extended_dynamic_state)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00747", - "text": " If no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT</code>, the <code>pViewports</code> member of <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pViewportState->viewportCount</code> valid <code>VkViewport</code> structures" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT</code>, the <code>pViewports</code> member of <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pViewportState->viewportCount</code> valid <code>VkViewport</code> structures" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00748", - "text": " If no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SCISSOR</code>, the <code>pScissors</code> member of <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pViewportState->scissorCount</code> <code>VkRect2D</code> structures" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SCISSOR</code>, the <code>pScissors</code> member of <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pViewportState->scissorCount</code> <code>VkRect2D</code> structures" } ], "(VK_EXT_extended_dynamic_state)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04130", - "text": " If no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT</code> or <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code>, the <code>pViewports</code> member of <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pViewportState->viewportCount</code> valid <code>VkViewport</code> structures" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT</code> or <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code>, the <code>pViewports</code> member of <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pViewportState->viewportCount</code> valid <code>VkViewport</code> structures" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131", - "text": " If no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SCISSOR</code> or <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT</code>, the <code>pScissors</code> member of <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pViewportState->scissorCount</code> <code>VkRect2D</code> structures" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SCISSOR</code> or <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT</code>, the <code>pScissors</code> member of <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pViewportState->scissorCount</code> <code>VkRect2D</code> structures" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03378", @@ -9130,89 +9126,107 @@ }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379", - "text": " If <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> is included in the <code>pDynamicStates</code> array then <code>viewportCount</code> <strong class=\"purple\">must</strong> be zero" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> is included in the <code>pDynamicStates</code> array then <code>viewportCount</code> <strong class=\"purple\">must</strong> be zero" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380", - "text": " If <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT</code> is included in the <code>pDynamicStates</code> array then <code>scissorCount</code> <strong class=\"purple\">must</strong> be zero" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT</code> is included in the <code>pDynamicStates</code> array then <code>scissorCount</code> <strong class=\"purple\">must</strong> be zero" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132", - "text": " If <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> is included in the <code>pDynamicStates</code> array then <code>VK_DYNAMIC_STATE_VIEWPORT</code> <strong class=\"purple\">must</strong> not be present" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> is included in the <code>pDynamicStates</code> array then <code>VK_DYNAMIC_STATE_VIEWPORT</code> <strong class=\"purple\">must</strong> not be present" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133", - "text": " If <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT</code> is included in the <code>pDynamicStates</code> array then <code>VK_DYNAMIC_STATE_SCISSOR</code> <strong class=\"purple\">must</strong> not be present" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT</code> is included in the <code>pDynamicStates</code> array then <code>VK_DYNAMIC_STATE_SCISSOR</code> <strong class=\"purple\">must</strong> not be present" + } + ], + "(VK_EXT_extended_dynamic_state2)": [ + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pViewportState-04892", + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT</code> dynamic state enabled, <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a> structure" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04868", + "text": " If the <a href=\"#features-extendedDynamicState2\">extendedDynamicState2</a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT</code>, <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code>, or <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT</code>" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869", + "text": " If the <a href=\"#features-extendedDynamicState2LogicOp\">extendedDynamicState2LogicOp</a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code>" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04870", + "text": " If the <a href=\"#features-extendedDynamicState2PatchControlPoints\">extendedDynamicState2PatchControlPoints</a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code>" } ], "!(VK_EXT_depth_range_unrestricted)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00755", - "text": " If no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code>, and the <code>depthBoundsTestEnable</code> member of <code>pDepthStencilState</code> is <code>VK_TRUE</code>, the <code>minDepthBounds</code> and <code>maxDepthBounds</code> members of <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code>, and the <code>depthBoundsTestEnable</code> member of <code>pDepthStencilState</code> is <code>VK_TRUE</code>, the <code>minDepthBounds</code> and <code>maxDepthBounds</code> members of <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive" } ], "(VK_EXT_depth_range_unrestricted)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-02510", - "text": " If the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is not enabled and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code>, and the <code>depthBoundsTestEnable</code> member of <code>pDepthStencilState</code> is <code>VK_TRUE</code>, the <code>minDepthBounds</code> and <code>maxDepthBounds</code> members of <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is not enabled and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code>, and the <code>depthBoundsTestEnable</code> member of <code>pDepthStencilState</code> is <code>VK_TRUE</code>, the <code>minDepthBounds</code> and <code>maxDepthBounds</code> members of <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive" } ], "(VK_EXT_sample_locations)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01521", - "text": " If no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code>, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code>, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code>, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code>, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01522", - "text": " If no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code>, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code>, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code>, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code>, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01523", - "text": " If no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code>, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code>, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code>, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code>, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524", - "text": " If the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>" } ], "(VK_AMD_mixed_attachment_samples)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01505", - "text": " If the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension is enabled, and if <code>subpass</code> uses color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> equal the maximum of the sample counts of those subpass attachments" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension is enabled, and if <code>subpass</code> uses color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> equal the maximum of the sample counts of those subpass attachments" } ], "(VK_NV_framebuffer_mixed_samples)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01411", - "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if <code>subpass</code> has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if <code>subpass</code> has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01412", - "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if <code>subpass</code> has any color attachments, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be greater than or equal to the sample count for those subpass attachments" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if <code>subpass</code> has any color attachments, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be greater than or equal to the sample count for those subpass attachments" } ], "(VK_NV_coverage_reduction_mode)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722", - "text": " If the <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the coverage reduction mode specified by <a href=\"#VkPipelineCoverageReductionStateCreateInfoNV\">VkPipelineCoverageReductionStateCreateInfoNV</a>::<code>coverageReductionMode</code>, the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <code>vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the coverage reduction mode specified by <a href=\"#VkPipelineCoverageReductionStateCreateInfoNV\">VkPipelineCoverageReductionStateCreateInfoNV</a>::<code>coverageReductionMode</code>, the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <code>vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</code>" } ], "(VK_VERSION_1_1,VK_KHR_multiview)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-00760", - "text": " If the <code>renderPass</code> has multiview enabled and <code>subpass</code> has more than one bit set in the view mask and <code>multiviewTessellationShader</code> is not enabled, then <code>pStages</code> <strong class=\"purple\">must</strong> not include tessellation shaders" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the <code>renderPass</code> has multiview enabled and <code>subpass</code> has more than one bit set in the view mask and <code>multiviewTessellationShader</code> is not enabled, then <code>pStages</code> <strong class=\"purple\">must</strong> not include tessellation shaders" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-00761", - "text": " If the <code>renderPass</code> has multiview enabled and <code>subpass</code> has more than one bit set in the view mask and <code>multiviewGeometryShader</code> is not enabled, then <code>pStages</code> <strong class=\"purple\">must</strong> not include a geometry shader" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the <code>renderPass</code> has multiview enabled and <code>subpass</code> has more than one bit set in the view mask and <code>multiviewGeometryShader</code> is not enabled, then <code>pStages</code> <strong class=\"purple\">must</strong> not include a geometry shader" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-00762", - "text": " If the <code>renderPass</code> has multiview enabled and <code>subpass</code> has more than one bit set in the view mask, shaders in the pipeline <strong class=\"purple\">must</strong> not write to the <code>Layer</code> built-in output" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the <code>renderPass</code> has multiview enabled and <code>subpass</code> has more than one bit set in the view mask, shaders in the pipeline <strong class=\"purple\">must</strong> not write to the <code>Layer</code> built-in output" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-00763", - "text": " If the <code>renderPass</code> has multiview enabled, then all shaders <strong class=\"purple\">must</strong> not include variables decorated with the <code>Layer</code> built-in decoration in their interfaces" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the <code>renderPass</code> has multiview enabled, then all shaders <strong class=\"purple\">must</strong> not include variables decorated with the <code>Layer</code> built-in decoration in their interfaces" } ], "(VK_VERSION_1_1,VK_KHR_device_group)": [ @@ -9224,69 +9238,69 @@ "(VK_VERSION_1_1,VK_KHR_maintenance2,VK_KHR_create_renderpass2)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-01565", - "text": " If <code>pStages</code> includes a fragment shader stage and an input attachment was referenced by an <code>aspectMask</code> at <code>renderPass</code> creation time, its shader code <strong class=\"purple\">must</strong> only read from the aspects that were specified for that input attachment" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and an input attachment was referenced by an <code>aspectMask</code> at <code>renderPass</code> creation time, the fragment shader <strong class=\"purple\">must</strong> only read from the aspects that were specified for that input attachment" } ], "(VK_NV_clip_space_w_scaling)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715", - "text": " If no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code>, and the <code>viewportWScalingEnable</code> member of a <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a> structure, included in the <code>pNext</code> chain of <code>pViewportState</code>, is <code>VK_TRUE</code>, the <code>pViewportWScalings</code> member of the <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a> <strong class=\"purple\">must</strong> be a pointer to an array of <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> valid <a href=\"#VkViewportWScalingNV\">VkViewportWScalingNV</a> structures" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code>, and the <code>viewportWScalingEnable</code> member of a <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a> structure, included in the <code>pNext</code> chain of <code>pViewportState</code>, is <code>VK_TRUE</code>, the <code>pViewportWScalings</code> member of the <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a> <strong class=\"purple\">must</strong> be a pointer to an array of <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> valid <a href=\"#VkViewportWScalingNV\">VkViewportWScalingNV</a> structures" } ], "(VK_NV_scissor_exclusive)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056", - "text": " If no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code>, and if <code>pViewportState->pNext</code> chain includes a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure, and if its <code>exclusiveScissorCount</code> member is not <code>0</code>, then its <code>pExclusiveScissors</code> member <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>exclusiveScissorCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code>, and if <code>pViewportState->pNext</code> chain includes a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure, and if its <code>exclusiveScissorCount</code> member is not <code>0</code>, then its <code>pExclusiveScissors</code> member <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>exclusiveScissorCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures" } ], "(VK_NV_shading_rate_image)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057", - "text": " If no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code>, and if <code>pViewportState->pNext</code> chain includes a <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a> structure, then its <code>pShadingRatePalettes</code> member <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <a href=\"#VkShadingRatePaletteNV\">VkShadingRatePaletteNV</a> structures" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code>, and if <code>pViewportState->pNext</code> chain includes a <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a> structure, then its <code>pShadingRatePalettes</code> member <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <a href=\"#VkShadingRatePaletteNV\">VkShadingRatePaletteNV</a> structures" } ], "(VK_EXT_discard_rectangles)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058", - "text": " If no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code>, and if <code>pNext</code> chain includes a <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a> structure, and if its <code>discardRectangleCount</code> member is not <code>0</code>, then its <code>pDiscardRectangles</code> member <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>discardRectangleCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code>, and if <code>pNext</code> chain includes a <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a> structure, and if its <code>discardRectangleCount</code> member is not <code>0</code>, then its <code>pDiscardRectangles</code> member <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>discardRectangleCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures" } ], "(VK_EXT_transform_feedback)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02317", - "text": " The <code>Xfb</code> execution mode <strong class=\"purple\">can</strong> be specified by only one shader stage in <code>pStages</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, the <code>Xfb</code> execution mode <strong class=\"purple\">can</strong> be specified by no more than one shader stage in <code>pStages</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02318", - "text": " If any shader stage in <code>pStages</code> specifies <code>Xfb</code> execution mode it <strong class=\"purple\">must</strong> be the last vertex processing stage" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and any shader stage in <code>pStages</code> specifies <code>Xfb</code> execution mode it <strong class=\"purple\">must</strong> be the last vertex processing stage" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319", - "text": " If a <a href=\"#VkPipelineRasterizationStateStreamCreateInfoEXT\">VkPipelineRasterizationStateStreamCreateInfoEXT</a>::<code>rasterizationStream</code> value other than zero is specified, all variables in the output interface of the entry point being compiled decorated with <code>Position</code>, <code>PointSize</code>, <code>ClipDistance</code>, or <code>CullDistance</code> <strong class=\"purple\">must</strong> be decorated with identical <code>Stream</code> values that match the <code>rasterizationStream</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and a <a href=\"#VkPipelineRasterizationStateStreamCreateInfoEXT\">VkPipelineRasterizationStateStreamCreateInfoEXT</a>::<code>rasterizationStream</code> value other than zero is specified, all variables in the output interface of the entry point being compiled decorated with <code>Position</code>, <code>PointSize</code>, <code>ClipDistance</code>, or <code>CullDistance</code> <strong class=\"purple\">must</strong> be decorated with identical <code>Stream</code> values that match the <code>rasterizationStream</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320", - "text": " If <a href=\"#VkPipelineRasterizationStateStreamCreateInfoEXT\">VkPipelineRasterizationStateStreamCreateInfoEXT</a>::<code>rasterizationStream</code> is zero, or not specified, all variables in the output interface of the entry point being compiled decorated with <code>Position</code>, <code>PointSize</code>, <code>ClipDistance</code>, or <code>CullDistance</code> <strong class=\"purple\">must</strong> be decorated with a <code>Stream</code> value of zero, or <strong class=\"purple\">must</strong> not specify the <code>Stream</code> decoration" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <a href=\"#VkPipelineRasterizationStateStreamCreateInfoEXT\">VkPipelineRasterizationStateStreamCreateInfoEXT</a>::<code>rasterizationStream</code> is zero, or not specified, all variables in the output interface of the entry point being compiled decorated with <code>Position</code>, <code>PointSize</code>, <code>ClipDistance</code>, or <code>CullDistance</code> <strong class=\"purple\">must</strong> be decorated with a <code>Stream</code> value of zero, or <strong class=\"purple\">must</strong> not specify the <code>Stream</code> decoration" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321", - "text": " If the last vertex processing stage is a geometry shader, and that geometry shader uses the <code>GeometryStreams</code> capability, then <code>VkPhysicalDeviceTransformFeedbackFeaturesEXT</code>::<code>geometryStreams</code> feature <strong class=\"purple\">must</strong> be enabled" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the last vertex processing stage is a geometry shader, and that geometry shader uses the <code>GeometryStreams</code> capability, then <code>VkPhysicalDeviceTransformFeedbackFeaturesEXT</code>::<code>geometryStreams</code> feature <strong class=\"purple\">must</strong> be enabled" } ], "(VK_EXT_transform_feedback)+(VK_NV_mesh_shader)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-02322", - "text": " If there are any mesh shader stages in the pipeline there <strong class=\"purple\">must</strong> not be any shader stage in the pipeline with a <code>Xfb</code> execution mode" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and there are any mesh shader stages in the pipeline there <strong class=\"purple\">must</strong> not be any shader stage in the pipeline with a <code>Xfb</code> execution mode" } ], "(VK_EXT_line_rasterization)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766", - "text": " If the <code>lineRasterizationMode</code> member of a <a href=\"#VkPipelineRasterizationLineStateCreateInfoEXT\">VkPipelineRasterizationLineStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pRasterizationState</code> is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code> or <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code> and if rasterization is enabled, then the <code>alphaToCoverageEnable</code>, <code>alphaToOneEnable</code>, and <code>sampleShadingEnable</code> members of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> all be <code>VK_FALSE</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and at least one of <a href=\"#pipeline-graphics-subsets-fragment-output\">fragment output interface state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, the <code>lineRasterizationMode</code> member of a <a href=\"#VkPipelineRasterizationLineStateCreateInfoEXT\">VkPipelineRasterizationLineStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pRasterizationState</code> is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code> or <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <code>alphaToCoverageEnable</code>, <code>alphaToOneEnable</code>, and <code>sampleShadingEnable</code> members of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> all be <code>VK_FALSE</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767", - "text": " If the <code>stippledLineEnable</code> member of <a href=\"#VkPipelineRasterizationLineStateCreateInfoEXT\">VkPipelineRasterizationLineStateCreateInfoEXT</a> is <code>VK_TRUE</code> and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code>, then the <code>lineStippleFactor</code> member of <a href=\"#VkPipelineRasterizationLineStateCreateInfoEXT\">VkPipelineRasterizationLineStateCreateInfoEXT</a> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[1,256]</span>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, the <code>stippledLineEnable</code> member of <a href=\"#VkPipelineRasterizationLineStateCreateInfoEXT\">VkPipelineRasterizationLineStateCreateInfoEXT</a> is <code>VK_TRUE</code>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code>, then the <code>lineStippleFactor</code> member of <a href=\"#VkPipelineRasterizationLineStateCreateInfoEXT\">VkPipelineRasterizationLineStateCreateInfoEXT</a> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[1,256]</span>" } ], "(VK_KHR_pipeline_library)": [ @@ -9329,20 +9343,6 @@ "text": " All elements of the <code>pDynamicStates</code> member of <code>pDynamicState</code> <strong class=\"purple\">must</strong> not be <code>VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR</code>" } ], - "(VK_EXT_extended_dynamic_state2)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04868", - "text": " If the <a href=\"#features-extendedDynamicState2\">extendedDynamicState2</a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT</code>, <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code>, or <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT</code>" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869", - "text": " If the <a href=\"#features-extendedDynamicState2LogicOp\">extendedDynamicState2LogicOp</a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code>" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04870", - "text": " If the <a href=\"#features-extendedDynamicState2PatchControlPoints\">extendedDynamicState2PatchControlPoints</a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code>" - } - ], "(VK_NV_device_generated_commands)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-02877", @@ -9352,7 +9352,7 @@ "(VK_NV_device_generated_commands)+(VK_EXT_transform_feedback)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-02966", - "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>, then all stages <strong class=\"purple\">must</strong> not specify <code>Xfb</code> execution mode" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>flags</code> includes <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>, then all stages <strong class=\"purple\">must</strong> not specify <code>Xfb</code> execution mode" } ], "(VK_EXT_pipeline_creation_cache_control)": [ @@ -9364,93 +9364,95 @@ "(VK_KHR_fragment_shading_rate)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494", - "text": " If <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.width</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>1</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.width</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>1</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04495", - "text": " If <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.height</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>1</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.height</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>1</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04496", - "text": " If <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.width</code> <strong class=\"purple\">must</strong> be a power-of-two value" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.width</code> <strong class=\"purple\">must</strong> be a power-of-two value" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04497", - "text": " If <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.height</code> <strong class=\"purple\">must</strong> be a power-of-two value" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.height</code> <strong class=\"purple\">must</strong> be a power-of-two value" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04498", - "text": " If <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>4</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>4</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04499", - "text": " If <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>4</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>4</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04500", - "text": " If <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, and the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code> feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.width</code> and <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.height</code> <strong class=\"purple\">must</strong> both be equal to <code>1</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, and the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code> feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.width</code> and <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.height</code> <strong class=\"purple\">must</strong> both be equal to <code>1</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04501", - "text": " If <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, and the <a href=\"#feature-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code> feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>combinerOps</code>[0] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, and the <a href=\"#feature-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code> feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>combinerOps</code>[0] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04502", - "text": " If <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, and the <a href=\"#feature-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code> feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>combinerOps</code>[1] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503", - "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, and <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>::<code>viewportCount</code> is greater than <code>1</code>, entry points specified in <code>pStages</code> <strong class=\"purple\">must</strong> not write to the <code>PrimitiveShadingRateKHR</code> built-in" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, and the <a href=\"#feature-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code> feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>combinerOps</code>[1] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04504", - "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and entry points specified in <code>pStages</code> write to the <code>ViewportIndex</code> built-in, they <strong class=\"purple\">must</strong> not also write to the <code>PrimitiveShadingRateKHR</code> built-in" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and entry points specified in <code>pStages</code> write to the <code>ViewportIndex</code> built-in, they <strong class=\"purple\">must</strong> not also write to the <code>PrimitiveShadingRateKHR</code> built-in" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04506", - "text": " If the <a href=\"#limits-fragmentShadingRateNonTrivialCombinerOps\"><code>fragmentShadingRateNonTrivialCombinerOps</code></a> limit is not supported and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, elements of <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>combinerOps</code> <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code> or <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, the <a href=\"#limits-fragmentShadingRateNonTrivialCombinerOps\"><code>fragmentShadingRateNonTrivialCombinerOps</code></a> limit is not supported, and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, elements of <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>combinerOps</code> <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code> or <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR</code>" + } + ], + "(VK_KHR_fragment_shading_rate)+(VK_EXT_extended_dynamic_state)": [ + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503", + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, and <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>::<code>viewportCount</code> is greater than <code>1</code>, entry points specified in <code>pStages</code> <strong class=\"purple\">must</strong> not write to the <code>PrimitiveShadingRateKHR</code> built-in" } ], "(VK_KHR_fragment_shading_rate)+(VK_NV_viewport_array2)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04505", - "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and entry points specified in <code>pStages</code> write to the <code>ViewportMaskNV</code> built-in, they <strong class=\"purple\">must</strong> not also write to the <code>PrimitiveShadingRateKHR</code> built-in" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and entry points specified in <code>pStages</code> write to the <code>ViewportMaskNV</code> built-in, they <strong class=\"purple\">must</strong> not also write to the <code>PrimitiveShadingRateKHR</code> built-in" } ], "(VK_NV_fragment_shading_rate_enums)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04569", - "text": " If <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, and the <a href=\"#features-fragmentShadingRateEnums\"><code>fragmentShadingRateEnums</code> feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRateType</code> <strong class=\"purple\">must</strong> be equal to <code>VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV</code>." + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, and the <a href=\"#features-fragmentShadingRateEnums\"><code>fragmentShadingRateEnums</code> feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRateType</code> <strong class=\"purple\">must</strong> be equal to <code>VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV</code>." }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04570", - "text": " If <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, and the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code> feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRate</code> <strong class=\"purple\">must</strong> be equal to <code>VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV</code>." + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, and the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code> feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRate</code> <strong class=\"purple\">must</strong> be equal to <code>VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV</code>." }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04571", - "text": " If <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, and the <a href=\"#feature-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code> feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>combinerOps</code>[0] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, and the <a href=\"#feature-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code> feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>combinerOps</code>[0] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04572", - "text": " If <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, and the <a href=\"#feature-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code> feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>combinerOps</code>[1] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, and the <a href=\"#feature-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code> feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>combinerOps</code>[1] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04573", - "text": " If the <a href=\"#limits-fragmentShadingRateNonTrivialCombinerOps\"><code>fragmentShadingRateNonTrivialCombinerOps</code></a> limit is not supported and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, elements of <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>combinerOps</code> <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code> or <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <a href=\"#limits-fragmentShadingRateNonTrivialCombinerOps\"><code>fragmentShadingRateNonTrivialCombinerOps</code></a> limit is not supported and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState</code>-><code>pDynamicStates</code>, elements of <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>combinerOps</code> <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code> or <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR</code>" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-04574", - "text": " If the <a href=\"#limits-supersampleFragmentShadingRates\">supersampleFragmentShadingRates feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRate</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV</code>, <code>VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV</code>, <code>VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV</code>, or <code>VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV</code>." + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <a href=\"#limits-supersampleFragmentShadingRates\">supersampleFragmentShadingRates feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRate</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV</code>, <code>VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV</code>, <code>VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV</code>, or <code>VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV</code>." }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-04575", - "text": " If the <a href=\"#limits-noInvocationFragmentShadingRates\">noInvocationFragmentShadingRates feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRate</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV</code>." + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <a href=\"#limits-noInvocationFragmentShadingRates\">noInvocationFragmentShadingRates feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRate</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV</code>." } ], "(VK_EXT_vertex_input_dynamic_state)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04807", - "text": " If the <a href=\"#features-vertexInputDynamicState\">vertexInputDynamicState</a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code>" + "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and the <a href=\"#features-vertexInputDynamicState\">vertexInputDynamicState</a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code>" } ], "(VK_EXT_color_write_enable)": [ @@ -9988,7 +9990,7 @@ }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraries-03591", - "text": " Each element of the <code>pLibraries</code> member of <code>pLibraryInfo</code> <strong class=\"purple\">must</strong> have been created with the value of <code>maxPipelineRayRecursionDepth</code> equal to that in this pipeline" + "text": " Each element of <code>pLibraryInfo->pLibraries</code> <strong class=\"purple\">must</strong> have been created with the value of <code>maxPipelineRayRecursionDepth</code> equal to that in this pipeline" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03592", @@ -10000,31 +10002,31 @@ }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03594", - "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>, each element of the <code>pLibraries</code> member of <code>libraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code> bit set" + "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>, each element of <code>pLibraryInfo->pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code> bit set" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04718", - "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code>, each element of the <code>pLibraries</code> member of <code>libraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code> bit set" + "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code>, each element of <code>pLibraryInfo->pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code> bit set" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04719", - "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code>, each element of the <code>pLibraries</code> member of <code>libraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code> bit set" + "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code>, each element of <code>pLibraryInfo->pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code> bit set" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04720", - "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>, each element of the <code>pLibraries</code> member of <code>libraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code> bit set" + "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>, each element of <code>pLibraryInfo->pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code> bit set" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04721", - "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, each element of the <code>pLibraries</code> member of <code>libraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code> bit set" + "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, each element of <code>pLibraryInfo->pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code> bit set" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04722", - "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>, each element of the <code>pLibraries</code> member of <code>libraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code> bit set" + "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>, each element of <code>pLibraryInfo->pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code> bit set" }, { "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04723", - "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>, each element of the <code>pLibraries</code> member of <code>libraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code> bit set" + "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>, each element of <code>pLibraryInfo->pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code> bit set" } ] }, @@ -10594,13 +10596,13 @@ }, { "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-02392", - "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR</code>, the <code>pipeline</code> <strong class=\"purple\">must</strong> be a ray tracing pipeline" + "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR</code>, <code>pipeline</code> <strong class=\"purple\">must</strong> be a ray tracing pipeline" } ], "(VK_KHR_pipeline_library)": [ { "vuid": "VUID-vkCmdBindPipeline-pipeline-03382", - "text": " The <code>pipeline</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code> set" + "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code> set" } ], "(VK_NV_inherited_viewport_scissor)": [ @@ -10758,7 +10760,7 @@ "(VK_KHR_pipeline_executable_properties)": [ { "vuid": "VUID-VkPipelineExecutableInfoKHR-executableIndex-03275", - "text": " <code>executableIndex</code> <strong class=\"purple\">must</strong> be less than the number of executables associated with <code>pipeline</code> as returned in the <code>pExecutableCount</code> parameter of <code>vkGetPipelineExecutablePropertiesKHR</code>" + "text": " <code>executableIndex</code> <strong class=\"purple\">must</strong> be less than the number of pipeline executables associated with <code>pipeline</code> as returned in the <code>pExecutableCount</code> parameter of <code>vkGetPipelineExecutablePropertiesKHR</code>" }, { "vuid": "VUID-VkPipelineExecutableInfoKHR-sType-sType", @@ -12538,11 +12540,11 @@ }, { "vuid": "VUID-VkBufferViewCreateInfo-buffer-00933", - "text": " If <code>buffer</code> was created with <code>usage</code> containing <code>VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be supported for uniform texel buffers, as specified by the <code>VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT</code> flag in <code>VkFormatProperties</code>::<code>bufferFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code>" + "text": " If <code>buffer</code> was created with <code>usage</code> containing <code>VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be supported for uniform texel buffers, as specified by the <code>VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT</code> flag in <code>VkFormatProperties</code>::<code>bufferFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a>" }, { "vuid": "VUID-VkBufferViewCreateInfo-buffer-00934", - "text": " If <code>buffer</code> was created with <code>usage</code> containing <code>VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be supported for storage texel buffers, as specified by the <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT</code> flag in <code>VkFormatProperties</code>::<code>bufferFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code>" + "text": " If <code>buffer</code> was created with <code>usage</code> containing <code>VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be supported for storage texel buffers, as specified by the <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT</code> flag in <code>VkFormatProperties</code>::<code>bufferFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a>" }, { "vuid": "VUID-VkBufferViewCreateInfo-buffer-00935", @@ -12650,7 +12652,7 @@ "core": [ { "vuid": "VUID-VkImageCreateInfo-imageCreateMaxMipLevels-02251", - "text": " Each of the following values (as described in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>) <strong class=\"purple\">must</strong> not be undefined <code>imageCreateMaxMipLevels</code>, <code>imageCreateMaxArrayLayers</code>, <code>imageCreateMaxExtent</code>, and <code>imageCreateSampleCounts</code>" + "text": " Each of the following values (as described in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>) <strong class=\"purple\">must</strong> not be undefined : <code>imageCreateMaxMipLevels</code>, <code>imageCreateMaxArrayLayers</code>, <code>imageCreateMaxExtent</code>, and <code>imageCreateSampleCounts</code>" }, { "vuid": "VUID-VkImageCreateInfo-sharingMode-00941", @@ -13134,11 +13136,11 @@ "(VK_VERSION_1_2,VK_KHR_image_format_list)": [ { "vuid": "VUID-VkImageCreateInfo-pNext-04737", - "text": " If a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure was included in the <code>pNext</code> chain and <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> is not zero then all of the formats in <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>pViewFormats</code> <strong class=\"purple\">must</strong> be compatible with the <code>format</code> as described in the <a href=\"#formats-compatibility\">compatibility table</a>" + "text": " If a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure was included in the <code>pNext</code> chain and <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> is not zero, then all of the formats in <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>pViewFormats</code> <strong class=\"purple\">must</strong> be compatible with the <code>format</code> as described in the <a href=\"#formats-compatibility\">compatibility table</a>" }, { "vuid": "VUID-VkImageCreateInfo-flags-04738", - "text": " If <code>flags</code> does not contain <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> and the <code>pNext</code> chain include a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure then <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>" + "text": " If <code>flags</code> does not contain <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> and the <code>pNext</code> chain includes a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure, then <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>" } ], "(VK_KHR_video_decode_queue)": [ @@ -14894,7 +14896,7 @@ "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ { "vuid": "VUID-vkBindBufferMemory-buffer-01444", - "text": " If <code>buffer</code> requires a dedicated allocation(as reported by <a href=\"#vkGetBufferMemoryRequirements2\">vkGetBufferMemoryRequirements2</a> in <a href=\"#VkMemoryDedicatedRequirements\">VkMemoryDedicatedRequirements</a>::<code>requiresDedicatedAllocation</code> for <code>buffer</code>), <code>memory</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> equal to <code>buffer</code>" + "text": " If <code>buffer</code> requires a dedicated allocation (as reported by <a href=\"#vkGetBufferMemoryRequirements2\">vkGetBufferMemoryRequirements2</a> in <a href=\"#VkMemoryDedicatedRequirements\">VkMemoryDedicatedRequirements</a>::<code>requiresDedicatedAllocation</code> for <code>buffer</code>), <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> equal to <code>buffer</code>" }, { "vuid": "VUID-vkBindBufferMemory-memory-01508", @@ -14904,17 +14906,17 @@ "(VK_VERSION_1_1)": [ { "vuid": "VUID-vkBindBufferMemory-None-01898", - "text": " If buffer was created with the <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> bit set, the buffer <strong class=\"purple\">must</strong> be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>" + "text": " If <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> bit set, the buffer <strong class=\"purple\">must</strong> be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>" }, { "vuid": "VUID-vkBindBufferMemory-None-01899", - "text": " If buffer was created with the <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> bit not set, the buffer <strong class=\"purple\">must</strong> not be bound to a memory object created with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>" + "text": " If <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> bit not set, the buffer <strong class=\"purple\">must</strong> not be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>" } ], "(VK_NV_dedicated_allocation)": [ { "vuid": "VUID-vkBindBufferMemory-buffer-01038", - "text": " If <code>buffer</code> was created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a>::<code>buffer</code> equal to a buffer handle created with identical creation parameters to <code>buffer</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero" + "text": " If <code>buffer</code> was created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a>::<code>buffer</code> equal to a buffer handle created with identical creation parameters to <code>buffer</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero" } ], "(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ @@ -14932,17 +14934,17 @@ "(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ { "vuid": "VUID-vkBindBufferMemory-memory-02727", - "text": " If <code>memory</code> was created by a memory import operation, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created" + "text": " If <code>memory</code> was allocated by a memory import operation, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created" } ], "(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ { "vuid": "VUID-vkBindBufferMemory-memory-02985", - "text": " If <code>memory</code> was created by a memory import operation, that is not <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> with a non-<code>NULL</code> <code>buffer</code> value, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created" + "text": " If <code>memory</code> was allocated by a memory import operation, that is not <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> with a non-<code>NULL</code> <code>buffer</code> value, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created" }, { "vuid": "VUID-vkBindBufferMemory-memory-02986", - "text": " If <code>memory</code> was created with the <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> memory import operation with a non-<code>NULL</code> <code>buffer</code> value, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created" + "text": " If <code>memory</code> was allocated with the <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> memory import operation with a non-<code>NULL</code> <code>buffer</code> value, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created" } ], "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ @@ -15022,7 +15024,7 @@ "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ { "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01444", - "text": " If <code>buffer</code> requires a dedicated allocation(as reported by <a href=\"#vkGetBufferMemoryRequirements2\">vkGetBufferMemoryRequirements2</a> in <a href=\"#VkMemoryDedicatedRequirements\">VkMemoryDedicatedRequirements</a>::<code>requiresDedicatedAllocation</code> for <code>buffer</code>), <code>memory</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> equal to <code>buffer</code>" + "text": " If <code>buffer</code> requires a dedicated allocation (as reported by <a href=\"#vkGetBufferMemoryRequirements2\">vkGetBufferMemoryRequirements2</a> in <a href=\"#VkMemoryDedicatedRequirements\">VkMemoryDedicatedRequirements</a>::<code>requiresDedicatedAllocation</code> for <code>buffer</code>), <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> equal to <code>buffer</code>" }, { "vuid": "VUID-VkBindBufferMemoryInfo-memory-01508", @@ -15032,17 +15034,17 @@ "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1)": [ { "vuid": "VUID-VkBindBufferMemoryInfo-None-01898", - "text": " If buffer was created with the <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> bit set, the buffer <strong class=\"purple\">must</strong> be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>" + "text": " If <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> bit set, the buffer <strong class=\"purple\">must</strong> be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>" }, { "vuid": "VUID-VkBindBufferMemoryInfo-None-01899", - "text": " If buffer was created with the <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> bit not set, the buffer <strong class=\"purple\">must</strong> not be bound to a memory object created with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>" + "text": " If <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> bit not set, the buffer <strong class=\"purple\">must</strong> not be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>" } ], "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)": [ { "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01038", - "text": " If <code>buffer</code> was created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a>::<code>buffer</code> equal to a buffer handle created with identical creation parameters to <code>buffer</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero" + "text": " If <code>buffer</code> was created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a>::<code>buffer</code> equal to a buffer handle created with identical creation parameters to <code>buffer</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero" } ], "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ @@ -15060,17 +15062,17 @@ "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ { "vuid": "VUID-VkBindBufferMemoryInfo-memory-02727", - "text": " If <code>memory</code> was created by a memory import operation, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created" + "text": " If <code>memory</code> was allocated by a memory import operation, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created" } ], "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ { "vuid": "VUID-VkBindBufferMemoryInfo-memory-02985", - "text": " If <code>memory</code> was created by a memory import operation, that is not <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> with a non-<code>NULL</code> <code>buffer</code> value, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created" + "text": " If <code>memory</code> was allocated by a memory import operation, that is not <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> with a non-<code>NULL</code> <code>buffer</code> value, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created" }, { "vuid": "VUID-VkBindBufferMemoryInfo-memory-02986", - "text": " If <code>memory</code> was created with the <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> memory import operation with a non-<code>NULL</code> <code>buffer</code> value, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created" + "text": " If <code>memory</code> was allocated with the <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> memory import operation with a non-<code>NULL</code> <code>buffer</code> value, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created" } ], "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ @@ -15122,11 +15124,11 @@ }, { "vuid": "VUID-vkBindImageMemory-memory-01047", - "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetImageMemoryRequirements</code> with <code>image</code>" + "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements\">vkGetImageMemoryRequirements</a> with <code>image</code>" }, { "vuid": "VUID-vkBindImageMemory-memoryOffset-01048", - "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetImageMemoryRequirements</code> with <code>image</code>" + "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements\">vkGetImageMemoryRequirements</a> with <code>image</code>" }, { "vuid": "VUID-vkBindImageMemory-size-01049", @@ -15472,7 +15474,7 @@ }, { "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-extent-01641", - "text": " The <code>extent.height</code> member of any element of <code>pSplitInstanceBindRegions</code> <strong class=\"purple\">must</strong> either be a multiple of the sparse image block height of all non-metadata aspects of the image, or else <code>extent.height</code> + <code>offset.y</code> <strong class=\"purple\">must</strong> equal the width of the image subresource" + "text": " The <code>extent.height</code> member of any element of <code>pSplitInstanceBindRegions</code> <strong class=\"purple\">must</strong> either be a multiple of the sparse image block height of all non-metadata aspects of the image, or else <code>extent.height</code> + <code>offset.y</code> <strong class=\"purple\">must</strong> equal the height of the image subresource" }, { "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-sType-sType", @@ -16248,7 +16250,7 @@ "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_KHR_acceleration_structure)": [ { "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingAccelerationStructureUpdateAfterBind-03570", - "text": " If <a href=\"#VkPhysicalDeviceAccelerationStructureFeaturesKHR\">VkPhysicalDeviceAccelerationStructureFeaturesKHR</a>::<code>descriptorBindingAccelerationStructureUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code>" + "text": " If <a href=\"#VkPhysicalDeviceAccelerationStructureFeaturesKHR\">VkPhysicalDeviceAccelerationStructureFeaturesKHR</a>::<code>descriptorBindingAccelerationStructureUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code> or <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>" } ] }, @@ -17191,12 +17193,6 @@ "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, and <code>dstSet</code> was allocated with a layout that included immutable samplers for <code>dstBinding</code>, then the <code>imageView</code> member of each element of <code>pImageInfo</code> which corresponds to an immutable sampler that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a> <strong class=\"purple\">must</strong> have been created with a <code>VkSamplerYcbcrConversionInfo</code> structure in its <code>pNext</code> chain with an <em>identically defined</em> <code>VkSamplerYcbcrConversionInfo</code> to the corresponding immutable sampler" } ], - "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-03048", - "text": " All consecutive bindings updated via a single <code>VkWriteDescriptorSet</code> structure, except those with a <code>descriptorCount</code> of zero, <strong class=\"purple\">must</strong> have identical <a href=\"#VkDescriptorBindingFlagBits\">VkDescriptorBindingFlagBits</a>" - } - ], "(VK_VALVE_mutable_descriptor_type)": [ { "vuid": "VUID-VkWriteDescriptorSet-dstSet-04611", @@ -17415,15 +17411,27 @@ "text": " If <code>srcSet</code>’s layout was created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> flag set, then <code>dstSet</code>’s layout <strong class=\"purple\">must</strong> also have been created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> flag set" }, { - "vuid": "VUID-VkCopyDescriptorSet-srcSet-01919", - "text": " If <code>srcSet</code>’s layout was created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> flag set, then <code>dstSet</code>’s layout <strong class=\"purple\">must</strong> also have been created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> flag set" - }, - { "vuid": "VUID-VkCopyDescriptorSet-srcSet-01920", "text": " If the descriptor pool from which <code>srcSet</code> was allocated was created with the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set, then the descriptor pool from which <code>dstSet</code> was allocated <strong class=\"purple\">must</strong> also have been created with the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set" + } + ], + "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VALVE_mutable_descriptor_type)": [ + { + "vuid": "VUID-VkCopyDescriptorSet-srcSet-04885", + "text": " If <code>srcSet</code>’s layout was created with neither <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> nor <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE</code> flags set, then <code>dstSet</code>’s layout <strong class=\"purple\">must</strong> have been created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> flag set" + }, + { + "vuid": "VUID-VkCopyDescriptorSet-srcSet-04887", + "text": " If the descriptor pool from which <code>srcSet</code> was allocated was created with neither <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> nor <code>VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE</code> flags set, then the descriptor pool from which <code>dstSet</code> was allocated <strong class=\"purple\">must</strong> have been created without the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set" + } + ], + "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+!(VK_VALVE_mutable_descriptor_type)": [ + { + "vuid": "VUID-VkCopyDescriptorSet-srcSet-04886", + "text": " If <code>srcSet</code>’s layout was created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> flag set, then <code>dstSet</code>’s layout <strong class=\"purple\">must</strong> also have been created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> flag set" }, { - "vuid": "VUID-VkCopyDescriptorSet-srcSet-01921", + "vuid": "VUID-VkCopyDescriptorSet-srcSet-04888", "text": " If the descriptor pool from which <code>srcSet</code> was allocated was created without the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set, then the descriptor pool from which <code>dstSet</code> was allocated <strong class=\"purple\">must</strong> also have been created without the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set" } ], @@ -17822,11 +17830,11 @@ "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)": [ { "vuid": "VUID-vkGetBufferDeviceAddress-bufferDeviceAddress-03324", - "text": " The <a href=\"#features-bufferDeviceAddress\">bufferDeviceAddress</a>" + "text": " The <a href=\"#features-bufferDeviceAddress\">bufferDeviceAddress</a> or <a href=\"#features-bufferDeviceAddressEXT\"><code>VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</code>::<code>bufferDeviceAddress</code></a> feature <strong class=\"purple\">must</strong> be enabled" }, { "vuid": "VUID-vkGetBufferDeviceAddress-device-03325", - "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\">bufferDeviceAddressMultiDevice</a>" + "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\">bufferDeviceAddressMultiDevice</a> or <a href=\"#features-bufferDeviceAddressMultiDeviceEXT\"><code>VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</code>::<code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled" }, { "vuid": "VUID-vkGetBufferDeviceAddress-device-parameter", @@ -19474,7 +19482,7 @@ "(VK_KHR_performance_query)": [ { "vuid": "VUID-VkQueryPoolCreateInfo-queryType-03222", - "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a structure of type <a href=\"#VkQueryPoolPerformanceCreateInfoKHR\">VkQueryPoolPerformanceCreateInfoKHR</a>" + "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkQueryPoolPerformanceCreateInfoKHR\">VkQueryPoolPerformanceCreateInfoKHR</a> structure" } ] }, @@ -22456,11 +22464,11 @@ }, { "vuid": "VUID-vkCmdCopyImageToBuffer-imageOffset-00197", - "text": " For each element of <code>pRegions</code> , <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> + <code>imageOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>imageSubresource</code> of <code>srcImage</code>" + "text": " For each element of <code>pRegions</code>, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> + <code>imageOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>imageSubresource</code> of <code>srcImage</code>" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-imageOffset-00198", - "text": " For each element of <code>pRegions</code> , <code>imageOffset.y</code> and <span class=\"eq\">(imageExtent.height + <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>imageSubresource</code> of <code>srcImage</code>" + "text": " For each element of <code>pRegions</code>, <code>imageOffset.y</code> and <span class=\"eq\">(imageExtent.height + <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>imageSubresource</code> of <code>srcImage</code>" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00199", @@ -28112,7 +28120,7 @@ }, { "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pStrides-03363", - "text": " If <code>pStrides</code> is not <code>NULL</code> each element of <code>pStrides</code> <strong class=\"purple\">must</strong> be greater than or equal to the maximum extent of of all vertex input attributes fetched from the corresponding binding, where the extent is calculated as the <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a>::<code>offset</code> plus <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a>::<code>format</code> size" + "text": " If <code>pStrides</code> is not <code>NULL</code> each element of <code>pStrides</code> <strong class=\"purple\">must</strong> be greater than or equal to the maximum extent of all vertex input attributes fetched from the corresponding binding, where the extent is calculated as the <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a>::<code>offset</code> plus <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a>::<code>format</code> size" }, { "vuid": "VUID-vkCmdBindVertexBuffers2EXT-commandBuffer-parameter", @@ -35159,10 +35167,6 @@ "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing any acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> in any other element of <code>pInfos</code>, which is accessed by this command" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03666", - "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>" - }, - { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03667", "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> have been built before with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR</code> set in <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a>::<code>flags</code>" }, @@ -35212,7 +35216,7 @@ }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03768", - "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, and <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, then the value of each index referenced index must be the same as the corresponding index value when <code>srcAccelerationStructure</code> was last built." + "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, and <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, then the value of each index referenced must be the same as the corresponding index value when <code>srcAccelerationStructure</code> was last built." }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-primitiveCount-03769", @@ -35240,15 +35244,15 @@ }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03671", - "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> + N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>buildScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count" + "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> + N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>buildScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03672", - "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> + N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>updateScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count" + "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> + N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>updateScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-geometry-03673", - "text": " The buffers from which the buffer device addresses for all of the <code>geometry.triangles.vertexData</code>, <code>geometry.triangles.indexData</code>, <code>geometry.triangles.transformData</code>, <code>geometry.aabbs.data</code>, and <code>geometry.instances.data</code> members of all <code>pInfos</code>[i].<code>pGeometries</code> and <code>pInfos</code>[i].<code>ppGeometries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR</code> usage flag" + "text": " The buffers from which the buffer device addresses for all of the <code>geometry.triangles.vertexData</code>, <code>geometry.triangles.indexData</code>, <code>geometry.triangles.transformData</code>, <code>geometry.aabbs.data</code>, and <code>geometry.instances.data</code> members of all <code>pInfos</code>[i].<code>pGeometries</code> and <code>pInfos</code>[i].<code>ppGeometries</code> are queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR</code> usage flag" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03674", @@ -35447,10 +35451,6 @@ "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing any acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> in any other element of <code>pInfos</code>, which is accessed by this command" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03666", - "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>" - }, - { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03667", "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> have been built before with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR</code> set in <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a>::<code>flags</code>" }, @@ -35500,7 +35500,7 @@ }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03768", - "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, and <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, then the value of each index referenced index must be the same as the corresponding index value when <code>srcAccelerationStructure</code> was last built." + "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, and <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, then the value of each index referenced must be the same as the corresponding index value when <code>srcAccelerationStructure</code> was last built." }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-primitiveCount-03769", @@ -35528,15 +35528,15 @@ }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03671", - "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> + N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>buildScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count" + "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> + N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>buildScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03672", - "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> + N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>updateScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count" + "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> + N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>updateScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-geometry-03673", - "text": " The buffers from which the buffer device addresses for all of the <code>geometry.triangles.vertexData</code>, <code>geometry.triangles.indexData</code>, <code>geometry.triangles.transformData</code>, <code>geometry.aabbs.data</code>, and <code>geometry.instances.data</code> members of all <code>pInfos</code>[i].<code>pGeometries</code> and <code>pInfos</code>[i].<code>ppGeometries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR</code> usage flag" + "text": " The buffers from which the buffer device addresses for all of the <code>geometry.triangles.vertexData</code>, <code>geometry.triangles.indexData</code>, <code>geometry.triangles.transformData</code>, <code>geometry.aabbs.data</code>, and <code>geometry.instances.data</code> members of all <code>pInfos</code>[i].<code>pGeometries</code> and <code>pInfos</code>[i].<code>ppGeometries</code> are queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR</code> usage flag" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03674", @@ -35632,7 +35632,7 @@ }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03646", - "text": " For any element of <code>pIndirectDeviceAddresses</code>[i], all device addresses between <code>pIndirectDeviceAddresses</code>[i] and <span class=\"eq\"><code>pIndirectDeviceAddresses</code>[i] + (<code>pInfos</code>[i]→geometryCount {times} <code>pIndirectStrides</code>[i]) - 1</span> <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer" + "text": " For any element of <code>pIndirectDeviceAddresses</code>[i], all device addresses between <code>pIndirectDeviceAddresses</code>[i] and <span class=\"eq\"><code>pIndirectDeviceAddresses</code>[i] + (<code>pInfos</code>[i].<code>geometryCount</code> {times} <code>pIndirectStrides</code>[i]) - 1</span> <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03647", @@ -35779,18 +35779,6 @@ "VkAccelerationStructureGeometryKHR": { "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [ { - "vuid": "VUID-VkAccelerationStructureGeometryKHR-geometryType-03541", - "text": " If <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, the <code>aabbs</code> member of <code>geometry</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureGeometryAabbsDataKHR\">VkAccelerationStructureGeometryAabbsDataKHR</a> structure" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryKHR-geometryType-03542", - "text": " If <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, the <code>triangles</code> member of <code>geometry</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a> structure" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryKHR-geometryType-03543", - "text": " If <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, the <code>instances</code> member of <code>geometry</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureGeometryInstancesDataKHR\">VkAccelerationStructureGeometryInstancesDataKHR</a> structure" - }, - { "vuid": "VUID-VkAccelerationStructureGeometryKHR-sType-sType", "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR</code>" }, @@ -35928,7 +35916,7 @@ }, { "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03657", - "text": " For geometries of type <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if the geometry doesn’t use indices, the offset <code>primitiveOffset</code> from <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a>::<code>vertexData</code> <strong class=\"purple\">must</strong> be a multiple of the component size of <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a>::<code>vertexFormat</code>" + "text": " For geometries of type <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if the geometry does not use indices, the offset <code>primitiveOffset</code> from <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a>::<code>vertexData</code> <strong class=\"purple\">must</strong> be a multiple of the component size of <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a>::<code>vertexFormat</code>" }, { "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-transformOffset-03658", @@ -36443,10 +36431,6 @@ "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing any acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> in any other element of <code>pInfos</code>, which is accessed by this command" }, { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03666", - "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>" - }, - { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03667", "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> have been built before with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR</code> set in <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a>::<code>flags</code>" }, @@ -36496,7 +36480,7 @@ }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03768", - "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, and <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, then the value of each index referenced index must be the same as the corresponding index value when <code>srcAccelerationStructure</code> was last built." + "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, and <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, then the value of each index referenced must be the same as the corresponding index value when <code>srcAccelerationStructure</code> was last built." }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-primitiveCount-03769", @@ -37402,7 +37386,7 @@ }, { "vuid": "VUID-VkStridedDeviceAddressRegionKHR-size-04632", - "text": " If <code>size</code> is not zero, <code>stride</code> <strong class=\"purple\">must</strong> be less than the size of the buffer from which <code>deviceAddress</code> was queried" + "text": " If <code>size</code> is not zero, <code>stride</code> <strong class=\"purple\">must</strong> be less than or equal to the size of the buffer from which <code>deviceAddress</code> was queried" } ] }, @@ -37610,7 +37594,7 @@ }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-rayTracingPipelineTraceRaysIndirect-03637", - "text": " the <a href=\"#features-rayTracingPipelineTraceRaysIndirect\"><code>VkPhysicalDeviceRayTracingPipelineFeaturesKHR</code>::<code>rayTracingPipelineTraceRaysIndirect</code></a> feature <strong class=\"purple\">must</strong> be enabled" + "text": " The <a href=\"#features-rayTracingPipelineTraceRaysIndirect\"><code>VkPhysicalDeviceRayTracingPipelineFeaturesKHR</code>::<code>rayTracingPipelineTraceRaysIndirect</code></a> feature <strong class=\"purple\">must</strong> be enabled" }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-parameter", diff --git a/registry/vk.xml b/registry/vk.xml index 5861446..cfa1dc1 100644 --- a/registry/vk.xml +++ b/registry/vk.xml @@ -70,6 +70,7 @@ branch of the member gitlab server. <tag name="HUAWEI" author="Huawei Technologies Co. Ltd." contact="Hueilong Wang @wyvernathuawei"/> <tag name="VALVE" author="Valve Corporation" contact="Pierre-Loup Griffais @plagman, Joshua Ashton @Joshua-Ashton, Hans-Kristian Arntzen @HansKristian-Work"/> <tag name="QNX" author="BlackBerry Limited" contact="Mike Gorchak @mgorchak-blackberry"/> + <tag name="JUICE" author="Juice Technologies, Inc." contact="David McCloskey @damcclos, Dean Beeler @canadacow"/> </tags> <types comment="Vulkan type definitions"> @@ -153,7 +154,7 @@ branch of the member gitlab server. <type category="define" requires="VK_MAKE_API_VERSION">// Vulkan 1.2 version number #define <name>VK_API_VERSION_1_2</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 2, 0)// Patch version should always be set to 0</type> <type category="define">// Version of this file -#define <name>VK_HEADER_VERSION</name> 177</type> +#define <name>VK_HEADER_VERSION</name> 178</type> <type category="define" requires="VK_HEADER_VERSION">// Complete version of this file #define <name>VK_HEADER_VERSION_COMPLETE</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 2, VK_HEADER_VERSION)</type> @@ -449,6 +450,8 @@ typedef void <name>CAMetalLayer</name>; <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkPerformanceConfigurationINTEL</name>)</type> <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDeferredOperationKHR</name>)</type> <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkPrivateDataSlotEXT</name>)</type> + <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_CU_MODULE_NVX"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkCuModuleNVX</name>)</type> + <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_CU_FUNCTION_NVX"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkCuFunctionNVX</name>)</type> <comment>WSI extensions</comment> <type category="handle" parent="VkPhysicalDevice" objtypeenum="VK_OBJECT_TYPE_DISPLAY_KHR"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDisplayKHR</name>)</type> @@ -5215,7 +5218,7 @@ typedef void <name>CAMetalLayer</name>; <type category="struct" name="VkFragmentShadingRateAttachmentInfoKHR" structextends="VkSubpassDescription2"> <member values="VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member> <member optional="true">const <type>void</type>* <name>pNext</name></member> - <member>const <type>VkAttachmentReference2</type>* <name>pFragmentShadingRateAttachment</name></member> + <member optional="true">const <type>VkAttachmentReference2</type>* <name>pFragmentShadingRateAttachment</name></member> <member><type>VkExtent2D</type> <name>shadingRateAttachmentTexelSize</name></member> </type> <type category="struct" name="VkPipelineFragmentShadingRateStateCreateInfoKHR" structextends="VkGraphicsPipelineCreateInfo"> @@ -5804,6 +5807,34 @@ typedef void <name>CAMetalLayer</name>; <member>const <type>void</type>* <name>pNext</name></member> <member><type>VkProvokingVertexModeEXT</type> <name>provokingVertexMode</name></member> </type> + <type category="struct" name="VkCuModuleCreateInfoNVX"> + <member values="VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>size_t</type> <name>dataSize</name></member> + <member>const <type>void</type>* <name>pData</name></member> + </type> + <type category="struct" name="VkCuFunctionCreateInfoNVX"> + <member values="VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>VkCuModuleNVX</type> <name>module</name></member> + <member>const <type>char</type>* <name>pName</name></member> + </type> + <type category="struct" name="VkCuLaunchInfoNVX"> + <member values="VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>VkCuFunctionNVX</type> <name>function</name></member> + <member><type>uint32_t</type> <name>gridDimX</name></member> + <member><type>uint32_t</type> <name>gridDimY</name></member> + <member><type>uint32_t</type> <name>gridDimZ</name></member> + <member><type>uint32_t</type> <name>blockDimX</name></member> + <member><type>uint32_t</type> <name>blockDimY</name></member> + <member><type>uint32_t</type> <name>blockDimZ</name></member> + <member><type>uint32_t</type> <name>sharedMemBytes</name></member> + <member><type>size_t</type> <name>paramCount</name></member> + <member>const <type>void</type>* const * <name>pParams</name></member> + <member><type>size_t</type> <name>extraCount</name></member> + <member>const <type>void</type>* const * <name>pExtras</name></member> + </type> </types> <comment>Vulkan enumerant (token) definitions</comment> @@ -6964,6 +6995,7 @@ typedef void <name>CAMetalLayer</name>; <enum value="13" name="VK_DRIVER_ID_MESA_LLVMPIPE" comment="Mesa"/> <enum value="14" name="VK_DRIVER_ID_MOLTENVK" comment="MoltenVK"/> <enum value="15" name="VK_DRIVER_ID_COREAVI_PROPRIETARY" comment="Core Avionics & Industrial Inc."/> + <enum value="16" name="VK_DRIVER_ID_JUICE_PROPRIETARY" comment="Juice Technologies, Inc."/> </enums> <enums name="VkConditionalRenderingFlagBitsEXT" type="bitmask"> <enum bitpos="0" name="VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT"/> @@ -10241,7 +10273,6 @@ typedef void <name>CAMetalLayer</name>; <param optional="false,true"><type>uint32_t</type>* <name>pCheckpointDataCount</name></param> <param optional="true" len="pCheckpointDataCount"><type>VkCheckpointData2NV</type>* <name>pCheckpointData</name></param> </command> - <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_EXTENSION_NOT_PRESENT,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_FEATURE_NOT_PRESENT,VK_ERROR_FORMAT_NOT_SUPPORTED"> <proto><type>VkResult</type> <name>vkGetPhysicalDeviceVideoCapabilitiesKHR</name></proto> <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param> @@ -10326,7 +10357,37 @@ typedef void <name>CAMetalLayer</name>; <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param>const <type>VkVideoEncodeInfoKHR</type>* <name>pEncodeInfo</name></param> </command> - + <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_INITIALIZATION_FAILED"> + <proto><type>VkResult</type> <name>vkCreateCuModuleNVX</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param>const <type>VkCuModuleCreateInfoNVX</type>* <name>pCreateInfo</name></param> + <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param> + <param><type>VkCuModuleNVX</type>* <name>pModule</name></param> + </command> + <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_INITIALIZATION_FAILED"> + <proto><type>VkResult</type> <name>vkCreateCuFunctionNVX</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param>const <type>VkCuFunctionCreateInfoNVX</type>* <name>pCreateInfo</name></param> + <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param> + <param><type>VkCuFunctionNVX</type>* <name>pFunction</name></param> + </command> + <command> + <proto><type>void</type> <name>vkDestroyCuModuleNVX</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param><type>VkCuModuleNVX</type> <name>module</name></param> + <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param> + </command> + <command> + <proto><type>void</type> <name>vkDestroyCuFunctionNVX</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param><type>VkCuFunctionNVX</type> <name>function</name></param> + <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param> + </command> + <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary" pipeline="graphics"> + <proto><type>void</type> <name>vkCmdCuLaunchKernelNVX</name></proto> + <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param>const <type>VkCuLaunchInfoNVX</type>* <name>pLaunchInfo</name></param> + </command> </commands> <feature api="vulkan" name="VK_VERSION_1_0" number="1.0" comment="Vulkan core API interface definitions"> @@ -11775,41 +11836,6 @@ typedef void <name>CAMetalLayer</name>; <command name="vkCmdDecodeVideoKHR"/> </require> </extension> - <extension name="VK_KHR_video_encode_queue" number="300" type="device" requires="VK_KHR_video_queue,VK_KHR_synchronization2" author="KHR" contact="[email protected]" provisional="true" platform="provisional" supported="vulkan"> - <require> - <enum value="2" name="VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION"/> - <enum value=""VK_KHR_video_encode_queue"" name="VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME"/> - <enum bitpos="27" extends="VkPipelineStageFlagBits2KHR" name="VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS" /> - <enum bitpos="37" extends="VkAccessFlagBits2KHR" name="VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS" /> - <enum bitpos="38" extends="VkAccessFlagBits2KHR" name="VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> - <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> - <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> - <enum bitpos="6" extends="VkQueueFlagBits" name="VK_QUEUE_VIDEO_ENCODE_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> - <enum bitpos="15" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> - <enum bitpos="16" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> - <enum bitpos="13" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> - <enum bitpos="14" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> - <enum bitpos="15" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> - <enum bitpos="27" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> - <enum bitpos="28" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> - <enum offset="0" extends="VkImageLayout" name="VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> - <enum offset="1" extends="VkImageLayout" name="VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> - <enum offset="2" extends="VkImageLayout" name="VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> - <enum offset="0" extends="VkQueryType" name="VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> - - <type name="VkVideoEncodeFlagBitsKHR"/> - <type name="VkVideoEncodeFlagsKHR"/> - <type name="VkVideoEncodeInfoKHR"/> - - <type name="VkVideoEncodeRateControlFlagBitsKHR"/> - <type name="VkVideoEncodeRateControlFlagsKHR"/> - <type name="VkVideoEncodeRateControlModeFlagBitsKHR"/> - <type name="VkVideoEncodeRateControlModeFlagsKHR"/> - - <type name="VkVideoEncodeRateControlInfoKHR"/> - <command name="vkCmdEncodeVideoKHR"/> - </require> - </extension> <extension name="VK_AMD_gcn_shader" number="26" type="device" author="AMD" contact="Dominik Witczak @dominikwitczakamd" supported="vulkan"> <require> <enum value="1" name="VK_AMD_GCN_SHADER_SPEC_VERSION"/> @@ -11867,10 +11893,27 @@ typedef void <name>CAMetalLayer</name>; <type name="VkPipelineRasterizationStateStreamCreateFlagsEXT"/> </require> </extension> - <extension name="VK_NVX_extension_30" number="30" author="NVX" contact="Jeff Juliano @jjulianoatnv" supported="disabled"> - <require> - <enum value="0" name="VK_NVX_EXTENSION_30_SPEC_VERSION"/> - <enum value=""VK_NVX_extension_30"" name="VK_NVX_EXTENSION_30_EXTENSION_NAME"/> + <extension name="VK_NVX_binary_import" number="30" type="device" author="NVX" contact="Eric Werness @ewerness,Liam Middlebrook @liam-middlebrook" supported="vulkan"> + <require> + <enum value="1" name="VK_NVX_BINARY_IMPORT_SPEC_VERSION"/> + <enum value=""VK_NVX_binary_import"" name="VK_NVX_BINARY_IMPORT_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX"/> + <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX"/> + <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX"/> + <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_CU_MODULE_NVX"/> + <enum offset="1" extends="VkObjectType" name="VK_OBJECT_TYPE_CU_FUNCTION_NVX"/> + <enum offset="0" extends="VkDebugReportObjectTypeEXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT"/> + <enum offset="1" extends="VkDebugReportObjectTypeEXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT"/> + <type name="VkCuModuleNVX"/> + <type name="VkCuFunctionNVX"/> + <type name="VkCuModuleCreateInfoNVX"/> + <type name="VkCuFunctionCreateInfoNVX"/> + <type name="VkCuLaunchInfoNVX"/> + <command name="vkCreateCuModuleNVX"/> + <command name="vkCreateCuFunctionNVX"/> + <command name="vkDestroyCuModuleNVX"/> + <command name="vkDestroyCuFunctionNVX"/> + <command name="vkCmdCuLaunchKernelNVX"/> </require> </extension> <extension name="VK_NVX_image_view_handle" number="31" type="device" author="NVX" contact="Eric Werness @ewerness" supported="vulkan"> @@ -15265,12 +15308,44 @@ typedef void <name>CAMetalLayer</name>; <require> <enum value="0" name="VK_KHR_EXTENSION_299_SPEC_VERSION"/> <enum value=""VK_KHR_extension_299"" name="VK_KHR_EXTENSION_299_EXTENSION_NAME"/> + <enum bitpos="2" extends="VkMemoryHeapFlagBits" name="VK_MEMORY_HEAP_RESERVED_2_BIT_KHR"/> + <enum extends="VkPipelineCacheCreateFlagBits" name="VK_PIPELINE_CACHE_CREATE_RESERVED_1_BIT_KHR" alias="VK_PIPELINE_CACHE_CREATE_RESERVED_1_BIT_EXT"/> + <enum bitpos="2" extends="VkPipelineCacheCreateFlagBits" name="VK_PIPELINE_CACHE_CREATE_RESERVED_2_BIT_KHR"/> </require> </extension> - <extension name="VK_KHR_extension_300" number="300" author="KHR" contact="Aidan Fabius @afabius" supported="disabled"> + <extension name="VK_KHR_video_encode_queue" number="300" type="device" requires="VK_KHR_video_queue,VK_KHR_synchronization2" author="KHR" contact="[email protected]" provisional="true" platform="provisional" supported="vulkan"> <require> - <enum value="0" name="VK_KHR_EXTENSION_300_SPEC_VERSION"/> - <enum value=""VK_KHR_extension_300"" name="VK_KHR_EXTENSION_300_EXTENSION_NAME"/> + <enum value="2" name="VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION"/> + <enum value=""VK_KHR_video_encode_queue"" name="VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME"/> + <enum bitpos="27" extends="VkPipelineStageFlagBits2KHR" name="VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS" /> + <enum bitpos="37" extends="VkAccessFlagBits2KHR" name="VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS" /> + <enum bitpos="38" extends="VkAccessFlagBits2KHR" name="VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> + <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> + <enum bitpos="6" extends="VkQueueFlagBits" name="VK_QUEUE_VIDEO_ENCODE_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> + <enum bitpos="15" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> + <enum bitpos="16" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> + <enum bitpos="13" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> + <enum bitpos="14" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> + <enum bitpos="15" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> + <enum bitpos="27" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> + <enum bitpos="28" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> + <enum offset="0" extends="VkImageLayout" name="VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> + <enum offset="1" extends="VkImageLayout" name="VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> + <enum offset="2" extends="VkImageLayout" name="VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> + <enum offset="0" extends="VkQueryType" name="VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/> + + <type name="VkVideoEncodeFlagBitsKHR"/> + <type name="VkVideoEncodeFlagsKHR"/> + <type name="VkVideoEncodeInfoKHR"/> + + <type name="VkVideoEncodeRateControlFlagBitsKHR"/> + <type name="VkVideoEncodeRateControlFlagsKHR"/> + <type name="VkVideoEncodeRateControlModeFlagBitsKHR"/> + <type name="VkVideoEncodeRateControlModeFlagsKHR"/> + + <type name="VkVideoEncodeRateControlInfoKHR"/> + <command name="vkCmdEncodeVideoKHR"/> </require> </extension> <extension name="VK_NV_device_diagnostics_config" number="301" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Kedarnath Thangudu @kthangudu" supported="vulkan"> @@ -15332,7 +15407,6 @@ typedef void <name>CAMetalLayer</name>; <require> <enum value="0" name="VK_KHR_EXTENSION_309_SPEC_VERSION"/> <enum value=""VK_KHR_extension_309"" name="VK_KHR_EXTENSION_309_EXTENSION_NAME"/> - <enum bitpos="2" extends="VkMemoryHeapFlagBits" name="VK_MEMORY_HEAP_RESERVED_2_BIT_KHR"/> </require> </extension> <extension name="VK_QCOM_extension_310" number="310" author="QCOM" contact="Jeff Leger @jackohound" supported="disabled"> @@ -15729,7 +15803,6 @@ typedef void <name>CAMetalLayer</name>; <require> <enum value="0" name="VK_KHR_EXTENSION_350_SPEC_VERSION"/> <enum value=""VK_KHR_extension_350"" name="VK_KHR_EXTENSION_350_EXTENSION_NAME"/> - <enum bitpos="2" extends="VkPipelineCacheCreateFlagBits" name="VK_PIPELINE_CACHE_CREATE_RESERVED_2_BIT_EXT"/> </require> </extension> <extension name="VK_NV_extension_351" number="351" author="NV" contact="Liam Middlebrook @liam-middlebrook" supported="disabled"> @@ -15911,14 +15984,15 @@ typedef void <name>CAMetalLayer</name>; <enum value=""VK_NV_extension_374"" name="VK_NV_EXTENSION_374_EXTENSION_NAME"/> <enum bitpos="4" extends="VkExternalFenceHandleTypeFlagBits" name="VK_EXTERNAL_FENCE_HANDLE_TYPE_RESERVED_4_BIT_NV"/> <enum bitpos="5" extends="VkExternalFenceHandleTypeFlagBits" name="VK_EXTERNAL_FENCE_HANDLE_TYPE_RESERVED_5_BIT_NV"/> + <enum bitpos="5" extends="VkExternalSemaphoreHandleTypeFlagBits" name="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_RESERVED_5_BIT_NV"/> + <enum bitpos="6" extends="VkExternalSemaphoreHandleTypeFlagBits" name="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_RESERVED_6_BIT_NV"/> </require> </extension> <extension name="VK_NV_extension_375" number="375" author="NV" contact="Daniel Koch @dgkoch" supported="disabled"> <require> <enum value="0" name="VK_NV_EXTENSION_375_SPEC_VERSION"/> <enum value=""VK_NV_extension_375"" name="VK_NV_EXTENSION_375_EXTENSION_NAME"/> - <enum bitpos="5" extends="VkExternalSemaphoreHandleTypeFlagBits" name="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_RESERVED_5_BIT_NV"/> - <enum bitpos="6" extends="VkExternalSemaphoreHandleTypeFlagBits" name="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_RESERVED_6_BIT_NV"/> + <enum bitpos="13" extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_RESERVED_13_BIT_NV"/> </require> </extension> <extension name="VK_EXT_extension_376" number="376" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="disabled"> @@ -16082,6 +16156,18 @@ typedef void <name>CAMetalLayer</name>; <enum value=""VK_NV_extension_398"" name="VK_NV_EXTENSION_398_EXTENSION_NAME"/> </require> </extension> + <extension name="VK_JUICE_extension_399" number="399" author="JUICE" contact="Dean Beeler @canadacow" supported="disabled"> + <require> + <enum value="0" name="VK_JUICE_EXTENSION_399_SPEC_VERSION"/> + <enum value=""VK_JUICE_extension_399"" name="VK_JUICE_EXTENSION_399_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_JUICE_extension_400" number="400" author="JUICE" contact="David McCloskey @damcclos" supported="disabled"> + <require> + <enum value="0" name="VK_JUICE_EXTENSION_400_SPEC_VERSION"/> + <enum value=""VK_JUICE_extension_400"" name="VK_JUICE_EXTENSION_400_EXTENSION_NAME"/> + </require> + </extension> </extensions> <spirvextensions comment="SPIR-V Extensions allowed in Vulkan and what is required to use it"> <spirvextension name="SPV_KHR_variable_pointers"> |