aboutsummaryrefslogtreecommitdiffhomepage
path: root/registry
diff options
context:
space:
mode:
authorJon Leech <[email protected]>2023-03-12 00:33:03 -0800
committerJon Leech <[email protected]>2023-03-12 00:35:21 -0800
commitd732b2de303ce505169011d438178191136bfb00 (patch)
treeb35b0826ce920825028b9c27ae4bf830361851f3 /registry
parenta3dd2655a3a68c2a67c55a0f8b77dcb8b166ada2 (diff)
downloadVulkan-Headers-d732b2de303ce505169011d438178191136bfb00.tar.gz
Vulkan-Headers-d732b2de303ce505169011d438178191136bfb00.zip
Update for Vulkan-Docs 1.3.243v1.3.243
Diffstat (limited to 'registry')
-rw-r--r--registry/validusage.json3608
-rw-r--r--registry/video.xml69
-rw-r--r--registry/vk.xml368
3 files changed, 2452 insertions, 1593 deletions
diff --git a/registry/validusage.json b/registry/validusage.json
index 28415a5..f17850b 100644
--- a/registry/validusage.json
+++ b/registry/validusage.json
@@ -1,9 +1,9 @@
{
"version info": {
"schema version": 2,
- "api version": "1.3.242",
- "comment": "from git branch: github-main commit: f3e686fc22251102713a2a1a1cd071f60ab6efd8",
- "date": "2023-02-26 11:43:39Z"
+ "api version": "1.3.243",
+ "comment": "from git branch: github-main commit: 84ccde6b1b92820feee54c8b7577387b2cf1ce17",
+ "date": "2023-03-12 07:16:49Z"
},
"validation": {
"vkGetInstanceProcAddr": {
@@ -588,10 +588,10 @@
"(VK_AMD_negative_viewport_height)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-01840",
- "text": " <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> not contain <code><a href=\"#VK_AMD_negative_viewport_height\">VK_AMD_negative_viewport_height</a></code>"
+ "text": " If <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> advertises Vulkan 1.1 or later, <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> not contain <code><a href=\"#VK_AMD_negative_viewport_height\">VK_AMD_negative_viewport_height</a></code>"
}
],
- "(VK_AMD_negative_viewport_height)+!(VK_VERSION_1_1)+(VK_KHR_maintenance1)": [
+ "(VK_AMD_negative_viewport_height)+(VK_KHR_maintenance1)": [
{
"vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-00374",
"text": " <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> not contain both <code><a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a></code> and <code><a href=\"#VK_AMD_negative_viewport_height\">VK_AMD_negative_viewport_height</a></code>"
@@ -1408,7 +1408,7 @@
},
{
"vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06540",
- "text": " If <code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format that includes a depth aspect"
+ "text": " If <code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format that includes a depth component"
},
{
"vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06007",
@@ -1797,6 +1797,24 @@
"text": " If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
}
],
+ "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_ray_tracing)+!(VK_KHR_ray_tracing_pipeline)": [
+ {
+ "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-07945",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV</code>"
+ }
+ ],
+ "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-VkSemaphoreSubmitInfo-rayTracingPipeline-07946",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
+ "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-VkSemaphoreSubmitInfo-rayTracingPipeline-07947",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
"(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_device_group_creation,VK_VERSION_1_1)": [
{
"vuid": "VUID-VkSemaphoreSubmitInfo-device-03889",
@@ -2039,6 +2057,24 @@
"text": " pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
}
],
+ "(VK_NV_ray_tracing)+!(VK_KHR_ray_tracing_pipeline)": [
+ {
+ "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-07948",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV</code>"
+ }
+ ],
+ "(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-VkSubmitInfo-rayTracingPipeline-07949",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
+ "(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-VkSubmitInfo-rayTracingPipeline-07950",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
"(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
{
"vuid": "VUID-VkSubmitInfo-pWaitSemaphores-03239",
@@ -2120,11 +2156,11 @@
"(VK_KHR_external_semaphore_win32)": [
{
"vuid": "VUID-VkD3D12FenceSubmitInfoKHR-waitSemaphoreValuesCount-00079",
- "text": " <code>waitSemaphoreValuesCount</code> <strong class=\"purple\">must</strong> be the same value as <code>VkSubmitInfo</code>::<code>waitSemaphoreCount</code>, where <code>VkSubmitInfo</code> is in the <code>pNext</code> chain of this <code>VkD3D12FenceSubmitInfoKHR</code> structure"
+ "text": " <code>waitSemaphoreValuesCount</code> <strong class=\"purple\">must</strong> be the same value as <code>VkSubmitInfo</code>::<code>waitSemaphoreCount</code>, where this structure is in the <code>pNext</code> chain of a <code>VkSubmitInfo</code> structure"
},
{
"vuid": "VUID-VkD3D12FenceSubmitInfoKHR-signalSemaphoreValuesCount-00080",
- "text": " <code>signalSemaphoreValuesCount</code> <strong class=\"purple\">must</strong> be the same value as <code>VkSubmitInfo</code>::<code>signalSemaphoreCount</code>, where <code>VkSubmitInfo</code> is in the <code>pNext</code> chain of this <code>VkD3D12FenceSubmitInfoKHR</code> structure"
+ "text": " <code>signalSemaphoreValuesCount</code> <strong class=\"purple\">must</strong> be the same value as <code>VkSubmitInfo</code>::<code>signalSemaphoreCount</code>, where this structure is in the <code>pNext</code> chain of a <code>VkSubmitInfo</code> structure"
},
{
"vuid": "VUID-VkD3D12FenceSubmitInfoKHR-sType-sType",
@@ -2391,20 +2427,6 @@
"text": " Both of <code>commandBuffer</code>, and the elements of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
}
],
- "!(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdExecuteCommands-contents-00095",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance, that render pass instance <strong class=\"purple\">must</strong> have been begun with the <code>contents</code> parameter of <code>vkCmdBeginRenderPass</code> set to <code>VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00097",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <code>VkCommandBufferInheritanceInfo</code>::<code>subpass</code> set to the index of the subpass which the given command buffer will be executed in"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pInheritanceInfo-00098",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance, the render passes specified in the <code>pBeginInfo-&gt;pInheritanceInfo-&gt;renderPass</code> members of the <a href=\"#vkBeginCommandBuffer\">vkBeginCommandBuffer</a> commands used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the current render pass"
- }
- ],
"(VK_QCOM_render_pass_transform)": [
{
"vuid": "VUID-vkCmdExecuteCommands-pNext-02865",
@@ -4023,6 +4045,24 @@
"text": " pname:stageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
}
],
+ "(VK_NV_ray_tracing)+!(VK_KHR_ray_tracing_pipeline)": [
+ {
+ "vuid": "VUID-vkCmdSetEvent-stageMask-07948",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV</code>"
+ }
+ ],
+ "(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-vkCmdSetEvent-rayTracingPipeline-07949",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
+ "(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-vkCmdSetEvent-rayTracingPipeline-07950",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
"(VK_VERSION_1_1,VK_KHR_device_group)": [
{
"vuid": "VUID-vkCmdSetEvent-commandBuffer-01152",
@@ -4143,6 +4183,24 @@
"text": " If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
}
],
+ "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_ray_tracing)+!(VK_KHR_ray_tracing_pipeline)": [
+ {
+ "vuid": "VUID-vkCmdResetEvent2-stageMask-07945",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV</code>"
+ }
+ ],
+ "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-vkCmdResetEvent2-rayTracingPipeline-07946",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
+ "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-vkCmdResetEvent2-rayTracingPipeline-07947",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
"(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_device_group)": [
{
"vuid": "VUID-vkCmdResetEvent2-commandBuffer-03833",
@@ -4263,6 +4321,24 @@
"text": " pname:stageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
}
],
+ "(VK_NV_ray_tracing)+!(VK_KHR_ray_tracing_pipeline)": [
+ {
+ "vuid": "VUID-vkCmdResetEvent-stageMask-07948",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV</code>"
+ }
+ ],
+ "(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-vkCmdResetEvent-rayTracingPipeline-07949",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
+ "(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-vkCmdResetEvent-rayTracingPipeline-07950",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
"(VK_VERSION_1_1,VK_KHR_device_group)": [
{
"vuid": "VUID-vkCmdResetEvent-commandBuffer-01157",
@@ -4551,6 +4627,36 @@
"text": " pname:dstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
}
],
+ "(VK_NV_ray_tracing)+!(VK_KHR_ray_tracing_pipeline)": [
+ {
+ "vuid": "VUID-vkCmdWaitEvents-srcStageMask-07948",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdWaitEvents-dstStageMask-07948",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV</code>"
+ }
+ ],
+ "(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-vkCmdWaitEvents-rayTracingPipeline-07949",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdWaitEvents-rayTracingPipeline-07949",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
+ "(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-vkCmdWaitEvents-rayTracingPipeline-07950",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdWaitEvents-rayTracingPipeline-07950",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
"(VK_VERSION_1_1,VK_KHR_device_group)": [
{
"vuid": "VUID-vkCmdWaitEvents-commandBuffer-01167",
@@ -4859,6 +4965,36 @@
"text": " pname:dstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
}
],
+ "(VK_NV_ray_tracing)+!(VK_KHR_ray_tracing_pipeline)": [
+ {
+ "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-07948",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-07948",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV</code>"
+ }
+ ],
+ "(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-vkCmdPipelineBarrier-rayTracingPipeline-07949",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdPipelineBarrier-rayTracingPipeline-07949",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
+ "(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-vkCmdPipelineBarrier-rayTracingPipeline-07950",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdPipelineBarrier-rayTracingPipeline-07950",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
"!(VK_KHR_multiview,VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdPipelineBarrier-pDependencies-02285",
@@ -5209,10 +5345,40 @@
"text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
}
],
+ "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_ray_tracing)+!(VK_KHR_ray_tracing_pipeline)": [
+ {
+ "vuid": "VUID-VkMemoryBarrier2-srcStageMask-07945",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV</code>"
+ },
+ {
+ "vuid": "VUID-VkMemoryBarrier2-dstStageMask-07945",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV</code>"
+ }
+ ],
+ "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-VkMemoryBarrier2-rayTracingPipeline-07946",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-VkMemoryBarrier2-rayTracingPipeline-07946",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
+ "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-VkMemoryBarrier2-rayTracingPipeline-07947",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-VkMemoryBarrier2-rayTracingPipeline-07947",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
"(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)": [
{
"vuid": "VUID-VkMemoryBarrier2-srcAccessMask-07454",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
+ "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
},
{
"vuid": "VUID-VkMemoryBarrier2-srcAccessMask-07457",
@@ -5224,7 +5390,7 @@
},
{
"vuid": "VUID-VkMemoryBarrier2-dstAccessMask-07454",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
+ "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
},
{
"vuid": "VUID-VkMemoryBarrier2-dstAccessMask-07457",
@@ -5785,10 +5951,40 @@
"text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
}
],
+ "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_ray_tracing)+!(VK_KHR_ray_tracing_pipeline)": [
+ {
+ "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-07945",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV</code>"
+ },
+ {
+ "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-07945",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV</code>"
+ }
+ ],
+ "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-VkBufferMemoryBarrier2-rayTracingPipeline-07946",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-VkBufferMemoryBarrier2-rayTracingPipeline-07946",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
+ "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-VkBufferMemoryBarrier2-rayTracingPipeline-07947",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-VkBufferMemoryBarrier2-rayTracingPipeline-07947",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
"(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)": [
{
"vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-07454",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
+ "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
},
{
"vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-07457",
@@ -5800,7 +5996,7 @@
},
{
"vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-07454",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
+ "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
},
{
"vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-07457",
@@ -6047,10 +6243,6 @@
{
"vuid": "VUID-VkBufferMemoryBarrier-buffer-04086",
"text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be valid queue families"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier-synchronization2-03852",
- "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, and <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> both be <code>VK_QUEUE_FAMILY_IGNORED</code>"
}
],
"(VK_VERSION_1_1,VK_KHR_external_memory)": [
@@ -6065,7 +6257,27 @@
{
"vuid": "VUID-VkBufferMemoryBarrier-buffer-04089",
"text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>"
- },
+ }
+ ],
+ "!(VK_KHR_synchronization2)+!(VK_VERSION_1_1,VK_KHR_external_memory)": [
+ {
+ "vuid": "VUID-VkBufferMemoryBarrier-buffer-07913",
+ "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> <strong class=\"purple\">must</strong> both be <code>VK_QUEUE_FAMILY_IGNORED</code>"
+ }
+ ],
+ "!(VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory)": [
+ {
+ "vuid": "VUID-VkBufferMemoryBarrier-buffer-07914",
+ "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, at least one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>"
+ }
+ ],
+ "(VK_KHR_synchronization2)+!(VK_VERSION_1_1,VK_KHR_external_memory)": [
+ {
+ "vuid": "VUID-VkBufferMemoryBarrier-synchronization2-03852",
+ "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, and <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> both be <code>VK_QUEUE_FAMILY_IGNORED</code>"
+ }
+ ],
+ "(VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory)": [
{
"vuid": "VUID-VkBufferMemoryBarrier-synchronization2-03853",
"text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, and <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, at least one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>"
@@ -6477,10 +6689,40 @@
"text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
}
],
+ "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_ray_tracing)+!(VK_KHR_ray_tracing_pipeline)": [
+ {
+ "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-07945",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV</code>"
+ },
+ {
+ "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-07945",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV</code>"
+ }
+ ],
+ "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-VkImageMemoryBarrier2-rayTracingPipeline-07946",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-VkImageMemoryBarrier2-rayTracingPipeline-07946",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
+ "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-VkImageMemoryBarrier2-rayTracingPipeline-07947",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-VkImageMemoryBarrier2-rayTracingPipeline-07947",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
"(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)": [
{
"vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-07454",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
+ "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
},
{
"vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-07457",
@@ -6492,7 +6734,7 @@
},
{
"vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-07454",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code> or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
+ "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
},
{
"vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-07457",
@@ -6965,10 +7207,6 @@
{
"vuid": "VUID-VkImageMemoryBarrier-image-04069",
"text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be valid queue families"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-synchronization2-03856",
- "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, and <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> both be <code>VK_QUEUE_FAMILY_IGNORED</code>"
}
],
"(VK_VERSION_1_1,VK_KHR_external_memory)": [
@@ -6983,10 +7221,6 @@
{
"vuid": "VUID-VkImageMemoryBarrier-image-04072",
"text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-synchronization2-03857",
- "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, and <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, at least one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>"
}
],
"(VK_KHR_video_decode_queue)": [
@@ -7062,6 +7296,30 @@
"vuid": "VUID-VkImageMemoryBarrier-image-03320",
"text": " If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
}
+ ],
+ "!(VK_KHR_synchronization2)+!(VK_VERSION_1_1,VK_KHR_external_memory)": [
+ {
+ "vuid": "VUID-VkImageMemoryBarrier-image-07915",
+ "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> <strong class=\"purple\">must</strong> both be <code>VK_QUEUE_FAMILY_IGNORED</code>"
+ }
+ ],
+ "!(VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory)": [
+ {
+ "vuid": "VUID-VkImageMemoryBarrier-image-07916",
+ "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, at least one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>"
+ }
+ ],
+ "(VK_KHR_synchronization2)+!(VK_VERSION_1_1,VK_KHR_external_memory)": [
+ {
+ "vuid": "VUID-VkImageMemoryBarrier-synchronization2-03856",
+ "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, and <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> both be <code>VK_QUEUE_FAMILY_IGNORED</code>"
+ }
+ ],
+ "(VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory)": [
+ {
+ "vuid": "VUID-VkImageMemoryBarrier-synchronization2-03857",
+ "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, and <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, at least one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>"
+ }
]
},
"vkQueueWaitIdle": {
@@ -7176,7 +7434,7 @@
},
{
"vuid": "VUID-VkRenderingInfo-pDepthAttachment-06547",
- "text": " If <code>pDepthAttachment</code> is not <code>NULL</code> and <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pDepthAttachment-&gt;imageView</code> <strong class=\"purple\">must</strong> have been created with a format that includes a depth aspect"
+ "text": " If <code>pDepthAttachment</code> is not <code>NULL</code> and <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pDepthAttachment-&gt;imageView</code> <strong class=\"purple\">must</strong> have been created with a format that includes a depth component"
},
{
"vuid": "VUID-VkRenderingInfo-pDepthAttachment-06088",
@@ -7742,6 +8000,12 @@
"vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06160",
"text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have a <code>layerCount</code> equal to <code>1</code>"
}
+ ],
+ "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_multiview)": [
+ {
+ "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-apiVersion-07908",
+ "text": " If <a href=\"#VK_KHR_multiview\">VK_KHR_multiview</a> is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, and <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have a <code>layerCount</code> equal to <code>1</code>"
+ }
]
},
"vkCmdEndRendering": {
@@ -8032,7 +8296,7 @@
},
{
"vuid": "VUID-VkAttachmentDescription-format-06699",
- "text": " If <code>format</code> includes a color or depth aspect and <code>loadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>"
+ "text": " If <code>format</code> includes a color or depth component and <code>loadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>"
},
{
"vuid": "VUID-VkAttachmentDescription-finalLayout-00843",
@@ -8056,23 +8320,23 @@
},
{
"vuid": "VUID-VkAttachmentDescription-format-06700",
- "text": " If <code>format</code> includes a stencil aspect and <code>stencilLoadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>"
+ "text": " If <code>format</code> includes a stencil component and <code>stencilLoadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>"
},
{
"vuid": "VUID-VkAttachmentDescription-format-03292",
- "text": " If <code>format</code> is a depth/stencil format which includes only the stencil aspect, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
+ "text": " If <code>format</code> is a depth/stencil format which includes only the stencil component, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
},
{
"vuid": "VUID-VkAttachmentDescription-format-03293",
- "text": " If <code>format</code> is a depth/stencil format which includes only the stencil aspect, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
+ "text": " If <code>format</code> is a depth/stencil format which includes only the stencil component, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
},
{
"vuid": "VUID-VkAttachmentDescription-format-06242",
- "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil aspects, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
+ "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil components, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
},
{
"vuid": "VUID-VkAttachmentDescription-format-06243",
- "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil aspects, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
+ "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil components, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
},
{
"vuid": "VUID-VkAttachmentDescription-flags-parameter",
@@ -8140,19 +8404,19 @@
},
{
"vuid": "VUID-VkAttachmentDescription-format-06906",
- "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil aspects, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+ "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil components, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
},
{
"vuid": "VUID-VkAttachmentDescription-format-06907",
- "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil aspects, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+ "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil components, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
},
{
"vuid": "VUID-VkAttachmentDescription-format-03290",
- "text": " If <code>format</code> is a depth/stencil format which includes only the depth aspect, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+ "text": " If <code>format</code> is a depth/stencil format which includes only the depth component, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
},
{
"vuid": "VUID-VkAttachmentDescription-format-03291",
- "text": " If <code>format</code> is a depth/stencil format which includes only the depth aspect, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+ "text": " If <code>format</code> is a depth/stencil format which includes only the depth component, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
}
],
"(VK_KHR_synchronization2)": [
@@ -8609,6 +8873,36 @@
"text": " pname:dstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
}
],
+ "(VK_NV_ray_tracing)+!(VK_KHR_ray_tracing_pipeline)": [
+ {
+ "vuid": "VUID-VkSubpassDependency-srcStageMask-07948",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV</code>"
+ },
+ {
+ "vuid": "VUID-VkSubpassDependency-dstStageMask-07948",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV</code>"
+ }
+ ],
+ "(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-VkSubpassDependency-rayTracingPipeline-07949",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-VkSubpassDependency-rayTracingPipeline-07949",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
+ "(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-VkSubpassDependency-rayTracingPipeline-07950",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-VkSubpassDependency-rayTracingPipeline-07950",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
"(VK_VERSION_1_1,VK_KHR_multiview)": [
{
"vuid": "VUID-VkSubpassDependency-dependencyFlags-02520",
@@ -8796,15 +9090,15 @@
"(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
{
"vuid": "VUID-VkRenderPassCreateInfo2-attachment-06244",
- "text": " If the <code>attachment</code> member of the <code>pDepthStencilAttachment</code> member of an element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code>, the <code>layout</code> member of that same structure is either <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, and the <code>pNext</code> chain of that structure does not include a <a href=\"#VkAttachmentReferenceStencilLayout\">VkAttachmentReferenceStencilLayout</a> structure, then the element of <code>pAttachments</code> with an index equal to <code>attachment</code> <strong class=\"purple\">must</strong> not have a <code>format</code> that includes both depth and stencil aspects"
+ "text": " If the <code>attachment</code> member of the <code>pDepthStencilAttachment</code> member of an element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code>, the <code>layout</code> member of that same structure is either <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, and the <code>pNext</code> chain of that structure does not include a <a href=\"#VkAttachmentReferenceStencilLayout\">VkAttachmentReferenceStencilLayout</a> structure, then the element of <code>pAttachments</code> with an index equal to <code>attachment</code> <strong class=\"purple\">must</strong> not have a <code>format</code> that includes both depth and stencil components"
},
{
"vuid": "VUID-VkRenderPassCreateInfo2-attachment-06245",
- "text": " If the <code>attachment</code> member of the <code>pDepthStencilAttachment</code> member of an element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code> and the <code>layout</code> member of that same structure is either <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, then the element of <code>pAttachments</code> with an index equal to <code>attachment</code> <strong class=\"purple\">must</strong> have a <code>format</code> that includes only a stencil aspect"
+ "text": " If the <code>attachment</code> member of the <code>pDepthStencilAttachment</code> member of an element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code> and the <code>layout</code> member of that same structure is either <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, then the element of <code>pAttachments</code> with an index equal to <code>attachment</code> <strong class=\"purple\">must</strong> have a <code>format</code> that includes only a stencil component"
},
{
"vuid": "VUID-VkRenderPassCreateInfo2-attachment-06246",
- "text": " If the <code>attachment</code> member of the <code>pDepthStencilAttachment</code> member of an element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code> and the <code>layout</code> member of that same structure is either <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, then the element of <code>pAttachments</code> with an index equal to <code>attachment</code> <strong class=\"purple\">must</strong> not have a <code>format</code> that includes only a stencil aspect"
+ "text": " If the <code>attachment</code> member of the <code>pDepthStencilAttachment</code> member of an element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code> and the <code>layout</code> member of that same structure is either <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, then the element of <code>pAttachments</code> with an index equal to <code>attachment</code> <strong class=\"purple\">must</strong> not have a <code>format</code> that includes only a stencil component"
}
]
},
@@ -8816,7 +9110,7 @@
},
{
"vuid": "VUID-VkAttachmentDescription2-format-06699",
- "text": " If <code>format</code> includes a color or depth aspect and <code>loadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>"
+ "text": " If <code>format</code> includes a color or depth component and <code>loadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>"
},
{
"vuid": "VUID-VkAttachmentDescription2-finalLayout-00843",
@@ -8916,43 +9210,43 @@
},
{
"vuid": "VUID-VkAttachmentDescription2-format-06906",
- "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil aspects, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+ "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil components, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
},
{
"vuid": "VUID-VkAttachmentDescription2-format-06907",
- "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil aspects, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+ "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil components, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
},
{
"vuid": "VUID-VkAttachmentDescription2-format-03290",
- "text": " If <code>format</code> is a depth/stencil format which includes only the depth aspect, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+ "text": " If <code>format</code> is a depth/stencil format which includes only the depth component, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
},
{
"vuid": "VUID-VkAttachmentDescription2-format-03291",
- "text": " If <code>format</code> is a depth/stencil format which includes only the depth aspect, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
+ "text": " If <code>format</code> is a depth/stencil format which includes only the depth component, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
},
{
"vuid": "VUID-VkAttachmentDescription2-pNext-06704",
- "text": " If the <code>pNext</code> chain does not include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure, <code>format</code> includes a stencil aspect, and <code>stencilLoadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>"
+ "text": " If the <code>pNext</code> chain does not include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure, <code>format</code> includes a stencil component, and <code>stencilLoadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>"
},
{
"vuid": "VUID-VkAttachmentDescription2-pNext-06705",
- "text": " If the <code>pNext</code> chain does includes a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure, <code>format</code> includes a stencil aspect, and <code>stencilLoadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a>::<code>stencilInitialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>"
+ "text": " If the <code>pNext</code> chain does includes a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure, <code>format</code> includes a stencil component, and <code>stencilLoadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a>::<code>stencilInitialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>"
},
{
"vuid": "VUID-VkAttachmentDescription2-format-06249",
- "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil aspects, and <code>initialLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure"
+ "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil components, and <code>initialLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure"
},
{
"vuid": "VUID-VkAttachmentDescription2-format-06250",
- "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil aspects, and <code>finalLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure"
+ "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil components, and <code>finalLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure"
},
{
"vuid": "VUID-VkAttachmentDescription2-format-06247",
- "text": " If the <code>pNext</code> chain does not include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure and <code>format</code> only includes a stencil aspect, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
+ "text": " If the <code>pNext</code> chain does not include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure and <code>format</code> only includes a stencil component, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
},
{
"vuid": "VUID-VkAttachmentDescription2-format-06248",
- "text": " If the <code>pNext</code> chain does not include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure and <code>format</code> only includes a stencil aspect, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
+ "text": " If the <code>pNext</code> chain does not include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure and <code>format</code> only includes a stencil component, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
}
],
"(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_synchronization2)": [
@@ -8978,7 +9272,7 @@
"(VK_VERSION_1_2,VK_KHR_create_renderpass2)+!(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
{
"vuid": "VUID-VkAttachmentDescription2-format-06703",
- "text": " If <code>format</code> includes a stencil aspect and <code>stencilLoadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>"
+ "text": " If <code>format</code> includes a stencil component and <code>stencilLoadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>"
}
]
},
@@ -9646,6 +9940,36 @@
"vuid": "VUID-VkSubpassDependency2-dstStageMask-04996",
"text": " pname:dstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
}
+ ],
+ "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NV_ray_tracing)+!(VK_KHR_ray_tracing_pipeline)": [
+ {
+ "vuid": "VUID-VkSubpassDependency2-srcStageMask-07948",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV</code>"
+ },
+ {
+ "vuid": "VUID-VkSubpassDependency2-dstStageMask-07948",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV</code>"
+ }
+ ],
+ "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-VkSubpassDependency2-rayTracingPipeline-07949",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-VkSubpassDependency2-rayTracingPipeline-07949",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
+ "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-VkSubpassDependency2-rayTracingPipeline-07950",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-VkSubpassDependency2-rayTracingPipeline-07950",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
]
},
"vkDestroyRenderPass": {
@@ -9860,7 +10184,7 @@
},
{
"vuid": "VUID-VkFramebufferCreateInfo-renderPass-02747",
- "text": " If <code>renderPass</code> was not specified with non-zero view masks, each element of <code>pAttachments</code> that is referenced by <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> equal to <code>1</code>"
+ "text": " If <code>renderPass</code> was specified with all view masks equal to zero, each element of <code>pAttachments</code> that is referenced by <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> equal to <code>1</code>"
}
],
"(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_1,VK_KHR_multiview)": [
@@ -11003,6 +11327,10 @@
],
"(VK_NV_glsl_shader)": [
{
+ "vuid": "VUID-VkShaderModuleCreateInfo-pCode-07912",
+ "text": " If the <a href=\"#VK_NV_glsl_shader\">VK_NV_glsl_shader</a> extension is not enabled, <code>pCode</code> <strong class=\"purple\">must</strong> be a pointer to SPIR-V code"
+ },
+ {
"vuid": "VUID-VkShaderModuleCreateInfo-pCode-01376",
"text": " If <code>pCode</code> is a pointer to SPIR-V code, <code>codeSize</code> <strong class=\"purple\">must</strong> be a multiple of 4"
},
@@ -11655,7 +11983,7 @@
"text": " If <code>flags</code> has the <code>VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT</code> flag set and <code>flags</code> does not have the <code>VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT</code> flag set and no <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a> structure is included in the <code>pNext</code> chain, the local workgroup size in the X dimension of the pipeline <strong class=\"purple\">must</strong> be a multiple of <a href=\"#limits-subgroup-size\"><code>subgroupSize</code></a>"
}
],
- "!(VK_EXT_graphics_pipeline_library+VK_EXT_shader_module_identifier)": [
+ "!(VK_EXT_graphics_pipeline_library,VK_EXT_shader_module_identifier)": [
{
"vuid": "VUID-VkPipelineShaderStageCreateInfo-module-06716",
"text": " <code>module</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderModule\">VkShaderModule</a>"
@@ -12022,7 +12350,7 @@
},
{
"vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-00758",
- "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface 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>"
+ "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>rasterizationSamples</code> is not dynamic, 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-renderPass-06046",
@@ -12327,18 +12655,6 @@
{
"vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07612",
"text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> or <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_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> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> is used, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07613",
- "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface 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>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state is set, 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> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> is used, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07614",
- "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface 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>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state is set, 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> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> is used, <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> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07615",
- "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> or <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface 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>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state is set, 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> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> is used, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
}
],
"(VK_EXT_sample_locations)": [
@@ -12350,33 +12666,33 @@
"(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-VkGraphicsPipelineCreateInfo-multisampledRenderToSingleSampled-06853",
- "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature 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=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, <code>rasterizationSamples</code> is not dynamic, 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-renderPass-06854",
- "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code><a href=\"#VK_EXT_multisampled_render_to_single_sampled\">VK_EXT_multisampled_render_to_single_sampled</a></code> extension is enabled, and <code>subpass</code> has a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure included in the <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a>::<code>pNext</code> chain with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
+ "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code><a href=\"#VK_EXT_multisampled_render_to_single_sampled\">VK_EXT_multisampled_render_to_single_sampled</a></code> extension is enabled, <code>rasterizationSamples</code> is not dynamic, and <code>subpass</code> has a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure included in the <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a>::<code>pNext</code> chain with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
}
],
"(VK_AMD_mixed_attachment_samples)": [
{
"vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01505",
- "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface 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"
+ "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, and the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension is enabled, <code>rasterizationSamples</code> is not dynamic, 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 pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface 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"
+ "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, <code>rasterizationSamples</code> is not dynamic, 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 pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface 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"
+ "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, <code>rasterizationSamples</code> is not dynamic, 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 pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface 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>"
+ "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, the <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, and <code>rasterizationSamples</code> is not dynamic, 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)": [
@@ -12459,6 +12775,10 @@
{
"vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02097",
"text": " If the pipeline is being created with <a href=\"#pipelines-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-Input-07904",
+ "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a>, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> contain a location in <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a>::<code>location</code>"
}
],
"(VK_EXT_vertex_input_dynamic_state)": [
@@ -12467,6 +12787,10 @@
"text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a>, and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> is not set, <code>pVertexInputState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineVertexInputStateCreateInfo\">VkPipelineVertexInputStateCreateInfo</a> structure"
},
{
+ "vuid": "VUID-VkGraphicsPipelineCreateInfo-Input-07905",
+ "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a>, and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> is not set, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> contain a location in <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a>::<code>location</code>"
+ },
+ {
"vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04807",
"text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and the <a href=\"#features-vertexInputDynamicState\"><code>vertexInputDynamicState</code></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>"
}
@@ -12760,7 +13084,7 @@
"(VK_QCOM_render_pass_shader_resolve)": [
{
"vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizationSamples-04899",
- "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <code><a href=\"#VK_QCOM_render_pass_shader_resolve\">VK_QCOM_render_pass_shader_resolve</a></code> extension is enabled, and if subpass has any input attachments, and if the subpass description contains <code>VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM</code>, then the sample count of the input attachments <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code>"
+ "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <code><a href=\"#VK_QCOM_render_pass_shader_resolve\">VK_QCOM_render_pass_shader_resolve</a></code> extension is enabled, <code>rasterizationSamples</code> is not dynamic, and if subpass has any input attachments, and if the subpass description contains <code>VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM</code>, then the sample count of the input attachments <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code>"
},
{
"vuid": "VUID-VkGraphicsPipelineCreateInfo-sampleShadingEnable-04900",
@@ -12824,11 +13148,11 @@
},
{
"vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06587",
- "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format that includes a depth aspect"
+ "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format that includes a depth component"
},
{
"vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06588",
- "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format that includes a stencil aspect"
+ "text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format that includes a stencil component"
},
{
"vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06589",
@@ -12845,10 +13169,6 @@
{
"vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06055",
"text": " If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>pColorBlendState-&gt;attachmentCount</code> <strong class=\"purple\">must</strong> be equal to <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06056",
- "text": " If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> the fragment shader <strong class=\"purple\">must</strong> not read from any input attachment"
}
],
"(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+!(VK_NV_linear_color_attachment)": [
@@ -13248,7 +13568,7 @@
},
{
"vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07731",
- "text": " If the pipeline is being created with <a href=\"#pipelines-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</code>, and if <a href=\"#features-multiview-per-view-viewports\">multiviewPerViewViewports</a> is enabled, then the index of the most significant bit in each element of <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a>::<code>pViewMasks</code> <strong class=\"purple\">must</strong> be less than <code>pViewportState</code>::<code>scissorCount</code>"
+ "text": " If the pipeline is being created with <a href=\"#pipelines-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</code>, and if <a href=\"#features-multiview-per-view-viewports\">multiviewPerViewViewports</a> is enabled, then the index of the most significant bit in each element of <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a>::<code>pViewMasks</code> <strong class=\"purple\">must</strong> be less than <code>pViewportState</code>::<code>scissorCount</code>"
}
]
},
@@ -14571,12 +14891,6 @@
"text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI</code>, <code>pipeline</code> <strong class=\"purple\">must</strong> be a subpass shading pipeline"
}
],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_multisampled_render_to_single_sampled)": [
- {
- "vuid": "VUID-vkCmdBindPipeline-pipeline-06856",
- "text": " If <code>pipeline</code> is a graphics pipeline, this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pMultisampleState</code>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
- }
- ],
"(VK_EXT_graphics_pipeline_library)": [
{
"vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-06653",
@@ -14999,28 +15313,32 @@
]
},
"VkMemoryAllocateInfo": {
- "core": [
+ "!(VK_KHR_external_memory_win32,VK_KHR_external_memory_fd,VK_EXT_external_memory_host,VK_ANDROID_external_memory_android_hardware_buffer,VK_FUCHSIA_external_memory)": [
+ {
+ "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-00638",
+ "text": " <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+ }
+ ],
+ "(VK_KHR_external_memory_win32,VK_KHR_external_memory_fd,VK_EXT_external_memory_host,VK_ANDROID_external_memory_android_hardware_buffer,VK_FUCHSIA_external_memory)": [
{
"vuid": "VUID-VkMemoryAllocateInfo-None-06657",
"text": " The parameters <strong class=\"purple\">must</strong> not define more than one <a href=\"#memory-import-operation\">import operation</a>"
},
{
- "vuid": "VUID-VkMemoryAllocateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-pNext-pNext",
- "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a>, <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>, <a href=\"#VkExportMemoryAllocateInfoNV\">VkExportMemoryAllocateInfoNV</a>, <a href=\"#VkExportMemoryWin32HandleInfoKHR\">VkExportMemoryWin32HandleInfoKHR</a>, <a href=\"#VkExportMemoryWin32HandleInfoNV\">VkExportMemoryWin32HandleInfoNV</a>, <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>, <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a>, <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a>, <a href=\"#VkImportMemoryFdInfoKHR\">VkImportMemoryFdInfoKHR</a>, <a href=\"#VkImportMemoryHostPointerInfoEXT\">VkImportMemoryHostPointerInfoEXT</a>, <a href=\"#VkImportMemoryWin32HandleInfoKHR\">VkImportMemoryWin32HandleInfoKHR</a>, <a href=\"#VkImportMemoryWin32HandleInfoNV\">VkImportMemoryWin32HandleInfoNV</a>, <a href=\"#VkImportMemoryZirconHandleInfoFUCHSIA\">VkImportMemoryZirconHandleInfoFUCHSIA</a>, <a href=\"#VkImportMetalBufferInfoEXT\">VkImportMetalBufferInfoEXT</a>, <a href=\"#VkMemoryAllocateFlagsInfo\">VkMemoryAllocateFlagsInfo</a>, <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>, <a href=\"#VkMemoryOpaqueCaptureAddressAllocateInfo\">VkMemoryOpaqueCaptureAddressAllocateInfo</a>, or <a href=\"#VkMemoryPriorityAllocateInfoEXT\">VkMemoryPriorityAllocateInfoEXT</a>"
- },
+ "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-07897",
+ "text": " If the parameters do not define an <a href=\"#memory-import-operation\">import or export operation</a>, <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+ }
+ ],
+ "(VK_KHR_external_memory_win32,VK_KHR_external_memory_fd,VK_EXT_external_memory_host,VK_ANDROID_external_memory_android_hardware_buffer,VK_FUCHSIA_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [
{
- "vuid": "VUID-VkMemoryAllocateInfo-sType-unique",
- "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>"
+ "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-07898",
+ "text": " If the parameters define an export operation, <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
}
],
- "!(VK_ANDROID_external_memory_android_hardware_buffer)": [
+ "(VK_KHR_external_memory_win32,VK_KHR_external_memory_fd,VK_EXT_external_memory_host,VK_ANDROID_external_memory_android_hardware_buffer,VK_FUCHSIA_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
{
- "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-00638",
- "text": " <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+ "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-07899",
+ "text": " If the parameters define an export operation and the handle type is not <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
}
],
"(VK_FUCHSIA_buffer_collection)": [
@@ -15148,7 +15466,15 @@
},
{
"vuid": "VUID-VkMemoryAllocateInfo-pNext-01874",
- "text": " If the parameters do not define an import operation, and the <code>pNext</code> chain includes a <code>VkExportMemoryAllocateInfo</code> structure with <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> included in its <code>handleTypes</code> member, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with <code>image</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>allocationSize</code> <strong class=\"purple\">must</strong> be <code>0</code>, otherwise <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+ "text": " If the parameters do not define an import operation, and the <code>pNext</code> chain includes a <code>VkExportMemoryAllocateInfo</code> structure with <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> included in its <code>handleTypes</code> member, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with <code>image</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>allocationSize</code> <strong class=\"purple\">must</strong> be <code>0</code>"
+ },
+ {
+ "vuid": "VUID-VkMemoryAllocateInfo-pNext-07900",
+ "text": " If the parameters define an export operation, the handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, and the <code>pNext</code> does not include a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure, <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+ },
+ {
+ "vuid": "VUID-VkMemoryAllocateInfo-pNext-07901",
+ "text": " If the parameters define an export operation, the handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with <code>buffer</code> set to a valid <a href=\"#VkBuffer\">VkBuffer</a> object, <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
},
{
"vuid": "VUID-VkMemoryAllocateInfo-pNext-02386",
@@ -15205,8 +15531,12 @@
"text": " If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>, the value of <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be an index identifying a memory type from the <code>memoryTypeBits</code> field of the <a href=\"#VkMemoryZirconHandlePropertiesFUCHSIA\">VkMemoryZirconHandlePropertiesFUCHSIA</a> structure populated by a call to <a href=\"#vkGetMemoryZirconHandlePropertiesFUCHSIA\">vkGetMemoryZirconHandlePropertiesFUCHSIA</a>"
},
{
- "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-04750",
- "text": " If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>, the value of <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code> and <strong class=\"purple\">must</strong> be less than or equal to the size of the VMO as determined by <code>zx_vmo_get_size</code>(<code>handle</code>) where <code>handle</code> is the VMO handle to the imported external memory"
+ "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-07902",
+ "text": " If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>, the value of <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+ },
+ {
+ "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-07903",
+ "text": " If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>, the value of <code>allocationSize</code> <strong class=\"purple\">must</strong> be less than or equal to the size of the VMO as determined by <code>zx_vmo_get_size</code>(<code>handle</code>) where <code>handle</code> is the VMO handle to the imported external memory"
}
],
"(VK_EXT_metal_objects)": [
@@ -15214,6 +15544,20 @@
"vuid": "VUID-VkMemoryAllocateInfo-pNext-06780",
"text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure, its <code>exportObjectType</code> member <strong class=\"purple\">must</strong> be <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT</code>"
}
+ ],
+ "core": [
+ {
+ "vuid": "VUID-VkMemoryAllocateInfo-sType-sType",
+ "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO</code>"
+ },
+ {
+ "vuid": "VUID-VkMemoryAllocateInfo-pNext-pNext",
+ "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a>, <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>, <a href=\"#VkExportMemoryAllocateInfoNV\">VkExportMemoryAllocateInfoNV</a>, <a href=\"#VkExportMemoryWin32HandleInfoKHR\">VkExportMemoryWin32HandleInfoKHR</a>, <a href=\"#VkExportMemoryWin32HandleInfoNV\">VkExportMemoryWin32HandleInfoNV</a>, <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>, <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a>, <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a>, <a href=\"#VkImportMemoryFdInfoKHR\">VkImportMemoryFdInfoKHR</a>, <a href=\"#VkImportMemoryHostPointerInfoEXT\">VkImportMemoryHostPointerInfoEXT</a>, <a href=\"#VkImportMemoryWin32HandleInfoKHR\">VkImportMemoryWin32HandleInfoKHR</a>, <a href=\"#VkImportMemoryWin32HandleInfoNV\">VkImportMemoryWin32HandleInfoNV</a>, <a href=\"#VkImportMemoryZirconHandleInfoFUCHSIA\">VkImportMemoryZirconHandleInfoFUCHSIA</a>, <a href=\"#VkImportMetalBufferInfoEXT\">VkImportMetalBufferInfoEXT</a>, <a href=\"#VkMemoryAllocateFlagsInfo\">VkMemoryAllocateFlagsInfo</a>, <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>, <a href=\"#VkMemoryOpaqueCaptureAddressAllocateInfo\">VkMemoryOpaqueCaptureAddressAllocateInfo</a>, or <a href=\"#VkMemoryPriorityAllocateInfoEXT\">VkMemoryPriorityAllocateInfoEXT</a>"
+ },
+ {
+ "vuid": "VUID-VkMemoryAllocateInfo-sType-unique",
+ "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>"
+ }
]
},
"VkMemoryDedicatedAllocateInfo": {
@@ -18605,6 +18949,10 @@
"text": " <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>imageType</code> equal to <code>VK_IMAGE_TYPE_3D</code>"
},
{
+ "vuid": "VUID-VkImageViewSlicedCreateInfoEXT-viewType-07909",
+ "text": " <code>viewType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_VIEW_TYPE_3D</code>"
+ },
+ {
"vuid": "VUID-VkImageViewSlicedCreateInfoEXT-None-07870",
"text": " The image view <strong class=\"purple\">must</strong> reference exactly 1 mip level"
},
@@ -20049,6 +20397,12 @@
"text": " If <code>buffer</code> was not created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated dedicated for a specific buffer or image"
}
],
+ "(VK_NV_dedicated_allocation)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
+ {
+ "vuid": "VUID-vkBindBufferMemory-apiVersion-07920",
+ "text": " If the <a href=\"#VK_KHR_dedicated_allocation\">VK_KHR_dedicated_allocation</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, and <code>buffer</code> was not created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated dedicated for a specific buffer or image"
+ }
+ ],
"(VK_VERSION_1_1,VK_KHR_external_memory)": [
{
"vuid": "VUID-vkBindBufferMemory-memory-02726",
@@ -20189,6 +20543,12 @@
"text": " If <code>buffer</code> was not created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated dedicated for a specific buffer or image"
}
],
+ "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
+ {
+ "vuid": "VUID-VkBindBufferMemoryInfo-apiVersion-07920",
+ "text": " If the <a href=\"#VK_KHR_dedicated_allocation\">VK_KHR_dedicated_allocation</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, and <code>buffer</code> was not created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated dedicated for a specific buffer or image"
+ }
+ ],
"(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)": [
{
"vuid": "VUID-VkBindBufferMemoryInfo-memory-02726",
@@ -20347,6 +20707,12 @@
"text": " If <code>image</code> was not created with <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated dedicated for a specific buffer or image"
}
],
+ "(VK_NV_dedicated_allocation)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
+ {
+ "vuid": "VUID-vkBindImageMemory-apiVersion-07921",
+ "text": " If the <a href=\"#VK_KHR_dedicated_allocation\">VK_KHR_dedicated_allocation</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, and <code>image</code> was not created with <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated dedicated for a specific buffer or image"
+ }
+ ],
"(VK_VERSION_1_1,VK_KHR_external_memory)": [
{
"vuid": "VUID-vkBindImageMemory-memory-02728",
@@ -20493,6 +20859,12 @@
"text": " If <code>image</code> was not created with <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated dedicated for a specific buffer or image"
}
],
+ "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
+ {
+ "vuid": "VUID-VkBindImageMemoryInfo-apiVersion-07921",
+ "text": " If the <a href=\"#VK_KHR_dedicated_allocation\">VK_KHR_dedicated_allocation</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, and <code>image</code> was not created with <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated dedicated for a specific buffer or image"
+ }
+ ],
"(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)": [
{
"vuid": "VUID-VkBindImageMemoryInfo-memory-02728",
@@ -20675,10 +21047,16 @@
"text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
}
],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)+(VK_EXT_swapchain_maintenance1)": [
+ "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)+(VK_EXT_swapchain_maintenance1)+(VK_VERSION_1_1,VK_KHR_device_group)": [
{
"vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-swapchain-07756",
- "text": " If the <code>swapchain</code> has been created with <code>VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT</code>, <code>imageIndex</code> <strong class=\"purple\">must</strong> be one that has previously been returned by <a href=\"#vkAcquireNextImageKHR\">vkAcquireNextImageKHR</a> ifdef::VK_VERSION_1_1,VK_KHR_device_group[or <a href=\"#vkAcquireNextImage2KHR\">vkAcquireNextImage2KHR</a>]"
+ "text": " If the <code>swapchain</code> has been created with <code>VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT</code>, <code>imageIndex</code> <strong class=\"purple\">must</strong> be one that has previously been returned by <a href=\"#vkAcquireNextImageKHR\">vkAcquireNextImageKHR</a> or <a href=\"#vkAcquireNextImage2KHR\">vkAcquireNextImage2KHR</a>"
+ }
+ ],
+ "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)+(VK_EXT_swapchain_maintenance1)+!(VK_VERSION_1_1,VK_KHR_device_group)": [
+ {
+ "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-swapchain-07910",
+ "text": " If the <code>swapchain</code> has been created with <code>VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT</code>, <code>imageIndex</code> <strong class=\"purple\">must</strong> be one that has previously been returned by <a href=\"#vkAcquireNextImageKHR\">vkAcquireNextImageKHR</a>"
}
]
},
@@ -21203,6 +21581,10 @@
{
"vuid": "VUID-VkSamplerCreateInfo-magFilter-01422",
"text": " If either <code>magFilter</code> or <code>minFilter</code> is <code>VK_FILTER_CUBIC_EXT</code>, the <code>reductionMode</code> member of <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a> <strong class=\"purple\">must</strong> be <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE</code>"
+ },
+ {
+ "vuid": "VUID-VkSamplerCreateInfo-magFilter-07911",
+ "text": " If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and either <code>magFilter</code> or <code>minFilter</code> is <code>VK_FILTER_CUBIC_EXT</code>, the <code>reductionMode</code> member of <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a> <strong class=\"purple\">must</strong> be <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE</code>"
}
],
"(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)": [
@@ -21772,7 +22154,7 @@
"(VK_VERSION_1_3,VK_EXT_inline_uniform_block)+(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-08004",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT</code> and <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a>::<code>flags</code> does not contain <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code> then <code>descriptorCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockPropertiesEXT</code>::<code>maxInlineUniformBlockSize</code>"
+ "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> and <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a>::<code>flags</code> does not contain <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code> then <code>descriptorCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockPropertiesEXT</code>::<code>maxInlineUniformBlockSize</code>"
},
{
"vuid": "VUID-VkDescriptorSetLayoutBinding-flags-08005",
@@ -22077,12 +22459,6 @@
"text": " The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockProperties</code>::<code>maxDescriptorSetInlineUniformBlocks</code>"
}
],
- "!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VERSION_1_3)": [
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-06531",
- "text": " The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceVulkan13Properties</code>::<code>maxInlineUniformTotalSize</code>"
- }
- ],
"(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
{
"vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03016",
@@ -22223,6 +22599,12 @@
"text": " The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockProperties</code>::<code>maxDescriptorSetUpdateAfterBindInlineUniformBlocks</code>"
}
],
+ "(VK_VERSION_1_3)": [
+ {
+ "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-06531",
+ "text": " The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceVulkan13Properties</code>::<code>maxInlineUniformTotalSize</code>"
+ }
+ ],
"(VK_KHR_push_descriptor)": [
{
"vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00293",
@@ -22495,6 +22877,16 @@
]
},
"VkDescriptorSetAllocateInfo": {
+ "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
+ {
+ "vuid": "VUID-VkDescriptorSetAllocateInfo-apiVersion-07895",
+ "text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, <code>descriptorSetCount</code> <strong class=\"purple\">must</strong> not be greater than the number of sets that are currently available for allocation in <code>descriptorPool</code>"
+ },
+ {
+ "vuid": "VUID-VkDescriptorSetAllocateInfo-apiVersion-07896",
+ "text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, <code>descriptorPool</code> <strong class=\"purple\">must</strong> have enough free descriptor capacity remaining to allocate the descriptor sets of the specified layouts"
+ }
+ ],
"!(VK_VERSION_1_1,VK_KHR_maintenance1)": [
{
"vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-00306",
@@ -24778,15 +25170,15 @@
}
]
},
- "ClusterIdHUAWEI": {
+ "ClusterIDHUAWEI": {
"(VK_HUAWEI_cluster_culling_shader)": [
{
- "vuid": "VUID-ClusterIdHUAWEI-ClusterIdHUAWEI-07797",
- "text": " The <code>ClusterIdHUAWEI</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>ClusterCullingHUAWEI</code> {ExecutionModel}"
+ "vuid": "VUID-ClusterIDHUAWEI-ClusterIDHUAWEI-07797",
+ "text": " The <code>ClusterIDHUAWEI</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>ClusterCullingHUAWEI</code> {ExecutionModel}"
},
{
- "vuid": "VUID-ClusterIdHUAWEI-ClusterIdHUAWEI-07798",
- "text": " The variable decorated with <code>ClusterIdHUAWEI</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
+ "vuid": "VUID-ClusterIDHUAWEI-ClusterIDHUAWEI-07798",
+ "text": " The variable decorated with <code>ClusterIDHUAWEI</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
}
]
},
@@ -26444,7 +26836,7 @@
},
{
"vuid": "VUID-VkQueryPoolCreateInfo-pNext-pNext",
- "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkQueryPoolPerformanceCreateInfoKHR\">VkQueryPoolPerformanceCreateInfoKHR</a>, <a href=\"#VkQueryPoolPerformanceQueryCreateInfoINTEL\">VkQueryPoolPerformanceQueryCreateInfoINTEL</a>, <a href=\"#VkVideoDecodeH264ProfileInfoKHR\">VkVideoDecodeH264ProfileInfoKHR</a>, <a href=\"#VkVideoDecodeH265ProfileInfoKHR\">VkVideoDecodeH265ProfileInfoKHR</a>, <a href=\"#VkVideoDecodeUsageInfoKHR\">VkVideoDecodeUsageInfoKHR</a>, <a href=\"#VkVideoEncodeH264ProfileInfoEXT\">VkVideoEncodeH264ProfileInfoEXT</a>, <a href=\"#VkVideoEncodeH265ProfileInfoEXT\">VkVideoEncodeH265ProfileInfoEXT</a>, <a href=\"#VkVideoEncodeUsageInfoKHR\">VkVideoEncodeUsageInfoKHR</a>, or <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a>"
+ "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkQueryPoolPerformanceCreateInfoKHR\">VkQueryPoolPerformanceCreateInfoKHR</a>, <a href=\"#VkQueryPoolPerformanceQueryCreateInfoINTEL\">VkQueryPoolPerformanceQueryCreateInfoINTEL</a>, <a href=\"#VkQueryPoolVideoEncodeFeedbackCreateInfoKHR\">VkQueryPoolVideoEncodeFeedbackCreateInfoKHR</a>, <a href=\"#VkVideoDecodeH264ProfileInfoKHR\">VkVideoDecodeH264ProfileInfoKHR</a>, <a href=\"#VkVideoDecodeH265ProfileInfoKHR\">VkVideoDecodeH265ProfileInfoKHR</a>, <a href=\"#VkVideoDecodeUsageInfoKHR\">VkVideoDecodeUsageInfoKHR</a>, <a href=\"#VkVideoEncodeH264ProfileInfoEXT\">VkVideoEncodeH264ProfileInfoEXT</a>, <a href=\"#VkVideoEncodeH265ProfileInfoEXT\">VkVideoEncodeH265ProfileInfoEXT</a>, <a href=\"#VkVideoEncodeUsageInfoKHR\">VkVideoEncodeUsageInfoKHR</a>, or <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a>"
},
{
"vuid": "VUID-VkQueryPoolCreateInfo-sType-unique",
@@ -26478,7 +26870,15 @@
"(VK_KHR_video_encode_queue)": [
{
"vuid": "VUID-VkQueryPoolCreateInfo-queryType-07133",
- "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure with <code>videoCodecOperation</code> specifying an encode operation"
+ "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure with <code>videoCodecOperation</code> specifying an encode operation"
+ },
+ {
+ "vuid": "VUID-VkQueryPoolCreateInfo-queryType-07906",
+ "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkQueryPoolVideoEncodeFeedbackCreateInfoKHR\">VkQueryPoolVideoEncodeFeedbackCreateInfoKHR</a> structure"
+ },
+ {
+ "vuid": "VUID-VkQueryPoolCreateInfo-queryType-07907",
+ "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR</code>, and the <code>pNext</code> chain includes a <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure and a <a href=\"#VkQueryPoolVideoEncodeFeedbackCreateInfoKHR\">VkQueryPoolVideoEncodeFeedbackCreateInfoKHR</a> structure, then <a href=\"#VkQueryPoolVideoEncodeFeedbackCreateInfoKHR\">VkQueryPoolVideoEncodeFeedbackCreateInfoKHR</a>::<code>encodeFeedbackFlags</code> <strong class=\"purple\">must</strong> not contain any bits that are not set in <a href=\"#VkVideoEncodeCapabilitiesKHR\">VkVideoEncodeCapabilitiesKHR</a>::<code>supportedEncodeFeedbackFlags</code>, as returned by <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a> for the <a href=\"#video-profiles\">video profile</a> described by <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> and its <code>pNext</code> chain"
}
]
},
@@ -26750,21 +27150,21 @@
"(VK_KHR_video_encode_queue)": [
{
"vuid": "VUID-vkCmdBeginQuery-queryType-04862",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR</code>, then the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support <a href=\"#video-encode-operations\">video encode operations</a>"
+ "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR</code>, then the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support <a href=\"#video-encode-operations\">video encode operations</a>"
},
{
"vuid": "VUID-vkCmdBeginQuery-queryType-07129",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR</code>, then there <strong class=\"purple\">must</strong> be a bound video session"
+ "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR</code>, then there <strong class=\"purple\">must</strong> be a bound video session"
},
{
"vuid": "VUID-vkCmdBeginQuery-queryType-07130",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR</code> and there is a bound video session, then <code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure included in the <code>pNext</code> chain of <a href=\"#VkQueryPoolCreateInfo\">VkQueryPoolCreateInfo</a> identical to the one specified in <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>pVideoProfile</code> the bound video session was created with"
+ "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR</code> and there is a bound video session, then <code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure included in the <code>pNext</code> chain of <a href=\"#VkQueryPoolCreateInfo\">VkQueryPoolCreateInfo</a> identical to the one specified in <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>pVideoProfile</code> the bound video session was created with"
}
],
"(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)": [
{
"vuid": "VUID-vkCmdBeginQuery-queryType-07131",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code> or <code>VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR</code>, then there <strong class=\"purple\">must</strong> be no bound video session"
+ "text": " If the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code> or <code>VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR</code>, then there <strong class=\"purple\">must</strong> be no bound video session"
}
],
"(VK_KHR_video_queue)+!(VK_KHR_video_encode_queue)": [
@@ -26948,21 +27348,21 @@
"(VK_EXT_transform_feedback)+(VK_KHR_video_encode_queue)": [
{
"vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-04862",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR</code>, then the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support <a href=\"#video-encode-operations\">video encode operations</a>"
+ "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR</code>, then the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support <a href=\"#video-encode-operations\">video encode operations</a>"
},
{
"vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-07129",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR</code>, then there <strong class=\"purple\">must</strong> be a bound video session"
+ "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR</code>, then there <strong class=\"purple\">must</strong> be a bound video session"
},
{
"vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-07130",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR</code> and there is a bound video session, then <code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure included in the <code>pNext</code> chain of <a href=\"#VkQueryPoolCreateInfo\">VkQueryPoolCreateInfo</a> identical to the one specified in <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>pVideoProfile</code> the bound video session was created with"
+ "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR</code> and there is a bound video session, then <code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure included in the <code>pNext</code> chain of <a href=\"#VkQueryPoolCreateInfo\">VkQueryPoolCreateInfo</a> identical to the one specified in <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>pVideoProfile</code> the bound video session was created with"
}
],
"(VK_EXT_transform_feedback)+(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)": [
{
"vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-07131",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code> or <code>VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR</code>, then there <strong class=\"purple\">must</strong> be no bound video session"
+ "text": " If the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code> or <code>VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR</code>, then there <strong class=\"purple\">must</strong> be no bound video session"
}
],
"(VK_EXT_transform_feedback)+(VK_KHR_video_queue)+!(VK_KHR_video_encode_queue)": [
@@ -27495,6 +27895,24 @@
"text": " If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
}
],
+ "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_ray_tracing)+!(VK_KHR_ray_tracing_pipeline)": [
+ {
+ "vuid": "VUID-vkCmdWriteTimestamp2-stage-07945",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV</code>"
+ }
+ ],
+ "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-vkCmdWriteTimestamp2-rayTracingPipeline-07946",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
+ "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-vkCmdWriteTimestamp2-rayTracingPipeline-07947",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
"(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_multiview)": [
{
"vuid": "VUID-vkCmdWriteTimestamp2-None-03864",
@@ -27619,6 +28037,24 @@
"text": " <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_NONE</code>"
}
],
+ "(VK_NV_ray_tracing)+!(VK_KHR_ray_tracing_pipeline)": [
+ {
+ "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-07942",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV</code>"
+ }
+ ],
+ "(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-vkCmdWriteTimestamp-rayTracingPipeline-07943",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
+ "(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-vkCmdWriteTimestamp-rayTracingPipeline-07944",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
"(VK_VERSION_1_1,VK_KHR_multiview)": [
{
"vuid": "VUID-vkCmdWriteTimestamp-None-00830",
@@ -27930,6 +28366,22 @@
}
]
},
+ "VkQueryPoolVideoEncodeFeedbackCreateInfoKHR": {
+ "(VK_KHR_video_encode_queue)": [
+ {
+ "vuid": "VUID-VkQueryPoolVideoEncodeFeedbackCreateInfoKHR-sType-sType",
+ "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR</code>"
+ },
+ {
+ "vuid": "VUID-VkQueryPoolVideoEncodeFeedbackCreateInfoKHR-encodeFeedbackFlags-parameter",
+ "text": " <code>encodeFeedbackFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoEncodeFeedbackFlagBitsKHR\">VkVideoEncodeFeedbackFlagBitsKHR</a> values"
+ },
+ {
+ "vuid": "VUID-VkQueryPoolVideoEncodeFeedbackCreateInfoKHR-encodeFeedbackFlags-requiredbitmask",
+ "text": " <code>encodeFeedbackFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+ }
+ ]
+ },
"vkCmdClearColorImage": {
"(VK_VERSION_1_1,VK_KHR_maintenance1)": [
{
@@ -28179,30 +28631,22 @@
"vkCmdClearAttachments": {
"(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
{
- "vuid": "VUID-vkCmdClearAttachments-aspectMask-07882",
- "text": " If the current render pass instance uses dynamic rendering, the <code>aspectMask</code> member of any element of <code>pAttachments</code> contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment</code> is not <code>NULL</code>, and <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the render pass <code>format</code> <strong class=\"purple\">must</strong> contain a depth aspect"
- },
- {
- "vuid": "VUID-vkCmdClearAttachments-aspectMask-07883",
- "text": " If the current render pass instance uses dynamic rendering, the <code>aspectMask</code> member of any element of <code>pAttachments</code> contains <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment</code> is not <code>NULL</code>, and <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the render pass <code>format</code> <strong class=\"purple\">must</strong> contain a stencil aspect"
- },
- {
"vuid": "VUID-vkCmdClearAttachments-aspectMask-07884",
- "text": " If the current render pass instance does not use dynamic rendering, and the <code>aspectMask</code> member of any element of <code>pAttachments</code> contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>, the current subpass instance&#8217;s depth-stencil attachment <strong class=\"purple\">must</strong> be either <code>VK_ATTACHMENT_UNUSED</code> or the attachment <code>format</code> <strong class=\"purple\">must</strong> contain a depth aspect"
+ "text": " If the current render pass instance does not use dynamic rendering, and the <code>aspectMask</code> member of any element of <code>pAttachments</code> contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>, the current subpass instance&#8217;s depth-stencil attachment <strong class=\"purple\">must</strong> be either <code>VK_ATTACHMENT_UNUSED</code> or the attachment <code>format</code> <strong class=\"purple\">must</strong> contain a depth component"
},
{
"vuid": "VUID-vkCmdClearAttachments-aspectMask-07885",
- "text": " If the current render pass instance does not use dynamic rendering, and the <code>aspectMask</code> member of any element of <code>pAttachments</code> contains <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, the current subpass instance&#8217;s depth-stencil attachment <strong class=\"purple\">must</strong> be either <code>VK_ATTACHMENT_UNUSED</code> or the attachment <code>format</code> <strong class=\"purple\">must</strong> contain a stencil aspect"
+ "text": " If the current render pass instance does not use dynamic rendering, and the <code>aspectMask</code> member of any element of <code>pAttachments</code> contains <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, the current subpass instance&#8217;s depth-stencil attachment <strong class=\"purple\">must</strong> be either <code>VK_ATTACHMENT_UNUSED</code> or the attachment <code>format</code> <strong class=\"purple\">must</strong> contain a stencil component"
}
],
"!(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdClearAttachments-aspectMask-07886",
- "text": " If the <code>aspectMask</code> member of any element of <code>pAttachments</code> contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>, the current subpass instance&#8217;s depth-stencil attachment <strong class=\"purple\">must</strong> be either <code>VK_ATTACHMENT_UNUSED</code> or the attachment <code>format</code> <strong class=\"purple\">must</strong> contain a depth aspect"
+ "text": " If the <code>aspectMask</code> member of any element of <code>pAttachments</code> contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>, the current subpass instance&#8217;s depth-stencil attachment <strong class=\"purple\">must</strong> be either <code>VK_ATTACHMENT_UNUSED</code> or the attachment <code>format</code> <strong class=\"purple\">must</strong> contain a depth component"
},
{
"vuid": "VUID-vkCmdClearAttachments-aspectMask-07887",
- "text": " If the <code>aspectMask</code> member of any element of <code>pAttachments</code> contains <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, the current subpass instance&#8217;s depth-stencil attachment <strong class=\"purple\">must</strong> be either <code>VK_ATTACHMENT_UNUSED</code> or the attachment <code>format</code> <strong class=\"purple\">must</strong> contain a stencil aspect"
+ "text": " If the <code>aspectMask</code> member of any element of <code>pAttachments</code> contains <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, the current subpass instance&#8217;s depth-stencil attachment <strong class=\"purple\">must</strong> be either <code>VK_ATTACHMENT_UNUSED</code> or the attachment <code>format</code> <strong class=\"purple\">must</strong> contain a stencil component"
}
],
"core": [
@@ -28356,7 +28800,7 @@
},
{
"vuid": "VUID-vkCmdFillBuffer-dstBuffer-00031",
- "text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+ "text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
},
{
"vuid": "VUID-vkCmdFillBuffer-commandBuffer-parameter",
@@ -28387,10 +28831,16 @@
"text": " Both of <code>commandBuffer</code>, and <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
}
],
+ "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
+ {
+ "vuid": "VUID-vkCmdFillBuffer-apiVersion-07894",
+ "text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled and <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, the <a href=\"#VkCommandPool\">VkCommandPool</a> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics or compute operations"
+ }
+ ],
"!(VK_VERSION_1_1,VK_KHR_maintenance1)": [
{
"vuid": "VUID-vkCmdFillBuffer-commandBuffer-00030",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics or compute operations"
+ "text": " The <a href=\"#VkCommandPool\">VkCommandPool</a> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics or compute operations"
}
],
"(VK_VERSION_1_1)": [
@@ -28743,22 +29193,6 @@
"text": " The sample count of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> match"
},
{
- "vuid": "VUID-vkCmdCopyImage-srcSubresource-01696",
- "text": " The <code>srcSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstSubresource-01697",
- "text": " The <code>dstSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcSubresource-01698",
- "text": " The <span class=\"eq\"><code>srcSubresource.baseArrayLayer</code> &#43; <code>srcSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstSubresource-01699",
- "text": " The <span class=\"eq\"><code>dstSubresource.baseArrayLayer</code> &#43; <code>dstSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
"vuid": "VUID-vkCmdCopyImage-srcOffset-01783",
"text": " The <code>srcOffset</code> and <code>extent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>"
},
@@ -28871,6 +29305,22 @@
"text": " For each element of <code>pRegions</code>, if the sum of <code>dstOffset.z</code> and <code>extent.depth</code> does not equal the depth of the subresource specified by <code>dstSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>"
},
{
+ "vuid": "VUID-vkCmdCopyImage-pRegions-07924",
+ "text": " The pname:srcSubresource.mipLevel member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when pname:srcImage was created"
+ },
+ {
+ "vuid": "VUID-vkCmdCopyImage-imageSubresource-07925",
+ "text": " The <span class=\"eq\">pname:srcSubresource.baseArrayLayer &#43; <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when pname:srcImage was created"
+ },
+ {
+ "vuid": "VUID-vkCmdCopyImage-pRegions-07924",
+ "text": " The pname:dstSubresource.mipLevel member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when pname:dstImage was created"
+ },
+ {
+ "vuid": "VUID-vkCmdCopyImage-imageSubresource-07925",
+ "text": " The <span class=\"eq\">pname:dstSubresource.baseArrayLayer &#43; <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when pname:dstImage was created"
+ },
+ {
"vuid": "VUID-vkCmdCopyImage-commandBuffer-parameter",
"text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
},
@@ -28929,6 +29379,10 @@
"text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>"
},
{
+ "vuid": "VUID-vkCmdCopyImage-apiVersion-07932",
+ "text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, and either <code>srcImage</code> or <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> and <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> each be <code>0</code>, and <code>srcSubresource.layerCount</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> each be <code>1</code>"
+ },
+ {
"vuid": "VUID-vkCmdCopyImage-srcImage-04443",
"text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
},
@@ -28937,6 +29391,10 @@
"text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
},
{
+ "vuid": "VUID-vkCmdCopyImage-apiVersion-07933",
+ "text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> have the same <a href=\"#VkImageType\">VkImageType</a>"
+ },
+ {
"vuid": "VUID-vkCmdCopyImage-srcImage-07743",
"text": " If <code>srcImage</code> and <code>dstImage</code> have a different <a href=\"#VkImageType\">VkImageType</a>, one <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_3D</code> and the other <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>"
},
@@ -28957,30 +29415,42 @@
"text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, and <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> equal <code>dstSubresource.layerCount</code>"
}
],
- "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+ "!(VK_KHR_shared_presentable_image)": [
{
- "vuid": "VUID-vkCmdCopyImage-srcImage-00127",
- "text": " If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+ "vuid": "VUID-vkCmdCopyImage-srcImageLayout-00129",
+ "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
},
{
- "vuid": "VUID-vkCmdCopyImage-dstImage-00132",
- "text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+ "vuid": "VUID-vkCmdCopyImage-dstImageLayout-00134",
+ "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
+ }
+ ],
+ "(VK_KHR_shared_presentable_image)": [
+ {
+ "vuid": "VUID-vkCmdCopyImage-srcImageLayout-01917",
+ "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
},
{
- "vuid": "VUID-vkCmdCopyImage-srcImage-00135",
- "text": " The <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> be <a href=\"#formats-size-compatibility\">size-compatible</a>"
+ "vuid": "VUID-vkCmdCopyImage-dstImageLayout-01395",
+ "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
}
],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+ "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
- "vuid": "VUID-vkCmdCopyImage-srcImage-01546",
- "text": " If <code>srcImage</code> is non-sparse then the image or <em>disjoint</em> plane to be copied <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+ "vuid": "VUID-vkCmdCopyImage-srcImage-00135",
+ "text": " The <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> be <a href=\"#formats-size-compatibility\">size-compatible</a>"
},
{
- "vuid": "VUID-vkCmdCopyImage-dstImage-01547",
- "text": " If <code>dstImage</code> is non-sparse then the image or <em>disjoint</em> plane that is the destination of the copy <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+ "vuid": "VUID-vkCmdCopyImage-None-07922",
+ "text": " If pname:srcImage is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
},
{
+ "vuid": "VUID-vkCmdCopyImage-None-07922",
+ "text": " If pname:dstImage is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+ }
+ ],
+ "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+ {
"vuid": "VUID-vkCmdCopyImage-srcImage-01548",
"text": " If the <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> is not a <a href=\"#formats-requiring-sampler-ycbcr-conversion\"><em>multi-planar format</em></a>, the <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> be <a href=\"#formats-size-compatibility\">size-compatible</a>"
},
@@ -29015,32 +29485,14 @@
{
"vuid": "VUID-vkCmdCopyImage-dstImage-01557",
"text": " If <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> and the <code>srcImage</code> does not have a multi-planar image format, then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
- }
- ],
- "!(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-vkCmdCopyImage-srcImageLayout-00129",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
},
{
- "vuid": "VUID-vkCmdCopyImage-dstImageLayout-00134",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- }
- ],
- "(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-vkCmdCopyImage-srcImageLayout-01917",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
+ "vuid": "VUID-vkCmdCopyImage-None-07923",
+ "text": " If pname:srcImage is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
},
{
- "vuid": "VUID-vkCmdCopyImage-dstImageLayout-01395",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
- }
- ],
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdCopyImage-dstImage-02542",
- "text": " <code>dstImage</code> and <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
+ "vuid": "VUID-vkCmdCopyImage-None-07923",
+ "text": " If pname:dstImage is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
}
],
"!(VK_VERSION_1_1,VK_KHR_maintenance1)": [
@@ -29084,6 +29536,16 @@
"vuid": "VUID-vkCmdCopyImage-aspect-06665",
"text": " If the <code>aspect</code> member of any element of <code>pRegions</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, and <code>dstImage</code> was created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> used to create <code>dstImage</code>"
}
+ ],
+ "(VK_EXT_fragment_density_map)": [
+ {
+ "vuid": "VUID-vkCmdCopyImage-flags-07926",
+ "text": " pname:srcImage <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdCopyImage-flags-07926",
+ "text": " pname:dstImage <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
+ }
]
},
"VkImageCopy": {
@@ -29093,6 +29555,18 @@
"text": " The <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
}
],
+ "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+ {
+ "vuid": "VUID-VkImageCopy-apiVersion-07940",
+ "text": " If the <a href=\"#VK_KHR_sampler_ycbcr_conversion\">VK_KHR_sampler_ycbcr_conversion</a> extension is not enabled and <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, the <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
+ }
+ ],
+ "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
+ {
+ "vuid": "VUID-VkImageCopy-apiVersion-07941",
+ "text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled and <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, the <code>layerCount</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
+ }
+ ],
"!(VK_VERSION_1_1,VK_KHR_maintenance1)": [
{
"vuid": "VUID-VkImageCopy-layerCount-00138",
@@ -29213,22 +29687,6 @@
"text": " The sample count of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> match"
},
{
- "vuid": "VUID-VkCopyImageInfo2-srcSubresource-01696",
- "text": " The <code>srcSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstSubresource-01697",
- "text": " The <code>dstSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcSubresource-01698",
- "text": " The <span class=\"eq\"><code>srcSubresource.baseArrayLayer</code> &#43; <code>srcSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstSubresource-01699",
- "text": " The <span class=\"eq\"><code>dstSubresource.baseArrayLayer</code> &#43; <code>dstSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
"vuid": "VUID-VkCopyImageInfo2-srcOffset-01783",
"text": " The <code>srcOffset</code> and <code>extent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>"
},
@@ -29341,6 +29799,22 @@
"text": " For each element of <code>pRegions</code>, if the sum of <code>dstOffset.z</code> and <code>extent.depth</code> does not equal the depth of the subresource specified by <code>dstSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of <code>dstImage</code>"
},
{
+ "vuid": "VUID-VkCopyImageInfo2-pRegions-07924",
+ "text": " The pname:srcSubresource.mipLevel member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when pname:srcImage was created"
+ },
+ {
+ "vuid": "VUID-VkCopyImageInfo2-imageSubresource-07925",
+ "text": " The <span class=\"eq\">pname:srcSubresource.baseArrayLayer &#43; <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when pname:srcImage was created"
+ },
+ {
+ "vuid": "VUID-VkCopyImageInfo2-pRegions-07924",
+ "text": " The pname:dstSubresource.mipLevel member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when pname:dstImage was created"
+ },
+ {
+ "vuid": "VUID-VkCopyImageInfo2-imageSubresource-07925",
+ "text": " The <span class=\"eq\">pname:dstSubresource.baseArrayLayer &#43; <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when pname:dstImage was created"
+ },
+ {
"vuid": "VUID-VkCopyImageInfo2-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2</code>"
},
@@ -29387,6 +29861,10 @@
"text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>"
},
{
+ "vuid": "VUID-VkCopyImageInfo2-apiVersion-07932",
+ "text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, and either <code>srcImage</code> or <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> and <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> each be <code>0</code>, and <code>srcSubresource.layerCount</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> each be <code>1</code>"
+ },
+ {
"vuid": "VUID-VkCopyImageInfo2-srcImage-04443",
"text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
},
@@ -29395,6 +29873,10 @@
"text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
},
{
+ "vuid": "VUID-VkCopyImageInfo2-apiVersion-07933",
+ "text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> have the same <a href=\"#VkImageType\">VkImageType</a>"
+ },
+ {
"vuid": "VUID-VkCopyImageInfo2-srcImage-07743",
"text": " If <code>srcImage</code> and <code>dstImage</code> have a different <a href=\"#VkImageType\">VkImageType</a>, one <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_3D</code> and the other <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>"
},
@@ -29415,30 +29897,42 @@
"text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, and <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> equal <code>dstSubresource.layerCount</code>"
}
],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+ "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)": [
{
- "vuid": "VUID-VkCopyImageInfo2-srcImage-00127",
- "text": " If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+ "vuid": "VUID-VkCopyImageInfo2-srcImageLayout-00129",
+ "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
},
{
- "vuid": "VUID-VkCopyImageInfo2-dstImage-00132",
- "text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+ "vuid": "VUID-VkCopyImageInfo2-dstImageLayout-00134",
+ "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
+ }
+ ],
+ "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)": [
+ {
+ "vuid": "VUID-VkCopyImageInfo2-srcImageLayout-01917",
+ "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
},
{
- "vuid": "VUID-VkCopyImageInfo2-srcImage-00135",
- "text": " The <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> be <a href=\"#formats-size-compatibility\">size-compatible</a>"
+ "vuid": "VUID-VkCopyImageInfo2-dstImageLayout-01395",
+ "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
}
],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+ "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
- "vuid": "VUID-VkCopyImageInfo2-srcImage-01546",
- "text": " If <code>srcImage</code> is non-sparse then the image or <em>disjoint</em> plane to be copied <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+ "vuid": "VUID-VkCopyImageInfo2-srcImage-00135",
+ "text": " The <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> be <a href=\"#formats-size-compatibility\">size-compatible</a>"
},
{
- "vuid": "VUID-VkCopyImageInfo2-dstImage-01547",
- "text": " If <code>dstImage</code> is non-sparse then the image or <em>disjoint</em> plane that is the destination of the copy <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+ "vuid": "VUID-VkCopyImageInfo2-None-07922",
+ "text": " If pname:srcImage is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
},
{
+ "vuid": "VUID-VkCopyImageInfo2-None-07922",
+ "text": " If pname:dstImage is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+ }
+ ],
+ "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+ {
"vuid": "VUID-VkCopyImageInfo2-srcImage-01548",
"text": " If the <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> is not a <a href=\"#formats-requiring-sampler-ycbcr-conversion\"><em>multi-planar format</em></a>, the <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> be <a href=\"#formats-size-compatibility\">size-compatible</a>"
},
@@ -29473,32 +29967,14 @@
{
"vuid": "VUID-VkCopyImageInfo2-dstImage-01557",
"text": " If <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> and the <code>srcImage</code> does not have a multi-planar image format, then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImageLayout-00129",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
},
{
- "vuid": "VUID-VkCopyImageInfo2-dstImageLayout-00134",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImageLayout-01917",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
+ "vuid": "VUID-VkCopyImageInfo2-None-07923",
+ "text": " If pname:srcImage is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
},
{
- "vuid": "VUID-VkCopyImageInfo2-dstImageLayout-01395",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImage-02542",
- "text": " <code>dstImage</code> and <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
+ "vuid": "VUID-VkCopyImageInfo2-None-07923",
+ "text": " If pname:dstImage is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
}
],
"(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_maintenance1)": [
@@ -29542,6 +30018,16 @@
"vuid": "VUID-VkCopyImageInfo2-aspect-06665",
"text": " If the <code>aspect</code> member of any element of <code>pRegions</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, and <code>dstImage</code> was created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> used to create <code>dstImage</code>"
}
+ ],
+ "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)": [
+ {
+ "vuid": "VUID-VkCopyImageInfo2-flags-07926",
+ "text": " pname:srcImage <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
+ },
+ {
+ "vuid": "VUID-VkCopyImageInfo2-flags-07926",
+ "text": " pname:dstImage <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
+ }
]
},
"VkImageCopy2": {
@@ -29551,6 +30037,18 @@
"text": " The <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
}
],
+ "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+ {
+ "vuid": "VUID-VkImageCopy2-apiVersion-07940",
+ "text": " If the <a href=\"#VK_KHR_sampler_ycbcr_conversion\">VK_KHR_sampler_ycbcr_conversion</a> extension is not enabled and <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, the <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
+ }
+ ],
+ "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)": [
+ {
+ "vuid": "VUID-VkImageCopy2-apiVersion-07941",
+ "text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled and <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, the <code>layerCount</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
+ }
+ ],
"(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_maintenance1)": [
{
"vuid": "VUID-VkImageCopy2-layerCount-00138",
@@ -29589,22 +30087,64 @@
]
},
"vkCmdCopyBufferToImage": {
- "(VK_VERSION_1_1)": [
+ "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
- "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01828",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
+ "vuid": "VUID-vkCmdCopyBufferToImage-None-07922",
+ "text": " If {imageparam} is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
},
{
- "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01829",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image"
+ "vuid": "VUID-vkCmdCopyBufferToImage-bufferOffset-00193",
+ "text": " If {imageparam} does not have a depth/stencil format, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
+ }
+ ],
+ "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+ {
+ "vuid": "VUID-vkCmdCopyBufferToImage-None-07923",
+ "text": " If {imageparam} is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
},
{
- "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01830",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image"
+ "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07740",
+ "text": " If {imageparam} has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">two planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07741",
+ "text": " If {imageparam} has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">three planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdCopyBufferToImage-bufferOffset-01558",
+ "text": " If {imageparam} does not have either a depth/stencil or a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
+ },
+ {
+ "vuid": "VUID-vkCmdCopyBufferToImage-bufferOffset-01559",
+ "text": " If {imageparam} has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of the compatible format for the format and the <code>aspectMask</code> of the <code>imageSubresource</code> as defined in <a href=\"#formats-compatible-planes\">Compatible formats of planes of multi-planar formats</a>"
}
],
"core": [
{
+ "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07924",
+ "text": " The {imagesubresource}.mipLevel member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when {imageparam} was created"
+ },
+ {
+ "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-07925",
+ "text": " The <span class=\"eq\">{imagesubresource}.baseArrayLayer &#43; <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when {imageparam} was created"
+ },
+ {
+ "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07927",
+ "text": " The image region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be contained within the specified {imagesubresource} of {imageparam}"
+ },
+ {
+ "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07928",
+ "text": " For each element of <code>pRegions</code>, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> &#43; <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 {imagesubresource} of {imageparam}"
+ },
+ {
+ "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07929",
+ "text": " For each element of <code>pRegions</code>, <code>imageOffset.y</code> and <span class=\"eq\">(<code>imageExtent.height</code> &#43; <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 {imagesubresource} of {imageparam}"
+ },
+ {
+ "vuid": "VUID-vkCmdCopyBufferToImage-None-07930",
+ "text": " {imageparam} <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
+ },
+ {
"vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-07737",
"text": " If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code> or <code>VK_QUEUE_COMPUTE_BIT</code>, the <code>bufferOffset</code> member of any element of {regionsparam} <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
},
@@ -29701,38 +30241,10 @@
"text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag"
},
{
- "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00178",
- "text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00179",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
"vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-00180",
"text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
},
{
- "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-01701",
- "text": " The <code>imageSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-01702",
- "text": " The <span class=\"eq\"><code>imageSubresource.baseArrayLayer</code> &#43; <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-06217",
- "text": " The image region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be contained within the specified <code>imageSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-06218",
- "text": " For each element of <code>pRegions</code>, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> &#43; <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>dstImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-06219",
- "text": " For each element of <code>pRegions</code>, <code>imageOffset.y</code> and <span class=\"eq\">(<code>imageExtent.height</code> &#43; <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>dstImage</code>"
- },
- {
"vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-parameter",
"text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
},
@@ -29777,28 +30289,24 @@
"text": " Each of <code>commandBuffer</code>, <code>dstImage</code>, and <code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
}
],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+ "(VK_EXT_fragment_density_map)": [
{
- "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07740",
- "text": " If {imageparam} has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">two planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
- },
+ "vuid": "VUID-vkCmdCopyBufferToImage-flags-07926",
+ "text": " {imageparam} <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
+ }
+ ],
+ "(VK_VERSION_1_1)": [
{
- "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07741",
- "text": " If {imageparam} has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">three planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
+ "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01828",
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
},
{
- "vuid": "VUID-vkCmdCopyBufferToImage-bufferOffset-01558",
- "text": " If {imageparam} does not have either a depth/stencil or a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
+ "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01829",
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image"
},
{
- "vuid": "VUID-vkCmdCopyBufferToImage-bufferOffset-01559",
- "text": " If {imageparam} has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of the compatible format for the format and the <code>aspectMask</code> of the <code>imageSubresource</code> as defined in <a href=\"#formats-compatible-planes\">Compatible formats of planes of multi-planar formats</a>"
- }
- ],
- "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-bufferOffset-00193",
- "text": " If {imageparam} does not have a depth/stencil format, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
+ "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01830",
+ "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image"
}
],
"(VK_VERSION_1_1,VK_KHR_maintenance1)": [
@@ -29819,36 +30327,78 @@
"text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
}
],
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-02543",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
- }
- ],
"!(VK_EXT_depth_range_unrestricted)": [
{
"vuid": "VUID-vkCmdCopyBufferToImage-None-00214",
"text": " For each element of <code>pRegions</code> whose <code>imageSubresource</code> contains a depth aspect, the data in <code>srcBuffer</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0,1]</span>"
}
+ ],
+ "(VK_EXT_depth_range_unrestricted)": [
+ {
+ "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07931",
+ "text": " If <a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a> is not enabled, for each element of <code>pRegions</code> whose <code>imageSubresource</code> contains a depth aspect, the data in <code>srcBuffer</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0,1]</span>"
+ }
]
},
"vkCmdCopyImageToBuffer": {
- "(VK_VERSION_1_1)": [
+ "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
- "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01831",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image"
+ "vuid": "VUID-vkCmdCopyImageToBuffer-None-07922",
+ "text": " If {imageparam} is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
},
{
- "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01832",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
+ "vuid": "VUID-vkCmdCopyImageToBuffer-bufferOffset-00193",
+ "text": " If {imageparam} does not have a depth/stencil format, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
+ }
+ ],
+ "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+ {
+ "vuid": "VUID-vkCmdCopyImageToBuffer-None-07923",
+ "text": " If {imageparam} is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
},
{
- "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01833",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be an unprotected buffer"
+ "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-07740",
+ "text": " If {imageparam} has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">two planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-07741",
+ "text": " If {imageparam} has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">three planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdCopyImageToBuffer-bufferOffset-01558",
+ "text": " If {imageparam} does not have either a depth/stencil or a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
+ },
+ {
+ "vuid": "VUID-vkCmdCopyImageToBuffer-bufferOffset-01559",
+ "text": " If {imageparam} has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of the compatible format for the format and the <code>aspectMask</code> of the <code>imageSubresource</code> as defined in <a href=\"#formats-compatible-planes\">Compatible formats of planes of multi-planar formats</a>"
}
],
"core": [
{
+ "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-07924",
+ "text": " The {imagesubresource}.mipLevel member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when {imageparam} was created"
+ },
+ {
+ "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-07925",
+ "text": " The <span class=\"eq\">{imagesubresource}.baseArrayLayer &#43; <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when {imageparam} was created"
+ },
+ {
+ "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-07927",
+ "text": " The image region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be contained within the specified {imagesubresource} of {imageparam}"
+ },
+ {
+ "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-07928",
+ "text": " For each element of <code>pRegions</code>, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> &#43; <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 {imagesubresource} of {imageparam}"
+ },
+ {
+ "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-07929",
+ "text": " For each element of <code>pRegions</code>, <code>imageOffset.y</code> and <span class=\"eq\">(<code>imageExtent.height</code> &#43; <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 {imagesubresource} of {imageparam}"
+ },
+ {
+ "vuid": "VUID-vkCmdCopyImageToBuffer-None-07930",
+ "text": " {imageparam} <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
+ },
+ {
"vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-07746",
"text": " If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code> or <code>VK_QUEUE_COMPUTE_BIT</code>, the <code>bufferOffset</code> member of any element of {regionsparam} <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
},
@@ -29933,10 +30483,6 @@
"text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag"
},
{
- "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00187",
- "text": " If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
"vuid": "VUID-vkCmdCopyImageToBuffer-dstBuffer-00191",
"text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag"
},
@@ -29945,34 +30491,10 @@
"text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
},
{
- "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00188",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
"vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189",
"text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
},
{
- "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-01703",
- "text": " The <code>imageSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-01704",
- "text": " The <span class=\"eq\"><code>imageSubresource.baseArrayLayer</code> &#43; <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-06220",
- "text": " The image region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be contained within the specified <code>imageSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-06221",
- "text": " For each element of <code>pRegions</code>, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> &#43; <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-pRegions-06222",
- "text": " For each element of <code>pRegions</code>, <code>imageOffset.y</code> and <span class=\"eq\">(imageExtent.height &#43; <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-commandBuffer-parameter",
"text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
},
@@ -30017,28 +30539,24 @@
"text": " Each of <code>commandBuffer</code>, <code>dstBuffer</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
}
],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+ "(VK_EXT_fragment_density_map)": [
{
- "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-07740",
- "text": " If {imageparam} has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">two planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
- },
+ "vuid": "VUID-vkCmdCopyImageToBuffer-flags-07926",
+ "text": " {imageparam} <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
+ }
+ ],
+ "(VK_VERSION_1_1)": [
{
- "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-07741",
- "text": " If {imageparam} has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">three planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
+ "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01831",
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image"
},
{
- "vuid": "VUID-vkCmdCopyImageToBuffer-bufferOffset-01558",
- "text": " If {imageparam} does not have either a depth/stencil or a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
+ "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01832",
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
},
{
- "vuid": "VUID-vkCmdCopyImageToBuffer-bufferOffset-01559",
- "text": " If {imageparam} has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of the compatible format for the format and the <code>aspectMask</code> of the <code>imageSubresource</code> as defined in <a href=\"#formats-compatible-planes\">Compatible formats of planes of multi-planar formats</a>"
- }
- ],
- "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-bufferOffset-00193",
- "text": " If {imageparam} does not have a depth/stencil format, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
+ "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01833",
+ "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be an unprotected buffer"
}
],
"(VK_VERSION_1_1,VK_KHR_maintenance1)": [
@@ -30058,12 +30576,6 @@
"vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397",
"text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
}
- ],
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-02544",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
- }
]
},
"VkBufferImageCopy": {
@@ -30203,88 +30715,76 @@
"text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag"
},
{
- "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-00178",
- "text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-00179",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
"vuid": "VUID-VkCopyBufferToImageInfo2-dstImageLayout-00180",
"text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
},
{
- "vuid": "VUID-VkCopyBufferToImageInfo2-imageSubresource-01701",
- "text": " The <code>imageSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
+ "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07924",
+ "text": " The {imagesubresource}.mipLevel member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when {imageparam} was created"
},
{
- "vuid": "VUID-VkCopyBufferToImageInfo2-imageSubresource-01702",
- "text": " The <span class=\"eq\"><code>imageSubresource.baseArrayLayer</code> &#43; <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
+ "vuid": "VUID-VkCopyBufferToImageInfo2-imageSubresource-07925",
+ "text": " The <span class=\"eq\">{imagesubresource}.baseArrayLayer &#43; <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when {imageparam} was created"
},
{
- "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-06223",
- "text": " For each element of <code>pRegions</code> not containing <code>VkCopyCommandTransformInfoQCOM</code> in its <code>pNext</code> chain, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> &#43; <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>dstImage</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-06224",
- "text": " For each element of <code>pRegions</code> not containing <code>VkCopyCommandTransformInfoQCOM</code> in its <code>pNext</code> chain, <code>imageOffset.y</code> and <span class=\"eq\">(<code>imageExtent.height</code> &#43; <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>dstImage</code>"
+ "vuid": "VUID-VkCopyBufferToImageInfo2-None-07930",
+ "text": " {imageparam} <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
},
{
"vuid": "VUID-VkCopyBufferToImageInfo2-srcImage-00199",
- "text": " If pname:dstImage is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
+ "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
},
{
"vuid": "VUID-VkCopyBufferToImageInfo2-imageOffset-00200",
- "text": " For each element of <code>pRegions</code>, <code>imageOffset.z</code> and <span class=\"eq\">(<code>imageExtent.depth</code> &#43; <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>imageSubresource</code> of pname:dstImage"
+ "text": " For each element of <code>pRegions</code>, <code>imageOffset.z</code> and <span class=\"eq\">(<code>imageExtent.depth</code> &#43; <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>imageSubresource</code> of {imageparam}"
},
{
"vuid": "VUID-VkCopyBufferToImageInfo2-srcImage-00201",
- "text": " If pname:dstImage is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
+ "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
},
{
"vuid": "VUID-VkCopyBufferToImageInfo2-bufferRowLength-00203",
- "text": " For each element of <code>pRegions</code>, <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:dstImage"
+ "text": " For each element of <code>pRegions</code>, <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
},
{
"vuid": "VUID-VkCopyBufferToImageInfo2-bufferImageHeight-00204",
- "text": " For each element of <code>pRegions</code>, <code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:dstImage"
+ "text": " For each element of <code>pRegions</code>, <code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
},
{
"vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07274",
- "text": " For each element of <code>pRegions</code>, <code>imageOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:dstImage"
+ "text": " For each element of <code>pRegions</code>, <code>imageOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
},
{
"vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07275",
- "text": " For each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:dstImage"
+ "text": " For each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
},
{
"vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07276",
- "text": " For each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:dstImage"
+ "text": " For each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
},
{
"vuid": "VUID-VkCopyBufferToImageInfo2-imageExtent-00207",
- "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.x</code> and <code>extent.width</code> does not equal the width of the subresource specified by <code>srcSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:dstImage"
+ "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.x</code> and <code>extent.width</code> does not equal the width of the subresource specified by <code>srcSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
},
{
"vuid": "VUID-VkCopyBufferToImageInfo2-imageExtent-00208",
- "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.y</code> and <code>extent.height</code> does not equal the height of the subresource specified by <code>srcSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:dstImage"
+ "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.y</code> and <code>extent.height</code> does not equal the height of the subresource specified by <code>srcSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
},
{
"vuid": "VUID-VkCopyBufferToImageInfo2-imageExtent-00209",
- "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.z</code> and <code>extent.depth</code> does not equal the depth of the subresource specified by <code>srcSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:dstImage"
+ "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.z</code> and <code>extent.depth</code> does not equal the depth of the subresource specified by <code>srcSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
},
{
"vuid": "VUID-VkCopyBufferToImageInfo2-aspectMask-00211",
- "text": " For each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in pname:dstImage"
+ "text": " For each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in {imageparam}"
},
{
"vuid": "VUID-VkCopyBufferToImageInfo2-baseArrayLayer-00213",
- "text": " If pname:dstImage is of type <code>VK_IMAGE_TYPE_3D</code>, for each element of <code>pRegions</code>, <code>imageSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
+ "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_3D</code>, for each element of <code>pRegions</code>, <code>imageSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
},
{
"vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07277",
- "text": " For each element of <code>pRegions</code>, <code>bufferRowLength</code> divided by the <a href=\"#formats-compatibility-classes\">texel block extent width</a> and then multiplied by the texel block size of pname:dstImage <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>"
+ "text": " For each element of <code>pRegions</code>, <code>bufferRowLength</code> divided by the <a href=\"#formats-compatibility-classes\">texel block extent width</a> and then multiplied by the texel block size of {imageparam} <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>"
},
{
"vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07273",
@@ -30295,6 +30795,14 @@
"text": " If {imageparam} has a depth/stencil format, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
},
{
+ "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-06223",
+ "text": " For each element of <code>pRegions</code> not containing <code>VkCopyCommandTransformInfoQCOM</code> in its <code>pNext</code> chain, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> &#43; <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>dstImage</code>"
+ },
+ {
+ "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-06224",
+ "text": " For each element of <code>pRegions</code> not containing <code>VkCopyCommandTransformInfoQCOM</code> in its <code>pNext</code> chain, <code>imageOffset.y</code> and <span class=\"eq\">(<code>imageExtent.height</code> &#43; <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>dstImage</code>"
+ },
+ {
"vuid": "VUID-VkCopyBufferToImageInfo2-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2</code>"
},
@@ -30345,26 +30853,40 @@
"text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
}
],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-02543",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
- }
- ],
"(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_EXT_depth_range_unrestricted)": [
{
"vuid": "VUID-VkCopyBufferToImageInfo2-None-00214",
"text": " For each element of <code>pRegions</code> whose <code>imageSubresource</code> contains a depth aspect, the data in <code>srcBuffer</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0,1]</span>"
}
],
+ "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_depth_range_unrestricted)": [
+ {
+ "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07931",
+ "text": " If <a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a> is not enabled, for each element of <code>pRegions</code> whose <code>imageSubresource</code> contains a depth aspect, the data in <code>srcBuffer</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0,1]</span>"
+ }
+ ],
+ "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+ {
+ "vuid": "VUID-VkCopyBufferToImageInfo2-None-07922",
+ "text": " If {imageparam} is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+ },
+ {
+ "vuid": "VUID-VkCopyBufferToImageInfo2-bufferOffset-00193",
+ "text": " If {imageparam} does not have a depth/stencil format, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
+ }
+ ],
"(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
+ "vuid": "VUID-VkCopyBufferToImageInfo2-None-07923",
+ "text": " If {imageparam} is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+ },
+ {
"vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07740",
- "text": " If pname:dstImage has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">two planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
+ "text": " If {imageparam} has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">two planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
},
{
"vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07741",
- "text": " If pname:dstImage has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">three planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
+ "text": " If {imageparam} has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">three planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
},
{
"vuid": "VUID-VkCopyBufferToImageInfo2-bufferOffset-01558",
@@ -30375,10 +30897,10 @@
"text": " If {imageparam} has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of the compatible format for the format and the <code>aspectMask</code> of the <code>imageSubresource</code> as defined in <a href=\"#formats-compatible-planes\">Compatible formats of planes of multi-planar formats</a>"
}
],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+ "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)": [
{
- "vuid": "VUID-VkCopyBufferToImageInfo2-bufferOffset-00193",
- "text": " If {imageparam} does not have a depth/stencil format, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
+ "vuid": "VUID-VkCopyBufferToImageInfo2-flags-07926",
+ "text": " {imageparam} <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
}
]
},
@@ -30475,10 +30997,6 @@
"text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag"
},
{
- "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-00187",
- "text": " If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
"vuid": "VUID-VkCopyImageToBufferInfo2-dstBuffer-00191",
"text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag"
},
@@ -30487,84 +31005,76 @@
"text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
},
{
- "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-00188",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
"vuid": "VUID-VkCopyImageToBufferInfo2-srcImageLayout-00189",
"text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
},
{
- "vuid": "VUID-VkCopyImageToBufferInfo2-imageSubresource-01703",
- "text": " The <code>imageSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
+ "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-07924",
+ "text": " The {imagesubresource}.mipLevel member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when {imageparam} was created"
},
{
- "vuid": "VUID-VkCopyImageToBufferInfo2-imageSubresource-01704",
- "text": " The <span class=\"eq\"><code>imageSubresource.baseArrayLayer</code> &#43; <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
+ "vuid": "VUID-VkCopyImageToBufferInfo2-imageSubresource-07925",
+ "text": " The <span class=\"eq\">{imagesubresource}.baseArrayLayer &#43; <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when {imageparam} was created"
},
{
- "vuid": "VUID-VkCopyImageToBufferInfo2-imageOffset-00197",
- "text": " For each element of <code>pRegions</code> not containing <code>VkCopyCommandTransformInfoQCOM</code> in its <code>pNext</code> chain, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> &#43; <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-VkCopyImageToBufferInfo2-imageOffset-00198",
- "text": " For each element of <code>pRegions</code> not containing <code>VkCopyCommandTransformInfoQCOM</code> in its <code>pNext</code> chain, <code>imageOffset.y</code> and <span class=\"eq\">(<code>imageExtent.height</code> &#43; <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-VkCopyImageToBufferInfo2-None-07930",
+ "text": " {imageparam} <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
},
{
"vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-00199",
- "text": " If pname:srcImage is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
+ "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
},
{
"vuid": "VUID-VkCopyImageToBufferInfo2-imageOffset-00200",
- "text": " For each element of <code>pRegions</code>, <code>imageOffset.z</code> and <span class=\"eq\">(<code>imageExtent.depth</code> &#43; <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>imageSubresource</code> of pname:srcImage"
+ "text": " For each element of <code>pRegions</code>, <code>imageOffset.z</code> and <span class=\"eq\">(<code>imageExtent.depth</code> &#43; <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>imageSubresource</code> of {imageparam}"
},
{
"vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-00201",
- "text": " If pname:srcImage is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
+ "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
},
{
"vuid": "VUID-VkCopyImageToBufferInfo2-bufferRowLength-00203",
- "text": " For each element of <code>pRegions</code>, <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:srcImage"
+ "text": " For each element of <code>pRegions</code>, <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
},
{
"vuid": "VUID-VkCopyImageToBufferInfo2-bufferImageHeight-00204",
- "text": " For each element of <code>pRegions</code>, <code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:srcImage"
+ "text": " For each element of <code>pRegions</code>, <code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
},
{
"vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-07274",
- "text": " For each element of <code>pRegions</code>, <code>imageOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:srcImage"
+ "text": " For each element of <code>pRegions</code>, <code>imageOffset.x</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
},
{
"vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-07275",
- "text": " For each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:srcImage"
+ "text": " For each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
},
{
"vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-07276",
- "text": " For each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:srcImage"
+ "text": " For each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
},
{
"vuid": "VUID-VkCopyImageToBufferInfo2-imageExtent-00207",
- "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.x</code> and <code>extent.width</code> does not equal the width of the subresource specified by <code>srcSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:srcImage"
+ "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.x</code> and <code>extent.width</code> does not equal the width of the subresource specified by <code>srcSubresource</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent width</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
},
{
"vuid": "VUID-VkCopyImageToBufferInfo2-imageExtent-00208",
- "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.y</code> and <code>extent.height</code> does not equal the height of the subresource specified by <code>srcSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:srcImage"
+ "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.y</code> and <code>extent.height</code> does not equal the height of the subresource specified by <code>srcSubresource</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent height</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
},
{
"vuid": "VUID-VkCopyImageToBufferInfo2-imageExtent-00209",
- "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.z</code> and <code>extent.depth</code> does not equal the depth of the subresource specified by <code>srcSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of pname:srcImage"
+ "text": " For each element of <code>pRegions</code>, if the sum of <code>imageOffset.z</code> and <code>extent.depth</code> does not equal the depth of the subresource specified by <code>srcSubresource</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the <a href=\"#formats-compatibility-classes\">texel block extent depth</a> of the <a href=\"#VkFormat\">VkFormat</a> of {imageparam}"
},
{
"vuid": "VUID-VkCopyImageToBufferInfo2-aspectMask-00211",
- "text": " For each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in pname:srcImage"
+ "text": " For each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in {imageparam}"
},
{
"vuid": "VUID-VkCopyImageToBufferInfo2-baseArrayLayer-00213",
- "text": " If pname:srcImage is of type <code>VK_IMAGE_TYPE_3D</code>, for each element of <code>pRegions</code>, <code>imageSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
+ "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_3D</code>, for each element of <code>pRegions</code>, <code>imageSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
},
{
"vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-07277",
- "text": " For each element of <code>pRegions</code>, <code>bufferRowLength</code> divided by the <a href=\"#formats-compatibility-classes\">texel block extent width</a> and then multiplied by the texel block size of pname:srcImage <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>"
+ "text": " For each element of <code>pRegions</code>, <code>bufferRowLength</code> divided by the <a href=\"#formats-compatibility-classes\">texel block extent width</a> and then multiplied by the texel block size of {imageparam} <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>"
},
{
"vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-07273",
@@ -30575,6 +31085,14 @@
"text": " If {imageparam} has a depth/stencil format, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
},
{
+ "vuid": "VUID-VkCopyImageToBufferInfo2-imageOffset-00197",
+ "text": " For each element of <code>pRegions</code> not containing <code>VkCopyCommandTransformInfoQCOM</code> in its <code>pNext</code> chain, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> &#43; <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-VkCopyImageToBufferInfo2-imageOffset-00198",
+ "text": " For each element of <code>pRegions</code> not containing <code>VkCopyCommandTransformInfoQCOM</code> in its <code>pNext</code> chain, <code>imageOffset.y</code> and <span class=\"eq\">(<code>imageExtent.height</code> &#43; <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-VkCopyImageToBufferInfo2-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2</code>"
},
@@ -30625,20 +31143,28 @@
"text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
}
],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)": [
+ "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+ {
+ "vuid": "VUID-VkCopyImageToBufferInfo2-None-07922",
+ "text": " If {imageparam} is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+ },
{
- "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-02544",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
+ "vuid": "VUID-VkCopyImageToBufferInfo2-bufferOffset-00193",
+ "text": " If {imageparam} does not have a depth/stencil format, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
}
],
"(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
+ "vuid": "VUID-VkCopyImageToBufferInfo2-None-07923",
+ "text": " If {imageparam} is non-sparse then the image or the specified <em>disjoint</em> plane <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
+ },
+ {
"vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-07740",
- "text": " If pname:srcImage has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">two planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
+ "text": " If {imageparam} has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">two planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
},
{
"vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-07741",
- "text": " If pname:srcImage has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">three planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
+ "text": " If {imageparam} has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">three planes</a> then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
},
{
"vuid": "VUID-VkCopyImageToBufferInfo2-bufferOffset-01558",
@@ -30649,10 +31175,10 @@
"text": " If {imageparam} has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of the compatible format for the format and the <code>aspectMask</code> of the <code>imageSubresource</code> as defined in <a href=\"#formats-compatible-planes\">Compatible formats of planes of multi-planar formats</a>"
}
],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+ "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)": [
{
- "vuid": "VUID-VkCopyImageToBufferInfo2-bufferOffset-00193",
- "text": " If {imageparam} does not have a depth/stencil format, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
+ "vuid": "VUID-VkCopyImageToBufferInfo2-flags-07926",
+ "text": " {imageparam} <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
}
]
},
@@ -30795,8 +31321,8 @@
"text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
},
{
- "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07666",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
+ "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-None-07930",
+ "text": " {imageparam} <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
},
{
"vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-07667",
@@ -32132,6 +32658,24 @@
"vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-04995",
"text": " If the <a href=\"#features-invocationMask\"><code>invocationMask</code></a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
}
+ ],
+ "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_ray_tracing)+!(VK_KHR_ray_tracing_pipeline)": [
+ {
+ "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-07945",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV</code>"
+ }
+ ],
+ "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-vkCmdWriteBufferMarker2AMD-rayTracingPipeline-07946",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
+ "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-vkCmdWriteBufferMarker2AMD-rayTracingPipeline-07947",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
]
},
"vkCmdWriteBufferMarkerAMD": {
@@ -32250,6 +32794,24 @@
"vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-06490",
"text": " <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_NONE</code>"
}
+ ],
+ "(VK_AMD_buffer_marker)+(VK_NV_ray_tracing)+!(VK_KHR_ray_tracing_pipeline)": [
+ {
+ "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-07942",
+ "text": " If the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV</code>"
+ }
+ ],
+ "(VK_AMD_buffer_marker)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-vkCmdWriteBufferMarkerAMD-rayTracingPipeline-07943",
+ "text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
+ ],
+ "(VK_AMD_buffer_marker)+(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
+ {
+ "vuid": "VUID-vkCmdWriteBufferMarkerAMD-rayTracingPipeline-07944",
+ "text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
+ }
]
},
"VkPipelineInputAssemblyStateCreateInfo": {
@@ -32430,7 +32992,7 @@
},
{
"vuid": "VUID-vkCmdDraw-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdDraw-None-07888",
@@ -32438,7 +33000,7 @@
},
{
"vuid": "VUID-vkCmdDraw-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDraw-None-02700",
@@ -32446,19 +33008,19 @@
},
{
"vuid": "VUID-vkCmdDraw-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdDraw-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdDraw-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdDraw-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdDraw-viewType-07752",
@@ -32624,7 +33186,7 @@
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDraw-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -32636,11 +33198,11 @@
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDraw-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdDraw-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_NV_corner_sampled_image)": [
@@ -32652,61 +33214,61 @@
"!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDraw-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDraw-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDraw-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDraw-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDraw-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDraw-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDraw-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDraw-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDraw-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDraw-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDraw-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDraw-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_VERSION_1_1)": [
@@ -32726,11 +33288,11 @@
"(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDraw-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDraw-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_EXT_shader_image_atomic_int64)": [
@@ -32807,6 +33369,10 @@
{
"vuid": "VUID-vkCmdDraw-None-06666",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDraw-sampleLocationsPerPixel-07934",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
}
],
"(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
@@ -32928,13 +33494,13 @@
"(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDraw-multisampledRenderToSingleSampled-07284",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDraw-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
@@ -33056,29 +33622,33 @@
"(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDraw-multisampledRenderToSingleSampled-07285",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDraw-multisampledRenderToSingleSampled-07286",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDraw-multisampledRenderToSingleSampled-07287",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDraw-pNext-07935",
+ "text": " If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
}
],
"(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDraw-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDraw-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDraw-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
}
],
"(VK_EXT_primitives_generated_query)": [
@@ -33225,6 +33795,18 @@
{
"vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07487",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07936",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07937",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07938",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
}
],
"(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
@@ -33429,6 +34011,10 @@
{
"vuid": "VUID-vkCmdDraw-None-04914",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ },
+ {
+ "vuid": "VUID-vkCmdDraw-Input-07939",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> contain a location in <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>location</code>"
}
],
"(VK_EXT_extended_dynamic_state2)": [
@@ -33456,7 +34042,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndexed-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexed-None-07888",
@@ -33464,7 +34050,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndexed-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndexed-None-02700",
@@ -33472,19 +34058,19 @@
},
{
"vuid": "VUID-vkCmdDrawIndexed-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdDrawIndexed-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawIndexed-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawIndexed-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawIndexed-viewType-07752",
@@ -33658,7 +34244,7 @@
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawIndexed-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -33670,11 +34256,11 @@
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawIndexed-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdDrawIndexed-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_NV_corner_sampled_image)": [
@@ -33686,61 +34272,61 @@
"!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawIndexed-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawIndexed-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawIndexed-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawIndexed-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexed-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexed-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexed-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexed-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawIndexed-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawIndexed-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawIndexed-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawIndexed-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_VERSION_1_1)": [
@@ -33760,11 +34346,11 @@
"(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawIndexed-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawIndexed-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_EXT_shader_image_atomic_int64)": [
@@ -33841,6 +34427,10 @@
{
"vuid": "VUID-vkCmdDrawIndexed-None-06666",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07934",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
}
],
"(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
@@ -33962,13 +34552,13 @@
"(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07284",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndexed-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
@@ -34090,29 +34680,33 @@
"(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07285",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07286",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07287",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-pNext-07935",
+ "text": " If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
}
],
"(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndexed-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawIndexed-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexed-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
}
],
"(VK_EXT_primitives_generated_query)": [
@@ -34259,6 +34853,18 @@
{
"vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07487",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07936",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07937",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07938",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
}
],
"(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
@@ -34463,6 +35069,10 @@
{
"vuid": "VUID-vkCmdDrawIndexed-None-04914",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-Input-07939",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> contain a location in <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>location</code>"
}
],
"(VK_EXT_extended_dynamic_state2)": [
@@ -34490,7 +35100,7 @@
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-07888",
@@ -34498,7 +35108,7 @@
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-02700",
@@ -34506,19 +35116,19 @@
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-viewType-07752",
@@ -34700,7 +35310,7 @@
"(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -34712,11 +35322,11 @@
"(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_EXT_multi_draw)+(VK_NV_corner_sampled_image)": [
@@ -34728,61 +35338,61 @@
"(VK_EXT_multi_draw)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_EXT_multi_draw)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_EXT_multi_draw)+(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"(VK_EXT_multi_draw)+!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_EXT_multi_draw)+(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_EXT_multi_draw)+(VK_VERSION_1_1)": [
@@ -34802,11 +35412,11 @@
"(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_EXT_multi_draw)+(VK_EXT_shader_image_atomic_int64)": [
@@ -34883,6 +35493,10 @@
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-06666",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07934",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
}
],
"(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
@@ -35004,13 +35618,13 @@
"(VK_EXT_multi_draw)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07284",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_EXT_multi_draw)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
@@ -35132,29 +35746,33 @@
"(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07285",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07286",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07287",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-pNext-07935",
+ "text": " If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
}
],
"(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
}
],
"(VK_EXT_multi_draw)+(VK_EXT_primitives_generated_query)": [
@@ -35301,6 +35919,18 @@
{
"vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07487",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07936",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07937",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07938",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
}
],
"(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
@@ -35505,6 +36135,10 @@
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-04914",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-Input-07939",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> contain a location in <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>location</code>"
}
],
"(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state2)": [
@@ -35532,7 +36166,7 @@
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07888",
@@ -35540,7 +36174,7 @@
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02700",
@@ -35548,19 +36182,19 @@
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewType-07752",
@@ -35754,7 +36388,7 @@
"(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -35766,11 +36400,11 @@
"(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_EXT_multi_draw)+(VK_NV_corner_sampled_image)": [
@@ -35782,61 +36416,61 @@
"(VK_EXT_multi_draw)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_EXT_multi_draw)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_EXT_multi_draw)+(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"(VK_EXT_multi_draw)+!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_EXT_multi_draw)+(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_EXT_multi_draw)+(VK_VERSION_1_1)": [
@@ -35856,11 +36490,11 @@
"(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_EXT_multi_draw)+(VK_EXT_shader_image_atomic_int64)": [
@@ -35937,6 +36571,10 @@
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06666",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07934",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
}
],
"(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
@@ -36058,13 +36696,13 @@
"(VK_EXT_multi_draw)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07284",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_EXT_multi_draw)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
@@ -36186,29 +36824,33 @@
"(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07285",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07286",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07287",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pNext-07935",
+ "text": " If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
}
],
"(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
}
],
"(VK_EXT_multi_draw)+(VK_EXT_primitives_generated_query)": [
@@ -36355,6 +36997,18 @@
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07487",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07936",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07937",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07938",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
}
],
"(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
@@ -36559,6 +37213,10 @@
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04914",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-Input-07939",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> contain a location in <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>location</code>"
}
],
"(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state2)": [
@@ -36586,7 +37244,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndirect-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirect-None-07888",
@@ -36594,7 +37252,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndirect-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndirect-None-02700",
@@ -36602,19 +37260,19 @@
},
{
"vuid": "VUID-vkCmdDrawIndirect-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdDrawIndirect-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawIndirect-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawIndirect-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawIndirect-viewType-07752",
@@ -36820,7 +37478,7 @@
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawIndirect-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -36832,11 +37490,11 @@
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawIndirect-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdDrawIndirect-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_NV_corner_sampled_image)": [
@@ -36848,61 +37506,61 @@
"!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawIndirect-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawIndirect-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawIndirect-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawIndirect-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirect-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirect-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirect-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirect-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawIndirect-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawIndirect-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawIndirect-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawIndirect-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_VERSION_1_1)": [
@@ -36918,11 +37576,11 @@
"(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawIndirect-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawIndirect-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_EXT_shader_image_atomic_int64)": [
@@ -36999,6 +37657,10 @@
{
"vuid": "VUID-vkCmdDrawIndirect-None-06666",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07934",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
}
],
"(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
@@ -37120,13 +37782,13 @@
"(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07284",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndirect-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
@@ -37248,29 +37910,33 @@
"(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07285",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07286",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07287",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-pNext-07935",
+ "text": " If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
}
],
"(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndirect-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawIndirect-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirect-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
}
],
"(VK_EXT_primitives_generated_query)": [
@@ -37417,6 +38083,18 @@
{
"vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07487",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07936",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07937",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07938",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
}
],
"(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
@@ -37615,6 +38293,10 @@
{
"vuid": "VUID-vkCmdDrawIndirect-None-04914",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-Input-07939",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> contain a location in <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>location</code>"
}
],
"(VK_EXT_extended_dynamic_state2)": [
@@ -37654,7 +38336,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-07888",
@@ -37662,7 +38344,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-02700",
@@ -37670,19 +38352,19 @@
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-viewType-07752",
@@ -37908,7 +38590,7 @@
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -37920,11 +38602,11 @@
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_NV_corner_sampled_image)": [
@@ -37936,61 +38618,61 @@
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1)": [
@@ -38006,11 +38688,11 @@
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_image_atomic_int64)": [
@@ -38087,6 +38769,10 @@
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-06666",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07934",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
@@ -38208,13 +38894,13 @@
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07284",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
@@ -38336,29 +39022,33 @@
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07285",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07286",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07287",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-pNext-07935",
+ "text": " If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_primitives_generated_query)": [
@@ -38505,6 +39195,18 @@
{
"vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07487",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07936",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07937",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07938",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
@@ -38703,6 +39405,10 @@
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-04914",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-Input-07939",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> contain a location in <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>location</code>"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state2)": [
@@ -38736,7 +39442,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-07888",
@@ -38744,7 +39450,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-02700",
@@ -38752,19 +39458,19 @@
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-viewType-07752",
@@ -38978,7 +39684,7 @@
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -38990,11 +39696,11 @@
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_NV_corner_sampled_image)": [
@@ -39006,61 +39712,61 @@
"!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_VERSION_1_1)": [
@@ -39076,11 +39782,11 @@
"(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_EXT_shader_image_atomic_int64)": [
@@ -39157,6 +39863,10 @@
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-06666",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07934",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
}
],
"(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
@@ -39278,13 +39988,13 @@
"(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07284",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
@@ -39406,29 +40116,33 @@
"(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07285",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07286",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07287",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-pNext-07935",
+ "text": " If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
}
],
"(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
}
],
"(VK_EXT_primitives_generated_query)": [
@@ -39575,6 +40289,18 @@
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07487",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07936",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07937",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07938",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
}
],
"(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
@@ -39773,6 +40499,10 @@
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-04914",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-Input-07939",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> contain a location in <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>location</code>"
}
],
"(VK_EXT_extended_dynamic_state2)": [
@@ -39812,7 +40542,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07888",
@@ -39820,7 +40550,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02700",
@@ -39828,19 +40558,19 @@
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewType-07752",
@@ -40074,7 +40804,7 @@
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -40086,11 +40816,11 @@
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_NV_corner_sampled_image)": [
@@ -40102,61 +40832,61 @@
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1)": [
@@ -40172,11 +40902,11 @@
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_image_atomic_int64)": [
@@ -40253,6 +40983,10 @@
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06666",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07934",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
@@ -40374,13 +41108,13 @@
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07284",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
@@ -40502,29 +41236,33 @@
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07285",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07286",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07287",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pNext-07935",
+ "text": " If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_primitives_generated_query)": [
@@ -40671,6 +41409,18 @@
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07487",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07936",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07937",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07938",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
@@ -40869,6 +41619,10 @@
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04914",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-Input-07939",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> contain a location in <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>location</code>"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state2)": [
@@ -40902,7 +41656,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07888",
@@ -40910,7 +41664,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02700",
@@ -40918,19 +41672,19 @@
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewType-07752",
@@ -41128,7 +41882,7 @@
"(VK_EXT_transform_feedback)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_EXT_transform_feedback)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -41140,11 +41894,11 @@
"(VK_EXT_transform_feedback)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_EXT_transform_feedback)+(VK_NV_corner_sampled_image)": [
@@ -41156,61 +41910,61 @@
"(VK_EXT_transform_feedback)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_EXT_transform_feedback)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_EXT_transform_feedback)+(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"(VK_EXT_transform_feedback)+!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_EXT_transform_feedback)+(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_EXT_transform_feedback)+(VK_VERSION_1_1)": [
@@ -41226,11 +41980,11 @@
"(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_EXT_transform_feedback)+(VK_EXT_shader_image_atomic_int64)": [
@@ -41307,6 +42061,10 @@
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06666",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07934",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
}
],
"(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
@@ -41428,13 +42186,13 @@
"(VK_EXT_transform_feedback)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07284",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_EXT_transform_feedback)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
@@ -41556,29 +42314,33 @@
"(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07285",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07286",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07287",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pNext-07935",
+ "text": " If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
}
],
"(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
}
],
"(VK_EXT_transform_feedback)+(VK_EXT_primitives_generated_query)": [
@@ -41725,6 +42487,18 @@
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07487",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07936",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07937",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07938",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
}
],
"(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
@@ -41923,6 +42697,10 @@
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04914",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-Input-07939",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> contain a location in <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>location</code>"
}
],
"(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state2)": [
@@ -42046,7 +42824,7 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-07888",
@@ -42054,7 +42832,7 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-02700",
@@ -42062,19 +42840,19 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-viewType-07752",
@@ -42236,7 +43014,7 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -42248,11 +43026,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_corner_sampled_image)": [
@@ -42264,61 +43042,61 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)": [
@@ -42330,11 +43108,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)": [
@@ -42411,6 +43189,10 @@
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-06666",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07934",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
@@ -42524,13 +43306,13 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07284",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
@@ -42652,29 +43434,33 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07285",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07286",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07287",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksNV-pNext-07935",
+ "text": " If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_primitives_generated_query)": [
@@ -42821,6 +43607,18 @@
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07487",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07936",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07937",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07938",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
@@ -43022,7 +43820,7 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07888",
@@ -43030,7 +43828,7 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02700",
@@ -43038,19 +43836,19 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewType-07752",
@@ -43248,7 +44046,7 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -43260,11 +44058,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_corner_sampled_image)": [
@@ -43276,61 +44074,61 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)": [
@@ -43346,11 +44144,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)": [
@@ -43427,6 +44225,10 @@
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06666",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07934",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
@@ -43540,13 +44342,13 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07284",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
@@ -43668,29 +44470,33 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07285",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07286",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07287",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pNext-07935",
+ "text": " If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_primitives_generated_query)": [
@@ -43837,6 +44643,18 @@
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07487",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07936",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07937",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07938",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
@@ -44046,7 +44864,7 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07888",
@@ -44054,7 +44872,7 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02700",
@@ -44062,19 +44880,19 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewType-07752",
@@ -44292,7 +45110,7 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -44304,11 +45122,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_corner_sampled_image)": [
@@ -44320,61 +45138,61 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)": [
@@ -44390,11 +45208,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)": [
@@ -44471,6 +45289,10 @@
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06666",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07934",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
@@ -44584,13 +45406,13 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07284",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
@@ -44712,29 +45534,33 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07285",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07286",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07287",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pNext-07935",
+ "text": " If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_primitives_generated_query)": [
@@ -44881,6 +45707,18 @@
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07487",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07936",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07937",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07938",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
@@ -45088,7 +45926,7 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07888",
@@ -45096,7 +45934,7 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02700",
@@ -45104,19 +45942,19 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-viewType-07752",
@@ -45306,7 +46144,7 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -45318,11 +46156,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_NV_corner_sampled_image)": [
@@ -45334,61 +46172,61 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)": [
@@ -45400,11 +46238,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)": [
@@ -45481,6 +46319,10 @@
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06666",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07934",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
@@ -45594,13 +46436,13 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07284",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
@@ -45722,29 +46564,33 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07285",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07286",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07287",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksEXT-pNext-07935",
+ "text": " If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_primitives_generated_query)": [
@@ -45891,6 +46737,18 @@
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07487",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07936",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07937",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07938",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
@@ -46092,7 +46950,7 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07888",
@@ -46100,7 +46958,7 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02700",
@@ -46108,19 +46966,19 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewType-07752",
@@ -46318,7 +47176,7 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -46330,11 +47188,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_NV_corner_sampled_image)": [
@@ -46346,61 +47204,61 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)": [
@@ -46416,11 +47274,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)": [
@@ -46497,6 +47355,10 @@
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06666",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07934",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
@@ -46610,13 +47472,13 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07284",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
@@ -46738,29 +47600,33 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07285",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07286",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07287",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pNext-07935",
+ "text": " If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_primitives_generated_query)": [
@@ -46907,6 +47773,18 @@
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07487",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07936",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07937",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07938",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
@@ -47144,7 +48022,7 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07888",
@@ -47152,7 +48030,7 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02700",
@@ -47160,19 +48038,19 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewType-07752",
@@ -47390,7 +48268,7 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -47402,11 +48280,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_NV_corner_sampled_image)": [
@@ -47418,61 +48296,61 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)": [
@@ -47488,11 +48366,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)": [
@@ -47569,6 +48447,10 @@
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06666",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07934",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
@@ -47682,13 +48564,13 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07284",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
@@ -47810,29 +48692,33 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07285",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07286",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07287",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pNext-07935",
+ "text": " If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_primitives_generated_query)": [
@@ -47979,6 +48865,18 @@
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07487",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07936",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07937",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07938",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
@@ -48186,7 +49084,7 @@
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07888",
@@ -48194,7 +49092,7 @@
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02700",
@@ -48202,19 +49100,19 @@
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-viewType-07752",
@@ -48384,7 +49282,7 @@
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -48396,11 +49294,11 @@
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_NV_corner_sampled_image)": [
@@ -48412,61 +49310,61 @@
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_1)": [
@@ -48478,11 +49376,11 @@
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_EXT_shader_image_atomic_int64)": [
@@ -48559,6 +49457,10 @@
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-06666",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsPerPixel-07934",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
@@ -48672,13 +49574,13 @@
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07284",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
@@ -48800,29 +49702,33 @@
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07285",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07286",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07287",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawClusterHUAWEI-pNext-07935",
+ "text": " If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_EXT_primitives_generated_query)": [
@@ -48969,6 +49875,18 @@
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07487",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07936",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07937",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07938",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
@@ -49174,7 +50092,7 @@
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07888",
@@ -49182,7 +50100,7 @@
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02700",
@@ -49190,19 +50108,19 @@
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewType-07752",
@@ -49305,18 +50223,6 @@
"text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> 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-vkCmdDrawClusterIndirectHUAWEI-buffer-02708",
- "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-buffer-02709",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
- },
- {
- "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-offset-02710",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-drawCount-02718",
"text": " If the <a href=\"#features-multiDrawIndirect\"><code>multiDrawIndirect</code></a> feature is not enabled, <code>drawCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>"
},
@@ -49329,6 +50235,10 @@
"text": " The current pipeline bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> <strong class=\"purple\">must</strong> contain a shader stage using the <code>ClusterCullingHUAWEI</code> {ExecutionModel}."
},
{
+ "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-offset-07918",
+ "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <a href=\"#VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI\">VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI</a>::<code>indirectBufferOffsetAlignment</code>"
+ },
+ {
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-parameter",
"text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
},
@@ -49388,7 +50298,7 @@
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -49400,11 +50310,11 @@
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_NV_corner_sampled_image)": [
@@ -49416,81 +50326,77 @@
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-02707",
"text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- },
- {
- "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-02711",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_EXT_shader_image_atomic_int64)": [
@@ -49567,6 +50473,10 @@
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-06666",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsPerPixel-07934",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
@@ -49680,13 +50590,13 @@
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07284",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
@@ -49808,29 +50718,33 @@
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07285",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07286",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07287",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pNext-07935",
+ "text": " If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_EXT_primitives_generated_query)": [
@@ -49977,6 +50891,18 @@
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07487",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07936",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07937",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07938",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
@@ -51401,6 +52327,10 @@
"text": " <code>width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxViewportDimensions</code>[0]"
},
{
+ "vuid": "VUID-VkViewport-apiVersion-07917",
+ "text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, the <a href=\"#VK_AMD_negative_viewport_height\">VK_AMD_negative_viewport_height</a> extension is not enabled, and <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, <code>height</code> <strong class=\"purple\">must</strong> be greater than <code>0.0</code>"
+ },
+ {
"vuid": "VUID-VkViewport-height-01773",
"text": " The absolute value of <code>height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxViewportDimensions</code>[1]"
},
@@ -51421,12 +52351,6 @@
"text": " <span class=\"eq\">(<code>y</code> &#43; <code>height</code>)</span> <strong class=\"purple\">must</strong> be less than or equal to <code>viewportBoundsRange</code>[1]"
}
],
- "!(VK_VERSION_1_1,VK_KHR_maintenance1,VK_AMD_negative_viewport_height)": [
- {
- "vuid": "VUID-VkViewport-height-01772",
- "text": " <code>height</code> <strong class=\"purple\">must</strong> be greater than <code>0.0</code>"
- }
- ],
"(VK_VERSION_1_1,VK_KHR_maintenance1,VK_AMD_negative_viewport_height)": [
{
"vuid": "VUID-VkViewport-y-01776",
@@ -51440,11 +52364,11 @@
"(VK_EXT_depth_range_unrestricted)": [
{
"vuid": "VUID-VkViewport-minDepth-01234",
- "text": " Unless <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is enabled <code>minDepth</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
+ "text": " If the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is not enabled, <code>minDepth</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
},
{
"vuid": "VUID-VkViewport-maxDepth-01235",
- "text": " Unless <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is enabled <code>maxDepth</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
+ "text": " If the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is not enabled, <code>maxDepth</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
}
],
"!(VK_EXT_depth_range_unrestricted)": [
@@ -51757,12 +52681,6 @@
]
},
"vkCmdSetSampleLocationsEXT": {
- "(VK_EXT_sample_locations)+!(VK_EXT_extended_dynamic_state3)": [
- {
- "vuid": "VUID-vkCmdSetSampleLocationsEXT-sampleLocationsPerPixel-01529",
- "text": " The <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
- }
- ],
"(VK_EXT_sample_locations)": [
{
"vuid": "VUID-vkCmdSetSampleLocationsEXT-variableSampleLocations-01530",
@@ -53074,11 +53992,11 @@
"(VK_EXT_depth_range_unrestricted)": [
{
"vuid": "VUID-vkCmdSetDepthBounds-minDepthBounds-00600",
- "text": " Unless the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is enabled <code>minDepthBounds</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
+ "text": " If the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is not enabled <code>minDepthBounds</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
},
{
"vuid": "VUID-vkCmdSetDepthBounds-maxDepthBounds-00601",
- "text": " Unless the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is enabled <code>maxDepthBounds</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
+ "text": " If the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is not enabled <code>maxDepthBounds</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
}
],
"!(VK_EXT_depth_range_unrestricted)": [
@@ -54194,7 +55112,7 @@
},
{
"vuid": "VUID-vkCmdDispatch-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdDispatch-None-07888",
@@ -54202,7 +55120,7 @@
},
{
"vuid": "VUID-vkCmdDispatch-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDispatch-None-02700",
@@ -54210,19 +55128,19 @@
},
{
"vuid": "VUID-vkCmdDispatch-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdDispatch-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdDispatch-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdDispatch-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdDispatch-viewType-07752",
@@ -54308,7 +55226,7 @@
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDispatch-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -54320,11 +55238,11 @@
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDispatch-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdDispatch-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_NV_corner_sampled_image)": [
@@ -54336,61 +55254,61 @@
"!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDispatch-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDispatch-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDispatch-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDispatch-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDispatch-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDispatch-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDispatch-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDispatch-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDispatch-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDispatch-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDispatch-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDispatch-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_VERSION_1_1)": [
@@ -54410,11 +55328,11 @@
"(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDispatch-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDispatch-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_EXT_shader_image_atomic_int64)": [
@@ -54496,7 +55414,7 @@
},
{
"vuid": "VUID-vkCmdDispatchIndirect-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdDispatchIndirect-None-07888",
@@ -54504,7 +55422,7 @@
},
{
"vuid": "VUID-vkCmdDispatchIndirect-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDispatchIndirect-None-02700",
@@ -54512,19 +55430,19 @@
},
{
"vuid": "VUID-vkCmdDispatchIndirect-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdDispatchIndirect-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdDispatchIndirect-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdDispatchIndirect-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdDispatchIndirect-viewType-07752",
@@ -54622,7 +55540,7 @@
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDispatchIndirect-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -54634,11 +55552,11 @@
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDispatchIndirect-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdDispatchIndirect-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_NV_corner_sampled_image)": [
@@ -54650,61 +55568,61 @@
"!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDispatchIndirect-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDispatchIndirect-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDispatchIndirect-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDispatchIndirect-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDispatchIndirect-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDispatchIndirect-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDispatchIndirect-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDispatchIndirect-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDispatchIndirect-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDispatchIndirect-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDispatchIndirect-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDispatchIndirect-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_VERSION_1_1)": [
@@ -54720,11 +55638,11 @@
"(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDispatchIndirect-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDispatchIndirect-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_EXT_shader_image_atomic_int64)": [
@@ -54816,7 +55734,7 @@
},
{
"vuid": "VUID-vkCmdDispatchBase-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdDispatchBase-None-07888",
@@ -54824,7 +55742,7 @@
},
{
"vuid": "VUID-vkCmdDispatchBase-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDispatchBase-None-02700",
@@ -54832,19 +55750,19 @@
},
{
"vuid": "VUID-vkCmdDispatchBase-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdDispatchBase-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdDispatchBase-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdDispatchBase-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdDispatchBase-viewType-07752",
@@ -54946,7 +55864,7 @@
"(VK_VERSION_1_1,VK_KHR_device_group)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDispatchBase-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_VERSION_1_1,VK_KHR_device_group)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -54958,11 +55876,11 @@
"(VK_VERSION_1_1,VK_KHR_device_group)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDispatchBase-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdDispatchBase-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_VERSION_1_1,VK_KHR_device_group)+(VK_NV_corner_sampled_image)": [
@@ -54974,61 +55892,61 @@
"(VK_VERSION_1_1,VK_KHR_device_group)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDispatchBase-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDispatchBase-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_VERSION_1_1,VK_KHR_device_group)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDispatchBase-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDispatchBase-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDispatchBase-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDispatchBase-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDispatchBase-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdDispatchBase-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"(VK_VERSION_1_1,VK_KHR_device_group)+!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDispatchBase-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDispatchBase-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdDispatchBase-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdDispatchBase-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_1)": [
@@ -55048,11 +55966,11 @@
"(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDispatchBase-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDispatchBase-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_shader_image_atomic_int64)": [
@@ -55134,7 +56052,7 @@
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-07888",
@@ -55142,7 +56060,7 @@
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02700",
@@ -55150,19 +56068,19 @@
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-viewType-07752",
@@ -55240,7 +56158,7 @@
"(VK_HUAWEI_subpass_shading)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_HUAWEI_subpass_shading)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -55252,11 +56170,11 @@
"(VK_HUAWEI_subpass_shading)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_HUAWEI_subpass_shading)+(VK_NV_corner_sampled_image)": [
@@ -55268,61 +56186,61 @@
"(VK_HUAWEI_subpass_shading)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_HUAWEI_subpass_shading)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_HUAWEI_subpass_shading)+(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"(VK_HUAWEI_subpass_shading)+!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_HUAWEI_subpass_shading)+(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_1)": [
@@ -55334,11 +56252,11 @@
"(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_HUAWEI_subpass_shading)+(VK_EXT_shader_image_atomic_int64)": [
@@ -55742,7 +56660,7 @@
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07888",
@@ -55750,7 +56668,7 @@
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02700",
@@ -55758,19 +56676,19 @@
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewType-07752",
@@ -55952,7 +56870,7 @@
"(VK_NV_device_generated_commands)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_NV_device_generated_commands)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -55964,11 +56882,11 @@
"(VK_NV_device_generated_commands)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_NV_device_generated_commands)+(VK_NV_corner_sampled_image)": [
@@ -55980,61 +56898,61 @@
"(VK_NV_device_generated_commands)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_device_generated_commands)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_NV_device_generated_commands)+(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"(VK_NV_device_generated_commands)+!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_device_generated_commands)+(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_device_generated_commands)+(VK_VERSION_1_1)": [
@@ -56050,11 +56968,11 @@
"(VK_NV_device_generated_commands)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_device_generated_commands)+(VK_EXT_shader_image_atomic_int64)": [
@@ -56131,6 +57049,10 @@
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06666",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07934",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
}
],
"(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
@@ -56252,13 +57174,13 @@
"(VK_NV_device_generated_commands)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07284",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, and none of the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension, the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension, or the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is enabled, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_NV_device_generated_commands)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
+ "text": " If rasterization is not disabled in the bound graphics pipeline, 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, then <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
}
],
"(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
@@ -56380,29 +57302,33 @@
"(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07285",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07286",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07287",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pNext-07935",
+ "text": " If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>"
}
],
"(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
+ "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
+ "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>"
}
],
"(VK_NV_device_generated_commands)+(VK_EXT_primitives_generated_query)": [
@@ -56549,6 +57475,18 @@
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07487",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07936",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07937",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <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 the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07938",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>"
}
],
"(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)": [
@@ -56747,6 +57685,10 @@
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04914",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-Input-07939",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> contain a location in <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>location</code>"
}
],
"(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state2)": [
@@ -58797,16 +59739,8 @@
],
"(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_GOOGLE_surfaceless_query)": [
{
- "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-pSurfaceInfo-06526",
- "text": " When passed as the <code>pSurfaceInfo</code> parameter of <a href=\"#vkGetPhysicalDeviceSurfaceCapabilities2KHR\">vkGetPhysicalDeviceSurfaceCapabilities2KHR</a>, if the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is enabled and the <code>pNext</code> chain of the <code>pSurfaceCapabilities</code> parameter includes <code>VkSurfaceProtectedCapabilitiesKHR</code>, then <code>surface</code> <strong class=\"purple\">can</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>. Otherwise, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-pSurfaceInfo-06527",
- "text": " When passed as the <code>pSurfaceInfo</code> parameter of <a href=\"#vkGetPhysicalDeviceSurfaceFormats2KHR\">vkGetPhysicalDeviceSurfaceFormats2KHR</a>, if the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is enabled, then <code>surface</code> <strong class=\"purple\">can</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>. Otherwise, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-pSurfaceInfo-06528",
- "text": " When passed as the <code>pSurfaceInfo</code> parameter of <a href=\"#vkGetPhysicalDeviceSurfacePresentModes2EXT\">vkGetPhysicalDeviceSurfacePresentModes2EXT</a>, if the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is enabled, then <code>surface</code> <strong class=\"purple\">can</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>. Otherwise, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
+ "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-07919",
+ "text": " If the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is not enabled, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
}
],
"(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+!(VK_GOOGLE_surfaceless_query)": [
@@ -63550,7 +64484,7 @@
},
{
"vuid": "VUID-vkCmdTraceRaysNV-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdTraceRaysNV-None-07888",
@@ -63558,7 +64492,7 @@
},
{
"vuid": "VUID-vkCmdTraceRaysNV-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysNV-None-02700",
@@ -63566,19 +64500,19 @@
},
{
"vuid": "VUID-vkCmdTraceRaysNV-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdTraceRaysNV-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdTraceRaysNV-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdTraceRaysNV-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdTraceRaysNV-viewType-07752",
@@ -63768,7 +64702,7 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdTraceRaysNV-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -63780,11 +64714,11 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdTraceRaysNV-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysNV-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_NV_corner_sampled_image)": [
@@ -63796,61 +64730,61 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdTraceRaysNV-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdTraceRaysNV-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdTraceRaysNV-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdTraceRaysNV-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdTraceRaysNV-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdTraceRaysNV-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdTraceRaysNV-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdTraceRaysNV-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdTraceRaysNV-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdTraceRaysNV-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdTraceRaysNV-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdTraceRaysNV-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_1)": [
@@ -63862,11 +64796,11 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdTraceRaysNV-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdTraceRaysNV-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_shader_image_atomic_int64)": [
@@ -63942,7 +64876,7 @@
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-07888",
@@ -63950,7 +64884,7 @@
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-02700",
@@ -63958,19 +64892,19 @@
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-viewType-07752",
@@ -64196,7 +65130,7 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -64208,11 +65142,11 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdTraceRaysKHR-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_corner_sampled_image)": [
@@ -64224,61 +65158,61 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdTraceRaysKHR-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdTraceRaysKHR-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1)": [
@@ -64290,11 +65224,11 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_image_atomic_int64)": [
@@ -64450,7 +65384,7 @@
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-07888",
@@ -64458,7 +65392,7 @@
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02700",
@@ -64466,19 +65400,19 @@
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-viewType-07752",
@@ -64708,7 +65642,7 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -64720,11 +65654,11 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_corner_sampled_image)": [
@@ -64736,61 +65670,61 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1)": [
@@ -64802,11 +65736,11 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_image_atomic_int64)": [
@@ -64908,7 +65842,7 @@
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-07888",
@@ -64916,7 +65850,7 @@
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02700",
@@ -64924,19 +65858,19 @@
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
+ "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-viewType-07752",
@@ -65042,7 +65976,7 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
@@ -65054,11 +65988,11 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_NV_corner_sampled_image)": [
@@ -65070,61 +66004,61 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08114",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08115",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdBindDescriptorSets</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08116",
- "text": " Descriptors in bound descriptor buffers, specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command and the bound <code>VkPipeline</code> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08117",
- "text": " If the descriptors used by the <code>VkPipeline</code> bound to the pipeline bind point were specified via <code>vkCmdSetDescriptorBufferOffsetsEXT</code>, the bound <code>VkPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
+ "text": " If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08119",
- "text": " If a descriptor is dynamically used with a <code>VkPipeline</code> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
+ "text": " If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+!(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and if the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_pipeline_robustness)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-uniformBuffers-06935",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-storageBuffers-06936",
- "text": " If any stage of the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
+ "text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_1)": [
@@ -65136,11 +66070,11 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_shader_image_atomic_int64)": [
@@ -66402,7 +67336,7 @@
},
{
"vuid": "VUID-VkVideoReferenceSlotInfoKHR-pNext-pNext",
- "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoDecodeH264DpbSlotInfoKHR\">VkVideoDecodeH264DpbSlotInfoKHR</a> or <a href=\"#VkVideoDecodeH265DpbSlotInfoKHR\">VkVideoDecodeH265DpbSlotInfoKHR</a>"
+ "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoDecodeH264DpbSlotInfoKHR\">VkVideoDecodeH264DpbSlotInfoKHR</a>, <a href=\"#VkVideoDecodeH265DpbSlotInfoKHR\">VkVideoDecodeH265DpbSlotInfoKHR</a>, <a href=\"#VkVideoEncodeH264DpbSlotInfoEXT\">VkVideoEncodeH264DpbSlotInfoEXT</a>, or <a href=\"#VkVideoEncodeH265DpbSlotInfoEXT\">VkVideoEncodeH265DpbSlotInfoEXT</a>"
},
{
"vuid": "VUID-VkVideoReferenceSlotInfoKHR-sType-unique",
@@ -66520,7 +67454,7 @@
"(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
{
"vuid": "VUID-VkVideoCodingControlInfoKHR-flags-07021",
- "text": " If <code>flags</code> includes <code>VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR</code>, the <code>rateControlMode</code> member of <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a> included in the <code>pNext</code> chain is not <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code>, and the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH264RateControlInfoEXT\">VkVideoEncodeH264RateControlInfoEXT</a> structure"
+ "text": " If <code>flags</code> includes <code>VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR</code>, the <code>rateControlMode</code> member of <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a> included in the <code>pNext</code> chain is not <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR</code> or <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR</code>, and the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH264RateControlInfoEXT\">VkVideoEncodeH264RateControlInfoEXT</a> structure"
},
{
"vuid": "VUID-VkVideoCodingControlInfoKHR-pNext-07022",
@@ -66534,7 +67468,7 @@
"(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
{
"vuid": "VUID-VkVideoCodingControlInfoKHR-flags-07024",
- "text": " If <code>flags</code> includes <code>VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR</code>, the <code>rateControlMode</code> member of <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a> included in the <code>pNext</code> chain is not <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code>, and the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH265RateControlInfoEXT\">VkVideoEncodeH265RateControlInfoEXT</a> structure"
+ "text": " If <code>flags</code> includes <code>VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR</code>, the <code>rateControlMode</code> member of <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a> included in the <code>pNext</code> chain is not <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR</code> or <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR</code>, and the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH265RateControlInfoEXT\">VkVideoEncodeH265RateControlInfoEXT</a> structure"
},
{
"vuid": "VUID-VkVideoCodingControlInfoKHR-pNext-07025",
@@ -67124,7 +68058,7 @@
},
{
"vuid": "VUID-VkVideoEncodeInfoKHR-pNext-pNext",
- "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoEncodeH264EmitPictureParametersInfoEXT\">VkVideoEncodeH264EmitPictureParametersInfoEXT</a>, <a href=\"#VkVideoEncodeH264VclFrameInfoEXT\">VkVideoEncodeH264VclFrameInfoEXT</a>, <a href=\"#VkVideoEncodeH265EmitPictureParametersInfoEXT\">VkVideoEncodeH265EmitPictureParametersInfoEXT</a>, or <a href=\"#VkVideoEncodeH265VclFrameInfoEXT\">VkVideoEncodeH265VclFrameInfoEXT</a>"
+ "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoEncodeH264VclFrameInfoEXT\">VkVideoEncodeH264VclFrameInfoEXT</a> or <a href=\"#VkVideoEncodeH265VclFrameInfoEXT\">VkVideoEncodeH265VclFrameInfoEXT</a>"
},
{
"vuid": "VUID-VkVideoEncodeInfoKHR-sType-unique",
@@ -67135,8 +68069,8 @@
"text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
},
{
- "vuid": "VUID-VkVideoEncodeInfoKHR-dstBitstreamBuffer-parameter",
- "text": " <code>dstBitstreamBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
+ "vuid": "VUID-VkVideoEncodeInfoKHR-dstBuffer-parameter",
+ "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
},
{
"vuid": "VUID-VkVideoEncodeInfoKHR-srcPictureResource-parameter",
@@ -67164,15 +68098,11 @@
},
{
"vuid": "VUID-VkVideoEncodeRateControlInfoKHR-rateControlMode-parameter",
- "text": " <code>rateControlMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeRateControlModeFlagBitsKHR\">VkVideoEncodeRateControlModeFlagBitsKHR</a> value"
+ "text": " If <code>rateControlMode</code> is not <code>0</code>, <code>rateControlMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeRateControlModeFlagBitsKHR\">VkVideoEncodeRateControlModeFlagBitsKHR</a> value"
},
{
- "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-pLayerConfigs-parameter",
- "text": " <code>pLayerConfigs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>layerCount</code> valid <a href=\"#VkVideoEncodeRateControlLayerInfoKHR\">VkVideoEncodeRateControlLayerInfoKHR</a> structures"
- },
- {
- "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-layerCount-arraylength",
- "text": " <code>layerCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+ "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-pLayers-parameter",
+ "text": " If <code>layerCount</code> is not <code>0</code>, <code>pLayers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>layerCount</code> valid <a href=\"#VkVideoEncodeRateControlLayerInfoKHR\">VkVideoEncodeRateControlLayerInfoKHR</a> structures"
}
]
},
@@ -67271,16 +68201,16 @@
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT</code>"
},
{
- "vuid": "VUID-VkVideoEncodeH264VclFrameInfoEXT-pReferenceFinalLists-parameter",
- "text": " If <code>pReferenceFinalLists</code> is not <code>NULL</code>, <code>pReferenceFinalLists</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeH264ReferenceListsInfoEXT\">VkVideoEncodeH264ReferenceListsInfoEXT</a> structure"
+ "vuid": "VUID-VkVideoEncodeH264VclFrameInfoEXT-pStdReferenceFinalLists-parameter",
+ "text": " If <code>pStdReferenceFinalLists</code> is not <code>NULL</code>, <code>pStdReferenceFinalLists</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264ReferenceListsInfo</code> value"
},
{
"vuid": "VUID-VkVideoEncodeH264VclFrameInfoEXT-pNaluSliceEntries-parameter",
"text": " <code>pNaluSliceEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>naluSliceEntryCount</code> valid <a href=\"#VkVideoEncodeH264NaluSliceInfoEXT\">VkVideoEncodeH264NaluSliceInfoEXT</a> structures"
},
{
- "vuid": "VUID-VkVideoEncodeH264VclFrameInfoEXT-pCurrentPictureInfo-parameter",
- "text": " <code>pCurrentPictureInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264PictureInfo</code> value"
+ "vuid": "VUID-VkVideoEncodeH264VclFrameInfoEXT-pStdPictureInfo-parameter",
+ "text": " <code>pStdPictureInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264PictureInfo</code> value"
},
{
"vuid": "VUID-VkVideoEncodeH264VclFrameInfoEXT-naluSliceEntryCount-arraylength",
@@ -67299,12 +68229,12 @@
"text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
},
{
- "vuid": "VUID-VkVideoEncodeH264NaluSliceInfoEXT-pReferenceFinalLists-parameter",
- "text": " If <code>pReferenceFinalLists</code> is not <code>NULL</code>, <code>pReferenceFinalLists</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeH264ReferenceListsInfoEXT\">VkVideoEncodeH264ReferenceListsInfoEXT</a> structure"
+ "vuid": "VUID-VkVideoEncodeH264NaluSliceInfoEXT-pStdReferenceFinalLists-parameter",
+ "text": " If <code>pStdReferenceFinalLists</code> is not <code>NULL</code>, <code>pStdReferenceFinalLists</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264ReferenceListsInfo</code> value"
},
{
- "vuid": "VUID-VkVideoEncodeH264NaluSliceInfoEXT-pSliceHeaderStd-parameter",
- "text": " <code>pSliceHeaderStd</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264SliceHeader</code> value"
+ "vuid": "VUID-VkVideoEncodeH264NaluSliceInfoEXT-pStdSliceHeader-parameter",
+ "text": " <code>pStdSliceHeader</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264SliceHeader</code> value"
}
]
},
@@ -67315,55 +68245,11 @@
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT</code>"
},
{
- "vuid": "VUID-VkVideoEncodeH264DpbSlotInfoEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
"vuid": "VUID-VkVideoEncodeH264DpbSlotInfoEXT-pStdReferenceInfo-parameter",
"text": " <code>pStdReferenceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264ReferenceInfo</code> value"
}
]
},
- "VkVideoEncodeH264ReferenceListsInfoEXT": {
- "(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
- {
- "vuid": "VUID-VkVideoEncodeH264ReferenceListsInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264ReferenceListsInfoEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264ReferenceListsInfoEXT-pReferenceList0Entries-parameter",
- "text": " If <code>referenceList0EntryCount</code> is not <code>0</code>, <code>pReferenceList0Entries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>referenceList0EntryCount</code> valid <a href=\"#VkVideoEncodeH264DpbSlotInfoEXT\">VkVideoEncodeH264DpbSlotInfoEXT</a> structures"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264ReferenceListsInfoEXT-pReferenceList1Entries-parameter",
- "text": " If <code>referenceList1EntryCount</code> is not <code>0</code>, <code>pReferenceList1Entries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>referenceList1EntryCount</code> valid <a href=\"#VkVideoEncodeH264DpbSlotInfoEXT\">VkVideoEncodeH264DpbSlotInfoEXT</a> structures"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264ReferenceListsInfoEXT-pMemMgmtCtrlOperations-parameter",
- "text": " <code>pMemMgmtCtrlOperations</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264RefMemMgmtCtrlOperations</code> value"
- }
- ]
- },
- "VkVideoEncodeH264EmitPictureParametersInfoEXT": {
- "(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
- {
- "vuid": "VUID-VkVideoEncodeH264EmitPictureParametersInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264EmitPictureParametersInfoEXT-ppsIdEntries-parameter",
- "text": " <code>ppsIdEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>ppsIdEntryCount</code> <code>uint8_t</code> values"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264EmitPictureParametersInfoEXT-ppsIdEntryCount-arraylength",
- "text": " <code>ppsIdEntryCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
"VkVideoEncodeH264RateControlInfoEXT": {
"(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
{
@@ -67380,11 +68266,11 @@
"(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
{
"vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-rateControlMode-06474",
- "text": " When <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code>, both <code>useMinQp</code> and <code>useMaxQp</code> must be set to <code>VK_TRUE</code>"
+ "text": " When <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR</code>, both <code>useMinQp</code> and <code>useMaxQp</code> must be set to <code>VK_TRUE</code>"
},
{
"vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-rateControlMode-06475",
- "text": " When <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code>, the values provided in <code>minQP</code> must be identical to those provided in <code>maxQp</code>"
+ "text": " When <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR</code>, the values provided in <code>minQP</code> must be identical to those provided in <code>maxQp</code>"
},
{
"vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-sType-sType",
@@ -67507,16 +68393,16 @@
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT</code>"
},
{
- "vuid": "VUID-VkVideoEncodeH265VclFrameInfoEXT-pReferenceFinalLists-parameter",
- "text": " If <code>pReferenceFinalLists</code> is not <code>NULL</code>, <code>pReferenceFinalLists</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeH265ReferenceListsInfoEXT\">VkVideoEncodeH265ReferenceListsInfoEXT</a> structure"
+ "vuid": "VUID-VkVideoEncodeH265VclFrameInfoEXT-pStdReferenceFinalLists-parameter",
+ "text": " If <code>pStdReferenceFinalLists</code> is not <code>NULL</code>, <code>pStdReferenceFinalLists</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265ReferenceListsInfo</code> value"
},
{
"vuid": "VUID-VkVideoEncodeH265VclFrameInfoEXT-pNaluSliceSegmentEntries-parameter",
"text": " <code>pNaluSliceSegmentEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>naluSliceSegmentEntryCount</code> valid <a href=\"#VkVideoEncodeH265NaluSliceSegmentInfoEXT\">VkVideoEncodeH265NaluSliceSegmentInfoEXT</a> structures"
},
{
- "vuid": "VUID-VkVideoEncodeH265VclFrameInfoEXT-pCurrentPictureInfo-parameter",
- "text": " <code>pCurrentPictureInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265PictureInfo</code> value"
+ "vuid": "VUID-VkVideoEncodeH265VclFrameInfoEXT-pStdPictureInfo-parameter",
+ "text": " <code>pStdPictureInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265PictureInfo</code> value"
},
{
"vuid": "VUID-VkVideoEncodeH265VclFrameInfoEXT-naluSliceSegmentEntryCount-arraylength",
@@ -67535,12 +68421,12 @@
"text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
},
{
- "vuid": "VUID-VkVideoEncodeH265NaluSliceSegmentInfoEXT-pReferenceFinalLists-parameter",
- "text": " If <code>pReferenceFinalLists</code> is not <code>NULL</code>, <code>pReferenceFinalLists</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeH265ReferenceListsInfoEXT\">VkVideoEncodeH265ReferenceListsInfoEXT</a> structure"
+ "vuid": "VUID-VkVideoEncodeH265NaluSliceSegmentInfoEXT-pStdReferenceFinalLists-parameter",
+ "text": " If <code>pStdReferenceFinalLists</code> is not <code>NULL</code>, <code>pStdReferenceFinalLists</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265ReferenceListsInfo</code> value"
},
{
- "vuid": "VUID-VkVideoEncodeH265NaluSliceSegmentInfoEXT-pSliceSegmentHeaderStd-parameter",
- "text": " <code>pSliceSegmentHeaderStd</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265SliceSegmentHeader</code> value"
+ "vuid": "VUID-VkVideoEncodeH265NaluSliceSegmentInfoEXT-pStdSliceSegmentHeader-parameter",
+ "text": " <code>pStdSliceSegmentHeader</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265SliceSegmentHeader</code> value"
}
]
},
@@ -67551,51 +68437,11 @@
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT</code>"
},
{
- "vuid": "VUID-VkVideoEncodeH265DpbSlotInfoEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
"vuid": "VUID-VkVideoEncodeH265DpbSlotInfoEXT-pStdReferenceInfo-parameter",
"text": " <code>pStdReferenceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265ReferenceInfo</code> value"
}
]
},
- "VkVideoEncodeH265ReferenceListsInfoEXT": {
- "(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
- {
- "vuid": "VUID-VkVideoEncodeH265ReferenceListsInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265ReferenceListsInfoEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265ReferenceListsInfoEXT-pReferenceList0Entries-parameter",
- "text": " If <code>referenceList0EntryCount</code> is not <code>0</code>, <code>pReferenceList0Entries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>referenceList0EntryCount</code> valid <a href=\"#VkVideoEncodeH265DpbSlotInfoEXT\">VkVideoEncodeH265DpbSlotInfoEXT</a> structures"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265ReferenceListsInfoEXT-pReferenceList1Entries-parameter",
- "text": " If <code>referenceList1EntryCount</code> is not <code>0</code>, <code>pReferenceList1Entries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>referenceList1EntryCount</code> valid <a href=\"#VkVideoEncodeH265DpbSlotInfoEXT\">VkVideoEncodeH265DpbSlotInfoEXT</a> structures"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265ReferenceListsInfoEXT-pReferenceModifications-parameter",
- "text": " <code>pReferenceModifications</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265ReferenceModifications</code> value"
- }
- ]
- },
- "VkVideoEncodeH265EmitPictureParametersInfoEXT": {
- "(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
- {
- "vuid": "VUID-VkVideoEncodeH265EmitPictureParametersInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265EmitPictureParametersInfoEXT-ppsIdEntries-parameter",
- "text": " If <code>ppsIdEntryCount</code> is not <code>0</code>, <code>ppsIdEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>ppsIdEntryCount</code> <code>uint8_t</code> values"
- }
- ]
- },
"VkVideoEncodeH265RateControlInfoEXT": {
"(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
{
@@ -67612,11 +68458,11 @@
"(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
{
"vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-rateControlMode-06476",
- "text": " When <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code>, both <code>useMinQp</code> and <code>useMaxQp</code> must be set to <code>VK_TRUE</code>"
+ "text": " When <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR</code>, both <code>useMinQp</code> and <code>useMaxQp</code> must be set to <code>VK_TRUE</code>"
},
{
"vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-rateControlMode-06477",
- "text": " When <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code>, the values provided in <code>minQP</code> must be identical to those provided in <code>maxQp</code>"
+ "text": " When <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR</code>, the values provided in <code>minQP</code> must be identical to those provided in <code>maxQp</code>"
},
{
"vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-sType-sType",
@@ -71205,6 +72051,14 @@
"text": " If the <strong>Scope</strong> for memory is <strong>Invocation</strong>, then memory semantics <strong class=\"purple\">must</strong> be <strong>None</strong>"
},
{
+ "vuid": "VUID-StandaloneSpirv-None-04642",
+ "text": " <strong>Scope</strong> for <a href=\"#shaders-group-operations\">group operations</a> <strong class=\"purple\">must</strong> be limited to <strong>Subgroup</strong>"
+ },
+ {
+ "vuid": "VUID-StandaloneSpirv-SubgroupVoteKHR-07951",
+ "text": " If none of the <code>SubgroupVoteKHR</code>, <code>GroupNonUniform</code>, or <code>SubgroupBallotKHR</code> capabilities are declared, <strong>Scope</strong> for memory <strong class=\"purple\">must</strong> not be <strong>Subgroup</strong>"
+ },
+ {
"vuid": "VUID-StandaloneSpirv-None-04643",
"text": " <strong>Storage Class</strong> <strong class=\"purple\">must</strong> be limited to <strong>UniformConstant</strong>, <strong>Input</strong>, <strong>Uniform</strong>, <strong>Output</strong>, <strong>Workgroup</strong>, <strong>Private</strong>, <strong>Function</strong>, <strong>PushConstant</strong>, <strong>Image</strong>, <strong>StorageBuffer</strong>, <strong>RayPayloadKHR</strong>, <strong>IncomingRayPayloadKHR</strong>, <strong>HitAttributeKHR</strong>, <strong>CallableDataKHR</strong>, <strong>IncomingCallableDataKHR</strong>, <strong>ShaderRecordBufferKHR</strong>, or <strong>PhysicalStorageBuffer</strong>"
},
@@ -71664,18 +72518,6 @@
"vuid": "VUID-StandaloneSpirv-Input-07290",
"text": " Variables with a storage class of <code>Input</code> or <code>Output</code> and a type of <code>OpTypeBool</code> <strong class=\"purple\">must</strong> be decorated with the <code>BuiltIn</code> decoration"
}
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-StandaloneSpirv-None-04642",
- "text": " <strong>Scope</strong> for <a href=\"#shaders-group-operations\">group operations</a> <strong class=\"purple\">must</strong> be limited to <strong>Subgroup</strong>"
- }
- ],
- "!(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-StandaloneSpirv-SubgroupVoteKHR-06997",
- "text": " If the <code>SubgroupVoteKHR</code> or <code>SubgroupBallotKHR</code> capability is not declared, <strong>Scope</strong> for memory <strong class=\"purple\">must</strong> not be <strong>Subgroup</strong>"
- }
]
},
"RuntimeSpirv": {
@@ -71709,6 +72551,36 @@
"text": " If <a href=\"#features-shaderStorageImageReadWithoutFormat\"><code>shaderStorageImageReadWithoutFormat</code></a> is not enabled, any variable created with a &#8220;Type&#8221; of <code>OpTypeImage</code> that has a &#8220;Sampled&#8221; operand of 2 and an &#8220;Image Format&#8221; operand of <code>Unknown</code> <strong class=\"purple\">must</strong> be decorated with <code>NonReadable</code>"
}
],
+ "(VK_VERSION_1_3)+!(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-RuntimeSpirv-apiVersion-07952",
+ "text": " If <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.3, and <a href=\"#features-shaderStorageImageWriteWithoutFormat\"><code>shaderStorageImageWriteWithoutFormat</code></a> is not enabled, any variable created with a &#8220;Type&#8221; of <code>OpTypeImage</code> that has a &#8220;Sampled&#8221; operand of 2 and an &#8220;Image Format&#8221; operand of <code>Unknown</code> <strong class=\"purple\">must</strong> be decorated with <code>NonWritable</code>"
+ },
+ {
+ "vuid": "VUID-RuntimeSpirv-apiVersion-07953",
+ "text": " If <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.3, and <a href=\"#features-shaderStorageImageReadWithoutFormat\"><code>shaderStorageImageReadWithoutFormat</code></a> is not enabled, any variable created with a &#8220;Type&#8221; of <code>OpTypeImage</code> that has a &#8220;Sampled&#8221; operand of 2 and an &#8220;Image Format&#8221; operand of <code>Unknown</code> <strong class=\"purple\">must</strong> be decorated with <code>NonReadable</code>"
+ }
+ ],
+ "(VK_VERSION_1_3)+(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-RuntimeSpirv-apiVersion-07954",
+ "text": " If <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.3, the <a href=\"#VK_KHR_format_feature_flags2\">VK_KHR_format_feature_flags2</a> extension is not enabled, and <a href=\"#features-shaderStorageImageWriteWithoutFormat\"><code>shaderStorageImageWriteWithoutFormat</code></a> is not enabled, any variable created with a &#8220;Type&#8221; of <code>OpTypeImage</code> that has a &#8220;Sampled&#8221; operand of 2 and an &#8220;Image Format&#8221; operand of <code>Unknown</code> <strong class=\"purple\">must</strong> be decorated with <code>NonWritable</code>"
+ },
+ {
+ "vuid": "VUID-RuntimeSpirv-apiVersion-07955",
+ "text": " If <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.3, the <a href=\"#VK_KHR_format_feature_flags2\">VK_KHR_format_feature_flags2</a> extension is not enabled, and <a href=\"#features-shaderStorageImageReadWithoutFormat\"><code>shaderStorageImageReadWithoutFormat</code></a> is not enabled, any variable created with a &#8220;Type&#8221; of <code>OpTypeImage</code> that has a &#8220;Sampled&#8221; operand of 2 and an &#8220;Image Format&#8221; operand of <code>Unknown</code> <strong class=\"purple\">must</strong> be decorated with <code>NonReadable</code>"
+ }
+ ],
+ "(VK_KHR_format_feature_flags2)+!(VK_VERSION_1_3)": [
+ {
+ "vuid": "VUID-RuntimeSpirv-shaderStorageImageWriteWithoutFormat-07956",
+ "text": " If the <a href=\"#VK_KHR_format_feature_flags2\">VK_KHR_format_feature_flags2</a> extension is not enabled, and <a href=\"#features-shaderStorageImageWriteWithoutFormat\"><code>shaderStorageImageWriteWithoutFormat</code></a> is not enabled, any variable created with a &#8220;Type&#8221; of <code>OpTypeImage</code> that has a &#8220;Sampled&#8221; operand of 2 and an &#8220;Image Format&#8221; operand of <code>Unknown</code> <strong class=\"purple\">must</strong> be decorated with <code>NonWritable</code>"
+ },
+ {
+ "vuid": "VUID-RuntimeSpirv-shaderStorageImageReadWithoutFormat-07957",
+ "text": " If the <a href=\"#VK_KHR_format_feature_flags2\">VK_KHR_format_feature_flags2</a> extension is not enabled, and <a href=\"#features-shaderStorageImageReadWithoutFormat\"><code>shaderStorageImageReadWithoutFormat</code></a> is not enabled, any variable created with a &#8220;Type&#8221; of <code>OpTypeImage</code> that has a &#8220;Sampled&#8221; operand of 2 and an &#8220;Image Format&#8221; operand of <code>Unknown</code> <strong class=\"purple\">must</strong> be decorated with <code>NonReadable</code>"
+ }
+ ],
"core": [
{
"vuid": "VUID-RuntimeSpirv-OpImageWrite-07112",
diff --git a/registry/video.xml b/registry/video.xml
index 18f5952..c6a56e1 100644
--- a/registry/video.xml
+++ b/registry/video.xml
@@ -33,7 +33,7 @@ The current public version of video.xml is maintained in the default branch
<!-- vulkan_video_codec_h264std_encode.h macros -->
<type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">// Vulkan 0.9 provisional Vulkan video H.264 encode std specification version number
-#define <name>VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_8</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(0, 9, 8)</type>
+#define <name>VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_9</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(0, 9, 9)</type>
<!-- vulkan_video_codec_h265std_decode.h macros -->
<type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">
@@ -41,7 +41,7 @@ The current public version of video.xml is maintained in the default branch
<!-- vulkan_video_codec_h265std_encode.h macros -->
<type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">// Vulkan 0.9 provisional Vulkan video H.265 encode std specification version number
-#define <name>VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_9</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(0, 9, 9)</type>
+#define <name>VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_10</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(0, 9, 10)</type>
<!-- vulkan_video_codec_h264std.h enumerated types -->
<type name="StdVideoH264ChromaFormatIdc" category="enum"/>
@@ -279,9 +279,9 @@ The current public version of video.xml is maintained in the default branch
<type category="struct" name="StdVideoEncodeH264ReferenceInfoFlags">
<member><type>uint32_t</type> <name>used_for_long_term_reference</name> : 1<comment>: A picture that is marked as "used for long-term reference", derived binary value from clause 8.2.5.1 Sequence of operations for decoded reference picture marking process</comment></member>
</type>
- <type category="struct" name="StdVideoEncodeH264RefMgmtFlags">
- <member><type>uint32_t</type> <name>ref_pic_list_modification_l0_flag</name> : 1</member>
- <member><type>uint32_t</type> <name>ref_pic_list_modification_l1_flag</name> : 1</member>
+ <type category="struct" name="StdVideoEncodeH264ReferenceListsInfoFlags">
+ <member><type>uint32_t</type> <name>ref_pic_list_modification_flag_l0</name> : 1</member>
+ <member><type>uint32_t</type> <name>ref_pic_list_modification_flag_l1</name> : 1</member>
</type>
<type category="struct" name="StdVideoEncodeH264RefListModEntry">
<member><type>StdVideoH264ModificationOfPicNumsIdc</type> <name>modification_of_pic_nums_idc</name></member>
@@ -295,25 +295,32 @@ The current public version of video.xml is maintained in the default branch
<member><type>uint16_t</type> <name>long_term_frame_idx</name></member>
<member><type>uint16_t</type> <name>max_long_term_frame_idx_plus1</name></member>
</type>
- <type category="struct" name="StdVideoEncodeH264RefMemMgmtCtrlOperations">
- <member><type>StdVideoEncodeH264RefMgmtFlags</type> <name>flags</name></member>
+ <type category="struct" name="StdVideoEncodeH264ReferenceListsInfo">
+ <member><type>StdVideoEncodeH264ReferenceListsInfoFlags</type> <name>flags</name></member>
+ <member><type>uint8_t</type> <name>refPicList0EntryCount</name><comment>num_ref_idx_l0_active_minus1 plus one</comment></member>
+ <member><type>uint8_t</type> <name>refPicList1EntryCount</name><comment>num_ref_idx_l1_active_minus1 plus one</comment></member>
<member><type>uint8_t</type> <name>refList0ModOpCount</name></member>
- <member>const <type>StdVideoEncodeH264RefListModEntry</type>* <name>pRefList0ModOperations</name></member>
<member><type>uint8_t</type> <name>refList1ModOpCount</name></member>
- <member>const <type>StdVideoEncodeH264RefListModEntry</type>* <name>pRefList1ModOperations</name></member>
<member><type>uint8_t</type> <name>refPicMarkingOpCount</name></member>
- <member>const <type>StdVideoEncodeH264RefPicMarkingEntry</type>* <name>pRefPicMarkingOperations</name></member>
+ <member><type>uint8_t</type> <name>reserved1</name>[7]<comment>Reserved for future use and must be initialized with 0.</comment></member>
+ <member>const <type>uint8_t</type>* <name>pRefPicList0Entries</name><comment>Must be a valid pointer to an array with size refPicList0EntryCount and contains the slotIndex values corresponding to the RefPicList0 as used in VkVideoReferenceSlotInfoKHR structures, 0xff for invalid slotIndex.</comment></member>
+ <member>const <type>uint8_t</type>* <name>pRefPicList1Entries</name><comment>Must be a valid pointer to an array with size refPicList1EntryCount and contains the slotIndex values corresponding to the RefPicList1 as used in VkVideoReferenceSlotInfoKHR structures, 0xff for invalid slotIndex.</comment></member>
+ <member>const <type>StdVideoEncodeH264RefListModEntry</type>* <name>pRefList0ModOperations</name><comment>Must be a valid pointer to an array with size refList0ModOpCount if ref_pic_list_modification_flag_l0 is set and contains the RefList0 modification parameters as defined in section 7.4.3.1</comment></member>
+ <member>const <type>StdVideoEncodeH264RefListModEntry</type>* <name>pRefList1ModOperations</name><comment>Must be a valid pointer to an array with size refList1ModOpCount if ref_pic_list_modification_flag_l1 is set and contains the RefList1 modification parameters as defined in section 7.4.3.1</comment></member>
+ <member>const <type>StdVideoEncodeH264RefPicMarkingEntry</type>* <name>pRefPicMarkingOperations</name><comment>Must be a valid pointer to an array with size refPicMarkingOpCount and contains the reference picture markings as defined in section 7.4.3.3</comment></member>
</type>
<type category="struct" name="StdVideoEncodeH264PictureInfo">
<member><type>StdVideoEncodeH264PictureInfoFlags</type> <name>flags</name></member>
<member><type>uint8_t</type> <name>seq_parameter_set_id</name><comment>Selecting SPS id from the Sequence Parameters Set</comment></member>
<member><type>uint8_t</type> <name>pic_parameter_set_id</name><comment>Selecting PPS from the Picture Parameters for all StdVideoEncodeH264SliceHeader(s)</comment></member>
+ <member><type>uint16_t</type> <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>StdVideoH264PictureType</type> <name>pictureType</name></member>
<member><type>uint32_t</type> <name>frame_num</name></member>
<member><type>int32_t</type> <name>PicOrderCnt</name></member>
</type>
<type category="struct" name="StdVideoEncodeH264ReferenceInfo">
<member><type>StdVideoEncodeH264ReferenceInfoFlags</type> <name>flags</name></member>
+ <member><type>StdVideoH264PictureType</type> <name>pictureType</name></member>
<member><type>uint32_t</type> <name>FrameNum</name></member>
<member><type>int32_t</type> <name>PicOrderCnt</name></member>
<member><type>uint16_t</type> <name>long_term_pic_num</name></member>
@@ -330,6 +337,8 @@ The current public version of video.xml is maintained in the default branch
<member><type>StdVideoH264DisableDeblockingFilterIdc</type> <name>disable_deblocking_filter_idc</name></member>
<member><type>int8_t</type> <name>slice_alpha_c0_offset_div2</name></member>
<member><type>int8_t</type> <name>slice_beta_offset_div2</name></member>
+ <member><type>uint16_t</type> <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
+ <member><type>uint32_t</type> <name>reserved2</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member>const <type>StdVideoEncodeH264WeightTable</type>* <name>pWeightTable</name><comment></comment></member>
</type>
@@ -432,8 +441,8 @@ The current public version of video.xml is maintained in the default branch
<member><type>uint16_t</type> <name>used_by_curr_pic_flag</name><comment>each bit represents a used_by_curr_pic_flag[j] syntax</comment></member>
<member><type>uint16_t</type> <name>used_by_curr_pic_s0_flag</name><comment>each bit represents a used_by_curr_pic_s0_flag[i] syntax</comment></member>
<member><type>uint16_t</type> <name>used_by_curr_pic_s1_flag</name><comment>each bit represents a used_by_curr_pic_s1_flag[i] syntax</comment></member>
- <member><type>uint16_t</type> <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
- <member><type>uint8_t</type> <name>reserved2</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
+ <member><type>uint16_t</type> <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
+ <member><type>uint8_t</type> <name>reserved2</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>uint8_t</type> <name>reserved3</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>uint8_t</type> <name>num_negative_pics</name></member>
<member><type>uint8_t</type> <name>num_positive_pics</name></member>
@@ -767,16 +776,19 @@ The current public version of video.xml is maintained in the default branch
<member>const <type>StdVideoEncodeH265SliceSegmentLongTermRefPics</type>*<name>pLongTermRefPics</name><comment>Must be a valid pointer if StdVideoH265SpsFlags:long_term_ref_pics_present_flag is set</comment></member>
<member>const <type>StdVideoEncodeH265WeightTable</type>* <name>pWeightTable</name><comment></comment></member>
</type>
- <type category="struct" name="StdVideoEncodeH265ReferenceModificationFlags">
+ <type category="struct" name="StdVideoEncodeH265ReferenceListsInfoFlags">
<member><type>uint32_t</type> <name>ref_pic_list_modification_flag_l0</name> : 1</member>
<member><type>uint32_t</type> <name>ref_pic_list_modification_flag_l1</name> : 1</member>
</type>
- <type category="struct" name="StdVideoEncodeH265ReferenceModifications">
- <member><type>StdVideoEncodeH265ReferenceModificationFlags</type> <name>flags</name></member>
- <member><type>uint8_t</type> <name>referenceList0ModificationsCount</name><comment>num_ref_idx_l0_active_minus1</comment></member>
- <member>const <type>uint8_t</type>* <name>pReferenceList0Modifications</name><comment>list_entry_l0</comment></member>
- <member><type>uint8_t</type> <name>referenceList1ModificationsCount</name><comment>num_ref_idx_l1_active_minus1</comment></member>
- <member>const <type>uint8_t</type>* <name>pReferenceList1Modifications</name><comment>list_entry_l1</comment></member>
+ <type category="struct" name="StdVideoEncodeH265ReferenceListsInfo">
+ <member><type>StdVideoEncodeH265ReferenceListsInfoFlags</type> <name>flags</name></member>
+ <member><type>uint8_t</type> <name>num_ref_idx_l0_active_minus1</name></member>
+ <member><type>uint8_t</type> <name>num_ref_idx_l1_active_minus1</name></member>
+ <member><type>uint16_t</type> <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
+ <member>const <type>uint8_t</type>* <name>pRefPicList0Entries</name><comment>Must be a valid pointer to an array with size num_ref_idx_l0_active_minus1 plus 1 and contains the slotIndex values corresponding to the RefPicList0 as used in VkVideoReferenceSlotInfoKHR structures, 0xff for invalid slotIndex.</comment></member>
+ <member>const <type>uint8_t</type>* <name>pRefPicList1Entries</name><comment>Must be a valid pointer to an array with size num_ref_idx_l1_active_minus1 plus 1 and contains the slotIndex values corresponding to the RefPicList1 as used in VkVideoReferenceSlotInfoKHR structures, 0xff for invalid slotIndex.</comment></member>
+ <member>const <type>uint8_t</type>* <name>pRefList0Modifications</name><comment>Must be a valid pointer to an array with size num_ref_idx_l0_active_minus1 plus 1 if ref_pic_list_modification_flag_l0 is set and contains the elements of list_entry_l0.</comment></member>
+ <member>const <type>uint8_t</type>* <name>pRefList1Modifications</name><comment>Must be a valid pointer to an array with size num_ref_idx_l1_active_minus1 plus 1 if ref_pic_list_modification_flag_l1 is set and contains the elements of list_entry_l1.</comment></member>
</type>
<type category="struct" name="StdVideoEncodeH265PictureInfoFlags">
<member><type>uint32_t</type> <name>is_reference_flag</name> : 1</member>
@@ -791,8 +803,8 @@ The current public version of video.xml is maintained in the default branch
<member><type>uint8_t</type> <name>sps_video_parameter_set_id</name><comment>Selecting VPS id from the Video Parameters Set</comment></member>
<member><type>uint8_t</type> <name>pps_seq_parameter_set_id</name><comment>Selecting SPS id from the Sequence Parameters Set</comment></member>
<member><type>uint8_t</type> <name>pps_pic_parameter_set_id</name><comment>Selecting PPS id from the Picture Parameters Set</comment></member>
- <member><type>int32_t</type> <name>PicOrderCntVal</name></member>
<member><type>uint8_t</type> <name>TemporalId</name></member>
+ <member><type>int32_t</type> <name>PicOrderCntVal</name></member>
</type>
<type category="struct" name="StdVideoEncodeH265ReferenceInfoFlags">
<member><type>uint32_t</type> <name>used_for_long_term_reference</name> : 1<comment>A picture that is marked as "used for long-term reference", derived binary value from clause 8.3.2 Decoding process for reference picture set</comment></member>
@@ -801,6 +813,7 @@ The current public version of video.xml is maintained in the default branch
<type category="struct" name="StdVideoEncodeH265ReferenceInfo">
<member><type>StdVideoEncodeH265ReferenceInfoFlags</type> <name>flags</name></member>
+ <member><type>StdVideoH265PictureType</type> <name>PictureType</name></member>
<member><type>int32_t</type> <name>PicOrderCntVal</name></member>
<member><type>uint8_t</type> <name>TemporalId</name></member>
</type>
@@ -1074,8 +1087,8 @@ The current public version of video.xml is maintained in the default branch
<require>
<type name="vk_video/vulkan_video_codec_h264std.h"/>
- <type name="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_8"/>
- <enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION" value="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_8"/>
+ <type name="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_9"/>
+ <enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION" value="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_9"/>
<enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_EXTENSION_NAME" value="&quot;VK_STD_vulkan_video_codec_h264_encode&quot;"/>
<type name="StdVideoEncodeH264WeightTableFlags"/>
@@ -1083,10 +1096,10 @@ The current public version of video.xml is maintained in the default branch
<type name="StdVideoEncodeH264SliceHeaderFlags"/>
<type name="StdVideoEncodeH264PictureInfoFlags"/>
<type name="StdVideoEncodeH264ReferenceInfoFlags"/>
- <type name="StdVideoEncodeH264RefMgmtFlags"/>
+ <type name="StdVideoEncodeH264ReferenceListsInfoFlags"/>
+ <type name="StdVideoEncodeH264ReferenceListsInfo"/>
<type name="StdVideoEncodeH264RefListModEntry"/>
<type name="StdVideoEncodeH264RefPicMarkingEntry"/>
- <type name="StdVideoEncodeH264RefMemMgmtCtrlOperations"/>
<type name="StdVideoEncodeH264PictureInfo"/>
<type name="StdVideoEncodeH264ReferenceInfo"/>
<type name="StdVideoEncodeH264SliceHeader"/>
@@ -1161,16 +1174,16 @@ The current public version of video.xml is maintained in the default branch
<require>
<type name="vk_video/vulkan_video_codec_h265std.h"/>
- <type name="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_9"/>
- <enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION" value="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_9"/>
+ <type name="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_10"/>
+ <enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION" value="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_10"/>
<enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_EXTENSION_NAME" value="&quot;VK_STD_vulkan_video_codec_h265_encode&quot;"/>
<type name="StdVideoEncodeH265WeightTableFlags"/>
<type name="StdVideoEncodeH265WeightTable"/>
<type name="StdVideoEncodeH265SliceSegmentHeaderFlags"/>
<type name="StdVideoEncodeH265SliceSegmentHeader"/>
- <type name="StdVideoEncodeH265ReferenceModificationFlags"/>
- <type name="StdVideoEncodeH265ReferenceModifications"/>
+ <type name="StdVideoEncodeH265ReferenceListsInfoFlags"/>
+ <type name="StdVideoEncodeH265ReferenceListsInfo"/>
<type name="StdVideoEncodeH265PictureInfoFlags"/>
<type name="StdVideoEncodeH265PictureInfo"/>
<type name="StdVideoEncodeH265ReferenceInfoFlags"/>
diff --git a/registry/vk.xml b/registry/vk.xml
index ceb1182..d4d1138 100644
--- a/registry/vk.xml
+++ b/registry/vk.xml
@@ -173,7 +173,7 @@ branch of the member gitlab server.
#define <name>VKSC_API_VERSION_1_0</name> <type>VK_MAKE_API_VERSION</type>(VKSC_API_VARIANT, 1, 0, 0)// Patch version should always be set to 0</type>
<type api="vulkan" category="define">// Version of this file
-#define <name>VK_HEADER_VERSION</name> 242</type>
+#define <name>VK_HEADER_VERSION</name> 243</type>
<type api="vulkan" 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, 3, VK_HEADER_VERSION)</type>
<type api="vulkansc" category="define">// Version of this file
@@ -497,6 +497,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type requires="VkVideoEncodeUsageFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeUsageFlagsKHR</name>;</type>
<type requires="VkVideoEncodeContentFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeContentFlagsKHR</name>;</type>
<type requires="VkVideoEncodeCapabilityFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeCapabilityFlagsKHR</name>;</type>
+ <type requires="VkVideoEncodeFeedbackFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeFeedbackFlagsKHR</name>;</type>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeRateControlFlagsKHR</name>;</type>
<type requires="VkVideoEncodeRateControlModeFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeRateControlModeFlagsKHR</name>;</type>
<type requires="VkVideoChromaSubsamplingFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoChromaSubsamplingFlagsKHR</name>;</type>
@@ -504,13 +505,9 @@ typedef void* <name>MTLSharedEvent_id</name>;
<comment>Video Encode H.264 extension</comment>
<type requires="VkVideoEncodeH264CapabilityFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH264CapabilityFlagsEXT</name>;</type>
- <type requires="VkVideoEncodeH264InputModeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH264InputModeFlagsEXT</name>;</type>
- <type requires="VkVideoEncodeH264OutputModeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH264OutputModeFlagsEXT</name>;</type>
<comment>Video Encode H.265 extension</comment>
<type requires="VkVideoEncodeH265CapabilityFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265CapabilityFlagsEXT</name>;</type>
- <type requires="VkVideoEncodeH265InputModeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265InputModeFlagsEXT</name>;</type>
- <type requires="VkVideoEncodeH265OutputModeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265OutputModeFlagsEXT</name>;</type>
<type requires="VkVideoEncodeH265CtbSizeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265CtbSizeFlagsEXT</name>;</type>
<type requires="VkVideoEncodeH265TransformBlockSizeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265TransformBlockSizeFlagsEXT</name>;</type>
@@ -874,18 +871,15 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkVideoEncodeContentFlagBitsKHR" category="enum"/>
<type name="VkVideoEncodeTuningModeKHR" category="enum"/>
<type name="VkVideoEncodeCapabilityFlagBitsKHR" category="enum"/>
+ <type name="VkVideoEncodeFeedbackFlagBitsKHR" category="enum"/>
<type name="VkVideoEncodeRateControlModeFlagBitsKHR" category="enum"/>
<comment>Video H.264 Encode extensions</comment>
<type name="VkVideoEncodeH264CapabilityFlagBitsEXT" category="enum"/>
- <type name="VkVideoEncodeH264InputModeFlagBitsEXT" category="enum"/>
- <type name="VkVideoEncodeH264OutputModeFlagBitsEXT" category="enum"/>
<type name="VkVideoEncodeH264RateControlStructureEXT" category="enum"/>
<comment>Video H.265 Encode extensions</comment>
<type name="VkVideoEncodeH265CapabilityFlagBitsEXT" category="enum"/>
- <type name="VkVideoEncodeH265InputModeFlagBitsEXT" category="enum"/>
- <type name="VkVideoEncodeH265OutputModeFlagBitsEXT" category="enum"/>
<type name="VkVideoEncodeH265RateControlStructureEXT" category="enum"/>
<type name="VkVideoEncodeH265CtbSizeFlagBitsEXT" category="enum"/>
<type name="VkVideoEncodeH265TransformBlockSizeFlagBitsEXT" category="enum"/>
@@ -5265,7 +5259,8 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member limittype="max,pot"><type>uint32_t</type> <name>maxWorkGroupCount</name>[3]</member>
<member limittype="max,pot"><type>uint32_t</type> <name>maxWorkGroupSize</name>[3]</member>
- <member limittype="max"><type>uint32_t</type> <name>maxOutputClusterCount</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxOutputClusterCount</name></member>
+ <member limittype="exact"><type>VkDeviceSize</type> <name>indirectBufferOffsetAlignment</name></member>
</type>
<type category="struct" name="VkMemoryOpaqueCaptureAddressAllocateInfo" structextends="VkMemoryAllocateInfo">
<member values="VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
@@ -6686,28 +6681,33 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkVideoEncodeFlagsKHR</type> <name>flags</name></member>
<member><type>uint32_t</type> <name>qualityLevel</name></member>
- <member><type>VkBuffer</type> <name>dstBitstreamBuffer</name></member>
- <member><type>VkDeviceSize</type> <name>dstBitstreamBufferOffset</name></member>
- <member><type>VkDeviceSize</type> <name>dstBitstreamBufferMaxRange</name></member>
+ <member><type>VkBuffer</type> <name>dstBuffer</name></member>
+ <member><type>VkDeviceSize</type> <name>dstBufferOffset</name></member>
+ <member><type>VkDeviceSize</type> <name>dstBufferRange</name></member>
<member><type>VkVideoPictureResourceInfoKHR</type> <name>srcPictureResource</name></member>
<member optional="true">const <type>VkVideoReferenceSlotInfoKHR</type>* <name>pSetupReferenceSlot</name></member>
<member optional="true"><type>uint32_t</type> <name>referenceSlotCount</name></member>
<member len="referenceSlotCount">const <type>VkVideoReferenceSlotInfoKHR</type>* <name>pReferenceSlots</name></member>
<member><type>uint32_t</type> <name>precedingExternallyEncodedBytes</name></member>
</type>
+ <type category="struct" name="VkQueryPoolVideoEncodeFeedbackCreateInfoKHR" structextends="VkQueryPoolCreateInfo">
+ <member values="VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true">const <type>void</type>* <name>pNext</name></member>
+ <member><type>VkVideoEncodeFeedbackFlagsKHR</type> <name>encodeFeedbackFlags</name></member>
+ </type>
<type category="struct" name="VkVideoEncodeRateControlInfoKHR" structextends="VkVideoCodingControlInfoKHR">
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkVideoEncodeRateControlFlagsKHR</type> <name>flags</name></member>
- <member><type>VkVideoEncodeRateControlModeFlagBitsKHR</type> <name>rateControlMode</name></member>
- <member><type>uint8_t</type> <name>layerCount</name></member>
- <member len="layerCount">const <type>VkVideoEncodeRateControlLayerInfoKHR</type>* <name>pLayerConfigs</name></member>
+ <member optional="true"><type>VkVideoEncodeRateControlModeFlagBitsKHR</type> <name>rateControlMode</name></member>
+ <member optional="true"><type>uint32_t</type> <name>layerCount</name></member>
+ <member len="layerCount">const <type>VkVideoEncodeRateControlLayerInfoKHR</type>* <name>pLayers</name></member>
</type>
<type category="struct" name="VkVideoEncodeRateControlLayerInfoKHR" structextends="VkVideoCodingControlInfoKHR">
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member>const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>averageBitrate</name></member>
- <member><type>uint32_t</type> <name>maxBitrate</name></member>
+ <member optional="true">const <type>void</type>* <name>pNext</name></member>
+ <member><type>uint64_t</type> <name>averageBitrate</name></member>
+ <member><type>uint64_t</type> <name>maxBitrate</name></member>
<member><type>uint32_t</type> <name>frameRateNumerator</name></member>
<member><type>uint32_t</type> <name>frameRateDenominator</name></member>
<member><type>uint32_t</type> <name>virtualBufferSizeInMs</name></member>
@@ -6718,19 +6718,18 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member noautovalidity="true"><type>VkVideoEncodeCapabilityFlagsKHR</type> <name>flags</name></member>
<member><type>VkVideoEncodeRateControlModeFlagsKHR</type> <name>rateControlModes</name></member>
- <member><type>uint8_t</type> <name>rateControlLayerCount</name></member>
- <member><type>uint8_t</type> <name>qualityLevelCount</name></member>
+ <member><type>uint32_t</type> <name>maxRateControlLayers</name></member>
+ <member><type>uint32_t</type> <name>maxQualityLevels</name></member>
<member><type>VkExtent2D</type> <name>inputImageDataFillAlignment</name></member>
+ <member><type>VkVideoEncodeFeedbackFlagsKHR</type> <name>supportedEncodeFeedbackFlags</name></member>
</type>
<type category="struct" name="VkVideoEncodeH264CapabilitiesEXT" returnedonly="true" structextends="VkVideoCapabilitiesKHR">
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member noautovalidity="true"><type>VkVideoEncodeH264CapabilityFlagsEXT</type> <name>flags</name></member>
- <member><type>VkVideoEncodeH264InputModeFlagsEXT</type> <name>inputModeFlags</name></member>
- <member><type>VkVideoEncodeH264OutputModeFlagsEXT</type> <name>outputModeFlags</name></member>
- <member><type>uint8_t</type> <name>maxPPictureL0ReferenceCount</name></member>
- <member><type>uint8_t</type> <name>maxBPictureL0ReferenceCount</name></member>
- <member><type>uint8_t</type> <name>maxL1ReferenceCount</name></member>
+ <member><type>uint32_t</type> <name>maxPPictureL0ReferenceCount</name></member>
+ <member><type>uint32_t</type> <name>maxBPictureL0ReferenceCount</name></member>
+ <member><type>uint32_t</type> <name>maxL1ReferenceCount</name></member>
<member><type>VkBool32</type> <name>motionVectorsOverPicBoundariesFlag</name></member>
<member><type>uint32_t</type> <name>maxBytesPerPicDenom</name></member>
<member><type>uint32_t</type> <name>maxBitsPerMbDenom</name></member>
@@ -6742,7 +6741,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264PictureInfo"/>
<type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264ReferenceInfo"/>
<type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264SliceHeaderFlags"/>
- <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264RefMemMgmtCtrlOperations"/>
+ <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264ReferenceListsInfo"/>
<type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264PictureInfoFlags"/>
<type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264ReferenceInfoFlags"/>
<type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264RefMgmtFlags"/>
@@ -6758,41 +6757,23 @@ typedef void* <name>MTLSharedEvent_id</name>;
</type>
<type category="struct" name="VkVideoEncodeH264SessionParametersCreateInfoEXT" structextends="VkVideoSessionParametersCreateInfoKHR">
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
+ <member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>uint32_t</type> <name>maxStdSPSCount</name></member>
<member><type>uint32_t</type> <name>maxStdPPSCount</name></member>
<member optional="true">const <type>VkVideoEncodeH264SessionParametersAddInfoEXT</type>* <name>pParametersAddInfo</name></member>
</type>
- <type category="struct" name="VkVideoEncodeH264DpbSlotInfoEXT">
+ <type category="struct" name="VkVideoEncodeH264DpbSlotInfoEXT" structextends="VkVideoReferenceSlotInfoKHR">
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>int8_t</type> <name>slotIndex</name></member>
+ <member optional="true">const <type>void</type>* <name>pNext</name></member>
<member>const <type>StdVideoEncodeH264ReferenceInfo</type>* <name>pStdReferenceInfo</name></member>
</type>
<type category="struct" name="VkVideoEncodeH264VclFrameInfoEXT" structextends="VkVideoEncodeInfoKHR">
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true">const <type>VkVideoEncodeH264ReferenceListsInfoEXT</type>* <name>pReferenceFinalLists</name></member>
+ <member optional="true">const <type>StdVideoEncodeH264ReferenceListsInfo</type>* <name>pStdReferenceFinalLists</name></member>
<member><type>uint32_t</type> <name>naluSliceEntryCount</name></member>
<member len="naluSliceEntryCount">const <type>VkVideoEncodeH264NaluSliceInfoEXT</type>* <name>pNaluSliceEntries</name></member>
- <member>const <type>StdVideoEncodeH264PictureInfo</type>* <name>pCurrentPictureInfo</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH264ReferenceListsInfoEXT">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint8_t</type> <name>referenceList0EntryCount</name></member>
- <member len="referenceList0EntryCount">const <type>VkVideoEncodeH264DpbSlotInfoEXT</type>* <name>pReferenceList0Entries</name></member>
- <member optional="true"><type>uint8_t</type> <name>referenceList1EntryCount</name></member>
- <member len="referenceList1EntryCount">const <type>VkVideoEncodeH264DpbSlotInfoEXT</type>* <name>pReferenceList1Entries</name></member>
- <member>const <type>StdVideoEncodeH264RefMemMgmtCtrlOperations</type>* <name>pMemMgmtCtrlOperations</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH264EmitPictureParametersInfoEXT" structextends="VkVideoEncodeInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint8_t</type> <name>spsId</name></member>
- <member><type>VkBool32</type> <name>emitSpsEnable</name></member>
- <member><type>uint32_t</type> <name>ppsIdEntryCount</name></member>
- <member len="ppsIdEntryCount">const <type>uint8_t</type>* <name>ppsIdEntries</name></member>
+ <member>const <type>StdVideoEncodeH264PictureInfo</type>* <name>pStdPictureInfo</name></member>
</type>
<type category="struct" name="VkVideoEncodeH264ProfileInfoEXT" structextends="VkVideoProfileInfoKHR,VkQueryPoolCreateInfo">
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
@@ -6803,8 +6784,8 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>uint32_t</type> <name>mbCount</name></member>
- <member optional="true">const <type>VkVideoEncodeH264ReferenceListsInfoEXT</type>* <name>pReferenceFinalLists</name></member>
- <member>const <type>StdVideoEncodeH264SliceHeader</type>* <name>pSliceHeaderStd</name></member>
+ <member optional="true">const <type>StdVideoEncodeH264ReferenceListsInfo</type>* <name>pStdReferenceFinalLists</name></member>
+ <member>const <type>StdVideoEncodeH264SliceHeader</type>* <name>pStdSliceHeader</name></member>
</type>
<type category="struct" name="VkVideoEncodeH264RateControlInfoEXT" structextends="VkVideoCodingControlInfoKHR">
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
@@ -6813,7 +6794,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member><type>uint32_t</type> <name>idrPeriod</name></member>
<member><type>uint32_t</type> <name>consecutiveBFrameCount</name></member>
<member><type>VkVideoEncodeH264RateControlStructureEXT</type> <name>rateControlStructure</name></member>
- <member><type>uint8_t</type> <name>temporalLayerCount</name></member>
+ <member><type>uint32_t</type> <name>temporalLayerCount</name></member>
</type>
<type category="struct" name="VkVideoEncodeH264QpEXT">
<member noautovalidity="true"><type>int32_t</type> <name>qpI</name></member>
@@ -6828,7 +6809,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type category="struct" name="VkVideoEncodeH264RateControlLayerInfoEXT" structextends="VkVideoCodingControlInfoKHR,VkVideoEncodeRateControlLayerInfoKHR">
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint8_t</type> <name>temporalLayerId</name></member>
+ <member><type>uint32_t</type> <name>temporalLayerId</name></member>
<member><type>VkBool32</type> <name>useInitialRcQp</name></member>
<member><type>VkVideoEncodeH264QpEXT</type> <name>initialRcQp</name></member>
<member><type>VkBool32</type> <name>useMinQp</name></member>
@@ -6842,32 +6823,30 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member noautovalidity="true"><type>VkVideoEncodeH265CapabilityFlagsEXT</type> <name>flags</name></member>
- <member><type>VkVideoEncodeH265InputModeFlagsEXT</type> <name>inputModeFlags</name></member>
- <member><type>VkVideoEncodeH265OutputModeFlagsEXT</type> <name>outputModeFlags</name></member>
<member><type>VkVideoEncodeH265CtbSizeFlagsEXT</type> <name>ctbSizes</name></member>
<member><type>VkVideoEncodeH265TransformBlockSizeFlagsEXT</type> <name>transformBlockSizes</name></member>
- <member><type>uint8_t</type> <name>maxPPictureL0ReferenceCount</name></member>
- <member><type>uint8_t</type> <name>maxBPictureL0ReferenceCount</name></member>
- <member><type>uint8_t</type> <name>maxL1ReferenceCount</name></member>
- <member><type>uint8_t</type> <name>maxSubLayersCount</name></member>
- <member><type>uint8_t</type> <name>minLog2MinLumaCodingBlockSizeMinus3</name></member>
- <member><type>uint8_t</type> <name>maxLog2MinLumaCodingBlockSizeMinus3</name></member>
- <member><type>uint8_t</type> <name>minLog2MinLumaTransformBlockSizeMinus2</name></member>
- <member><type>uint8_t</type> <name>maxLog2MinLumaTransformBlockSizeMinus2</name></member>
- <member><type>uint8_t</type> <name>minMaxTransformHierarchyDepthInter</name></member>
- <member><type>uint8_t</type> <name>maxMaxTransformHierarchyDepthInter</name></member>
- <member><type>uint8_t</type> <name>minMaxTransformHierarchyDepthIntra</name></member>
- <member><type>uint8_t</type> <name>maxMaxTransformHierarchyDepthIntra</name></member>
- <member><type>uint8_t</type> <name>maxDiffCuQpDeltaDepth</name></member>
- <member><type>uint8_t</type> <name>minMaxNumMergeCand</name></member>
- <member><type>uint8_t</type> <name>maxMaxNumMergeCand</name></member>
+ <member><type>uint32_t</type> <name>maxPPictureL0ReferenceCount</name></member>
+ <member><type>uint32_t</type> <name>maxBPictureL0ReferenceCount</name></member>
+ <member><type>uint32_t</type> <name>maxL1ReferenceCount</name></member>
+ <member><type>uint32_t</type> <name>maxSubLayersCount</name></member>
+ <member><type>uint32_t</type> <name>minLog2MinLumaCodingBlockSizeMinus3</name></member>
+ <member><type>uint32_t</type> <name>maxLog2MinLumaCodingBlockSizeMinus3</name></member>
+ <member><type>uint32_t</type> <name>minLog2MinLumaTransformBlockSizeMinus2</name></member>
+ <member><type>uint32_t</type> <name>maxLog2MinLumaTransformBlockSizeMinus2</name></member>
+ <member><type>uint32_t</type> <name>minMaxTransformHierarchyDepthInter</name></member>
+ <member><type>uint32_t</type> <name>maxMaxTransformHierarchyDepthInter</name></member>
+ <member><type>uint32_t</type> <name>minMaxTransformHierarchyDepthIntra</name></member>
+ <member><type>uint32_t</type> <name>maxMaxTransformHierarchyDepthIntra</name></member>
+ <member><type>uint32_t</type> <name>maxDiffCuQpDeltaDepth</name></member>
+ <member><type>uint32_t</type> <name>minMaxNumMergeCand</name></member>
+ <member><type>uint32_t</type> <name>maxMaxNumMergeCand</name></member>
</type>
<type category="include" name="vk_video/vulkan_video_codec_h265std_encode.h">#include "vk_video/vulkan_video_codec_h265std_encode.h"</type>
<type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265PictureInfoFlags"/>
<type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265PictureInfo"/>
<type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265SliceSegmentHeader"/>
<type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265ReferenceInfo"/>
- <type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265ReferenceModifications"/>
+ <type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265ReferenceListsInfo"/>
<type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265SliceSegmentHeaderFlags"/>
<type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265ReferenceInfoFlags"/>
<type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265ReferenceModificationFlags"/>
@@ -6892,27 +6871,17 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type category="struct" name="VkVideoEncodeH265VclFrameInfoEXT" structextends="VkVideoEncodeInfoKHR">
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true">const <type>VkVideoEncodeH265ReferenceListsInfoEXT</type>* <name>pReferenceFinalLists</name></member>
+ <member optional="true">const <type>StdVideoEncodeH265ReferenceListsInfo</type>* <name>pStdReferenceFinalLists</name></member>
<member><type>uint32_t</type> <name>naluSliceSegmentEntryCount</name></member>
<member len="naluSliceSegmentEntryCount">const <type>VkVideoEncodeH265NaluSliceSegmentInfoEXT</type>* <name>pNaluSliceSegmentEntries</name></member>
- <member>const <type>StdVideoEncodeH265PictureInfo</type>* <name>pCurrentPictureInfo</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH265EmitPictureParametersInfoEXT" structextends="VkVideoEncodeInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint8_t</type> <name>vpsId</name></member>
- <member><type>uint8_t</type> <name>spsId</name></member>
- <member><type>VkBool32</type> <name>emitVpsEnable</name></member>
- <member><type>VkBool32</type> <name>emitSpsEnable</name></member>
- <member optional="true"><type>uint32_t</type> <name>ppsIdEntryCount</name></member>
- <member len="ppsIdEntryCount">const <type>uint8_t</type>* <name>ppsIdEntries</name></member>
+ <member>const <type>StdVideoEncodeH265PictureInfo</type>* <name>pStdPictureInfo</name></member>
</type>
<type category="struct" name="VkVideoEncodeH265NaluSliceSegmentInfoEXT">
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>uint32_t</type> <name>ctbCount</name></member>
- <member optional="true">const <type>VkVideoEncodeH265ReferenceListsInfoEXT</type>* <name>pReferenceFinalLists</name></member>
- <member>const <type>StdVideoEncodeH265SliceSegmentHeader</type>* <name>pSliceSegmentHeaderStd</name></member>
+ <member optional="true">const <type>StdVideoEncodeH265ReferenceListsInfo</type>* <name>pStdReferenceFinalLists</name></member>
+ <member>const <type>StdVideoEncodeH265SliceSegmentHeader</type>* <name>pStdSliceSegmentHeader</name></member>
</type>
<type category="struct" name="VkVideoEncodeH265RateControlInfoEXT" structextends="VkVideoCodingControlInfoKHR">
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
@@ -6921,7 +6890,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member><type>uint32_t</type> <name>idrPeriod</name></member>
<member><type>uint32_t</type> <name>consecutiveBFrameCount</name></member>
<member><type>VkVideoEncodeH265RateControlStructureEXT</type> <name>rateControlStructure</name></member>
- <member><type>uint8_t</type> <name>subLayerCount</name></member>
+ <member><type>uint32_t</type> <name>subLayerCount</name></member>
</type>
<type category="struct" name="VkVideoEncodeH265QpEXT">
<member noautovalidity="true"><type>int32_t</type> <name>qpI</name></member>
@@ -6936,7 +6905,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type category="struct" name="VkVideoEncodeH265RateControlLayerInfoEXT" structextends="VkVideoCodingControlInfoKHR,VkVideoEncodeRateControlLayerInfoKHR">
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint8_t</type> <name>temporalId</name></member>
+ <member><type>uint32_t</type> <name>temporalId</name></member>
<member><type>VkBool32</type> <name>useInitialRcQp</name></member>
<member><type>VkVideoEncodeH265QpEXT</type> <name>initialRcQp</name></member>
<member><type>VkBool32</type> <name>useMinQp</name></member>
@@ -6951,21 +6920,11 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>StdVideoH265ProfileIdc</type> <name>stdProfileIdc</name></member>
</type>
- <type category="struct" name="VkVideoEncodeH265DpbSlotInfoEXT">
+ <type category="struct" name="VkVideoEncodeH265DpbSlotInfoEXT" structextends="VkVideoReferenceSlotInfoKHR">
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>int8_t</type> <name>slotIndex</name></member>
<member>const <type>StdVideoEncodeH265ReferenceInfo</type>* <name>pStdReferenceInfo</name></member>
</type>
- <type category="struct" name="VkVideoEncodeH265ReferenceListsInfoEXT">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint8_t</type> <name>referenceList0EntryCount</name></member>
- <member len="referenceList0EntryCount">const <type>VkVideoEncodeH265DpbSlotInfoEXT</type>* <name>pReferenceList0Entries</name></member>
- <member optional="true"><type>uint8_t</type> <name>referenceList1EntryCount</name></member>
- <member len="referenceList1EntryCount">const <type>VkVideoEncodeH265DpbSlotInfoEXT</type>* <name>pReferenceList1Entries</name></member>
- <member>const <type>StdVideoEncodeH265ReferenceModifications</type>* <name>pReferenceModifications</name></member>
- </type>
<type category="struct" name="VkPhysicalDeviceInheritedViewportScissorFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
@@ -8035,19 +7994,19 @@ typedef void* <name>MTLSharedEvent_id</name>;
</type>
<type category="struct" name="VkSwapchainPresentFenceInfoEXT" structextends="VkPresentInfoKHR">
<member values="VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
+ <member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>uint32_t</type> <name>swapchainCount</name><comment>Copy of VkPresentInfoKHR::swapchainCount</comment></member>
<member len="swapchainCount">const <type>VkFence</type>* <name>pFences</name><comment>Fence to signal for each swapchain</comment></member>
</type>
<type category="struct" name="VkSwapchainPresentModesCreateInfoEXT" structextends="VkSwapchainCreateInfoKHR">
<member values="VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
+ <member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>uint32_t</type> <name>presentModeCount</name></member><comment>Length of the pPresentModes array</comment>
<member len="presentModeCount">const <type>VkPresentModeKHR</type>* <name>pPresentModes</name></member><comment>Presentation modes which will be usable with this swapchain</comment>
</type>
<type category="struct" name="VkSwapchainPresentModeInfoEXT" structextends="VkPresentInfoKHR">
<member values="VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
+ <member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>uint32_t</type> <name>swapchainCount</name><comment>Copy of VkPresentInfoKHR::swapchainCount</comment></member>
<member len="swapchainCount">const <type>VkPresentModeKHR</type>* <name>pPresentModes</name><comment>Presentation mode for each swapchain</comment></member>
</type>
@@ -9280,7 +9239,8 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="0x10004" name="VK_VENDOR_ID_CODEPLAY" comment="Codeplay Software Ltd. vendor ID"/>
<enum value="0x10005" name="VK_VENDOR_ID_MESA" comment="Mesa vendor ID"/>
<enum value="0x10006" name="VK_VENDOR_ID_POCL" comment="PoCL vendor ID"/>
- <unused start="0x10007" comment="This is the next unused available Khronos vendor ID"/>
+ <enum value="0x10007" name="VK_VENDOR_ID_MOBILEYE" comment="Mobileye vendor ID"/>
+ <unused start="0x10008" comment="This is the next unused available Khronos vendor ID"/>
</enums>
<enums name="VkDriverId" type="enum">
<comment>Driver IDs are now represented as enums instead of the old
@@ -9840,10 +9800,15 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enums name="VkVideoEncodeCapabilityFlagBitsKHR" type="bitmask">
<enum bitpos="0" name="VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR"/>
</enums>
+ <enums name="VkVideoEncodeFeedbackFlagBitsKHR" type="bitmask">
+ <enum bitpos="0" name="VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR"/>
+ <enum bitpos="1" name="VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR"/>
+ </enums>
<enums name="VkVideoEncodeRateControlModeFlagBitsKHR" type="bitmask">
- <enum value="0" name="VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR"/>
- <enum value="1" name="VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR"/>
- <enum value="2" name="VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR"/>
+ <enum value="0" name="VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR"/>
+ <enum bitpos="0" name="VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR"/>
+ <enum bitpos="1" name="VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR"/>
+ <enum bitpos="2" name="VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR"/>
</enums>
<enums name="VkVideoEncodeH264CapabilityFlagBitsEXT" type="bitmask">
<enum bitpos="0" name="VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT"/>
@@ -9856,7 +9821,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum bitpos="7" name="VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT"/>
<enum bitpos="8" name="VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT"/>
<enum bitpos="9" name="VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT"/>
- <enum bitpos="10" name="VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT"/>
+ <enum bitpos="10" name="VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT"/>
<enum bitpos="11" name="VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT"/>
<enum bitpos="12" name="VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT"/>
<enum bitpos="13" name="VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT"/>
@@ -9871,16 +9836,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum bitpos="22" name="VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT"/>
<enum bitpos="23" name="VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT"/>
<enum bitpos="24" name="VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT"/>
- </enums>
- <enums name="VkVideoEncodeH264InputModeFlagBitsEXT" type="bitmask">
- <enum bitpos="0" name="VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT"/>
- <enum bitpos="1" name="VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT"/>
- <enum bitpos="2" name="VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT"/>
- </enums>
- <enums name="VkVideoEncodeH264OutputModeFlagBitsEXT" type="bitmask">
- <enum bitpos="0" name="VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT"/>
- <enum bitpos="1" name="VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT"/>
- <enum bitpos="2" name="VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT"/>
+ <enum bitpos="25" name="VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_REFERENCE_FINAL_LISTS_BIT_EXT"/>
</enums>
<enums name="VkVideoEncodeH264RateControlStructureEXT" type="enum">
<enum value="0" name="VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT"/>
@@ -9987,16 +9943,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum bitpos="23" name="VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT"/>
<enum bitpos="24" name="VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT"/>
<enum bitpos="25" name="VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT"/>
- </enums>
- <enums name="VkVideoEncodeH265InputModeFlagBitsEXT" type="bitmask">
- <enum bitpos="0" name="VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT"/>
- <enum bitpos="1" name="VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT"/>
- <enum bitpos="2" name="VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT"/>
- </enums>
- <enums name="VkVideoEncodeH265OutputModeFlagBitsEXT" type="bitmask">
- <enum bitpos="0" name="VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT"/>
- <enum bitpos="1" name="VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT"/>
- <enum bitpos="2" name="VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT"/>
+ <enum bitpos="26" name="VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_REFERENCE_FINAL_LISTS_BIT_EXT"/>
</enums>
<enums name="VkVideoEncodeH265RateControlStructureEXT" type="enum">
<enum value="0" name="VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT"/>
@@ -10811,7 +10758,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param>the sname:VkCommandPool that pname:commandBuffer was allocated from</param>
</implicitexternsyncparams>
</command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
+ <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR">
<proto><type>VkResult</type> <name>vkEndCommandBuffer</name></proto>
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
<implicitexternsyncparams>
@@ -13537,7 +13484,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param optional="false,true"><type>uint32_t</type>* <name>pVideoFormatPropertyCount</name></param>
<param optional="true" len="pVideoFormatPropertyCount"><type>VkVideoFormatPropertiesKHR</type>* <name>pVideoFormatProperties</name></param>
</command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR">
+ <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR,VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR">
<proto><type>VkResult</type> <name>vkCreateVideoSessionKHR</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param>const <type>VkVideoSessionCreateInfoKHR</type>* <name>pCreateInfo</name></param>
@@ -13550,14 +13497,14 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param optional="true" externsync="true"><type>VkVideoSessionKHR</type> <name>videoSession</name></param>
<param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
</command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED">
+ <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR">
<proto><type>VkResult</type> <name>vkCreateVideoSessionParametersKHR</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param>const <type>VkVideoSessionParametersCreateInfoKHR</type>* <name>pCreateInfo</name></param>
<param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
<param><type>VkVideoSessionParametersKHR</type>* <name>pVideoSessionParameters</name></param>
</command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
+ <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR">
<proto><type>VkResult</type> <name>vkUpdateVideoSessionParametersKHR</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param><type>VkVideoSessionParametersKHR</type> <name>videoSessionParameters</name></param>
@@ -15333,7 +15280,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<require comment="pipeline cache functionality">
<enum offset="0" extnumber="299" extends="VkResult" dir="-" name="VK_ERROR_INVALID_PIPELINE_CACHE_DATA"/>
<enum offset="1" extnumber="299" extends="VkResult" dir="-" name="VK_ERROR_NO_PIPELINE_MATCH"/>
- <enum extends="VkPipelineCacheCreateFlagBits" name="VK_PIPELINE_CACHE_CREATE_READ_ONLY_BIT" alias="VK_PIPELINE_CACHE_CREATE_RESERVED_1_BIT_EXT"/>
+ <enum bitpos="1" extends="VkPipelineCacheCreateFlagBits" name="VK_PIPELINE_CACHE_CREATE_READ_ONLY_BIT"/>
<enum bitpos="2" extends="VkPipelineCacheCreateFlagBits" name="VK_PIPELINE_CACHE_CREATE_USE_APPLICATION_STORAGE_BIT"/>
<type name="VkPipelineCacheCreateFlagBits" comment="This should be picked up from the extends= attributes above"/>
</require>
@@ -16000,7 +15947,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
</extension>
<extension name="VK_EXT_video_encode_h264" number="39" type="device" depends="VK_KHR_video_encode_queue" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" provisional="true" platform="provisional" supported="vulkan">
<require>
- <enum value="9" name="VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION"/>
+ <enum value="10" name="VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_video_encode_h264&quot;" name="VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
@@ -16008,25 +15955,17 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum offset="7" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum offset="8" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum offset="9" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="10" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum bitpos="16" extends="VkVideoCodecOperationFlagBitsKHR" name="VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<type name="VkVideoEncodeH264CapabilityFlagBitsEXT"/>
<type name="VkVideoEncodeH264CapabilityFlagsEXT"/>
- <type name="VkVideoEncodeH264InputModeFlagBitsEXT"/>
- <type name="VkVideoEncodeH264InputModeFlagsEXT"/>
- <type name="VkVideoEncodeH264OutputModeFlagBitsEXT"/>
- <type name="VkVideoEncodeH264OutputModeFlagsEXT"/>
<type name="VkVideoEncodeH264CapabilitiesEXT"/>
<type name="VkVideoEncodeH264SessionParametersCreateInfoEXT"/>
<type name="VkVideoEncodeH264SessionParametersAddInfoEXT"/>
<type name="VkVideoEncodeH264VclFrameInfoEXT"/>
- <type name="VkVideoEncodeH264ReferenceListsInfoEXT"/>
- <type name="VkVideoEncodeH264EmitPictureParametersInfoEXT"/>
<type name="VkVideoEncodeH264DpbSlotInfoEXT"/>
<type name="VkVideoEncodeH264NaluSliceInfoEXT"/>
<type name="VkVideoEncodeH264ProfileInfoEXT"/>
@@ -16039,7 +15978,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
</extension>
<extension name="VK_EXT_video_encode_h265" number="40" type="device" depends="VK_KHR_video_encode_queue" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" provisional="true" platform="provisional" supported="vulkan">
<require>
- <enum value="9" name="VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION"/>
+ <enum value="10" name="VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_video_encode_h265&quot;" name="VK_EXT_VIDEO_ENCODE_H265_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
@@ -16047,19 +15986,13 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum offset="7" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="8" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum offset="9" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum offset="10" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum bitpos="17" extends="VkVideoCodecOperationFlagBitsKHR" name="VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<type name="VkVideoEncodeH265CapabilityFlagBitsEXT"/>
<type name="VkVideoEncodeH265CapabilityFlagsEXT"/>
- <type name="VkVideoEncodeH265InputModeFlagBitsEXT"/>
- <type name="VkVideoEncodeH265InputModeFlagsEXT"/>
- <type name="VkVideoEncodeH265OutputModeFlagBitsEXT"/>
- <type name="VkVideoEncodeH265OutputModeFlagsEXT"/>
<type name="VkVideoEncodeH265CtbSizeFlagBitsEXT"/>
<type name="VkVideoEncodeH265CtbSizeFlagsEXT"/>
@@ -16069,11 +16002,9 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkVideoEncodeH265SessionParametersCreateInfoEXT"/>
<type name="VkVideoEncodeH265SessionParametersAddInfoEXT"/>
<type name="VkVideoEncodeH265VclFrameInfoEXT"/>
- <type name="VkVideoEncodeH265EmitPictureParametersInfoEXT"/>
<type name="VkVideoEncodeH265DpbSlotInfoEXT"/>
<type name="VkVideoEncodeH265NaluSliceSegmentInfoEXT"/>
<type name="VkVideoEncodeH265ProfileInfoEXT"/>
- <type name="VkVideoEncodeH265ReferenceListsInfoEXT"/>
<type name="VkVideoEncodeH265RateControlInfoEXT"/>
<type name="VkVideoEncodeH265RateControlStructureEXT"/>
<type name="VkVideoEncodeH265RateControlLayerInfoEXT"/>
@@ -16424,7 +16355,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_EXT_shader_subgroup_vote&quot;" name="VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME"/>
</require>
</extension>
- <extension name="VK_EXT_texture_compression_astc_hdr" number="67" type="device" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" depends="VK_KHR_get_physical_device_properties2" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
+ <extension name="VK_EXT_texture_compression_astc_hdr" number="67" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
<require>
<enum value="1" name="VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_texture_compression_astc_hdr&quot;" name="VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME"/>
@@ -16446,7 +16377,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum extends="VkFormat" name="VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT" alias="VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK"/>
</require>
</extension>
- <extension name="VK_EXT_astc_decode_mode" number="68" type="device" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" depends="VK_KHR_get_physical_device_properties2" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_astc_decode_mode" number="68" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_astc_decode_mode&quot;" name="VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME"/>
@@ -16560,7 +16491,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<command name="vkGetMemoryWin32HandlePropertiesKHR"/>
</require>
</extension>
- <extension name="VK_KHR_external_memory_fd" number="75" type="device" depends="VK_KHR_external_memory" author="KHR" contact="James Jones @cubanismo" supported="vulkan,vulkansc">
+ <extension name="VK_KHR_external_memory_fd" number="75" type="device" depends="VK_KHR_external_memory,VK_VERSION_1_1" author="KHR" contact="James Jones @cubanismo" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_external_memory_fd&quot;" name="VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME"/>
@@ -16634,7 +16565,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<command name="vkGetSemaphoreWin32HandleKHR"/>
</require>
</extension>
- <extension name="VK_KHR_external_semaphore_fd" number="80" type="device" depends="VK_KHR_external_semaphore" author="KHR" contact="James Jones @cubanismo" supported="vulkan,vulkansc">
+ <extension name="VK_KHR_external_semaphore_fd" number="80" type="device" depends="VK_KHR_external_semaphore,VK_VERSION_1_1" author="KHR" contact="James Jones @cubanismo" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_external_semaphore_fd&quot;" name="VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME"/>
@@ -16865,7 +16796,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkPipelineViewportSwizzleStateCreateFlagsNV"/>
</require>
</extension>
- <extension name="VK_EXT_discard_rectangles" number="100" type="device" depends="VK_KHR_get_physical_device_properties2" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_discard_rectangles" number="100" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc">
<require>
<enum value="2" name="VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_discard_rectangles&quot;" name="VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME"/>
@@ -16889,7 +16820,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_NV_extension_101&quot;" name="VK_NV_EXTENSION_101_EXTENSION_NAME"/>
</require>
</extension>
- <extension name="VK_EXT_conservative_rasterization" number="102" type="device" depends="VK_KHR_get_physical_device_properties2" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_conservative_rasterization" number="102" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_conservative_rasterization&quot;" name="VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME"/>
@@ -16901,7 +16832,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkConservativeRasterizationModeEXT"/>
</require>
</extension>
- <extension name="VK_EXT_depth_clip_enable" number="103" type="device" author="EXT" contact="Piers Daniell @pdaniell-nv" specialuse="d3demulation" depends="VK_KHR_get_physical_device_properties2" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_depth_clip_enable" number="103" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Piers Daniell @pdaniell-nv" specialuse="d3demulation" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_depth_clip_enable&quot;" name="VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME"/>
@@ -16919,7 +16850,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum bitpos="0" extends="VkPrivateDataSlotCreateFlagBits" name="VK_PRIVATE_DATA_SLOT_CREATE_RESERVED_0_BIT_NV"/>
</require>
</extension>
- <extension name="VK_EXT_swapchain_colorspace" number="105" type="instance" author="GOOGLE" contact="Courtney Goeltzenleuchter @courtney-g" depends="VK_KHR_surface" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_swapchain_colorspace" number="105" type="instance" depends="VK_KHR_surface" author="GOOGLE" contact="Courtney Goeltzenleuchter @courtney-g" supported="vulkan,vulkansc">
<require>
<enum value="4" name="VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_swapchain_colorspace&quot;" name="VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME"/>
@@ -17007,7 +16938,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_IMG_extension_111&quot;" name="VK_IMG_EXTENSION_111_EXTENSION_NAME"/>
</require>
</extension>
- <extension name="VK_KHR_shared_presentable_image" number="112" type="device" depends="VK_KHR_swapchain+VK_KHR_get_physical_device_properties2+VK_KHR_get_surface_capabilities2" author="KHR" contact="Alon Or-bach @alonorbach" supported="vulkan,vulkansc">
+ <extension name="VK_KHR_shared_presentable_image" number="112" type="device" depends="VK_KHR_swapchain+VK_KHR_get_surface_capabilities2+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)" author="KHR" contact="Alon Or-bach @alonorbach" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_shared_presentable_image&quot;" name="VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME"/>
@@ -17068,7 +16999,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<command name="vkGetFenceWin32HandleKHR"/>
</require>
</extension>
- <extension name="VK_KHR_external_fence_fd" number="116" type="device" depends="VK_KHR_external_fence" author="KHR" contact="Jesse Hall @critsec" supported="vulkan,vulkansc">
+ <extension name="VK_KHR_external_fence_fd" number="116" type="device" depends="VK_KHR_external_fence,VK_VERSION_1_1" author="KHR" contact="Jesse Hall @critsec" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_external_fence_fd&quot;" name="VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME"/>
@@ -17080,7 +17011,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<command name="vkGetFenceFdKHR"/>
</require>
</extension>
- <extension name="VK_KHR_performance_query" number="117" type="device" depends="VK_KHR_get_physical_device_properties2" author="KHR" contact="Alon Or-bach @alonorbach" specialuse="devtools" supported="vulkan,vulkansc">
+ <extension name="VK_KHR_performance_query" number="117" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="KHR" contact="Alon Or-bach @alonorbach" specialuse="devtools" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_performance_query&quot;" name="VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME"/>
@@ -17227,7 +17158,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum bitpos="9" extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT"/>
</require>
</extension>
- <extension name="VK_EXT_queue_family_foreign" number="127" type="device" author="EXT" depends="VK_KHR_external_memory" contact="Chad Versace @chadversary" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_queue_family_foreign" number="127" type="device" author="EXT" depends="VK_KHR_external_memory,VK_VERSION_1_1" contact="Chad Versace @chadversary" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_queue_family_foreign&quot;" name="VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME"/>
@@ -17403,7 +17334,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_AMD_extension_143&quot;" name="VK_AMD_EXTENSION_143_EXTENSION_NAME"/>
</require>
</extension>
- <extension name="VK_EXT_sample_locations" number="144" type="device" author="AMD" contact="Daniel Rakos @drakos-amd" supported="vulkan,vulkansc" depends="VK_KHR_get_physical_device_properties2">
+ <extension name="VK_EXT_sample_locations" number="144" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="AMD" contact="Daniel Rakos @drakos-amd" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_sample_locations&quot;" name="VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME"/>
@@ -17465,7 +17396,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkImageFormatListCreateInfoKHR"/>
</require>
</extension>
- <extension name="VK_EXT_blend_operation_advanced" number="149" type="device" author="NV" contact="Jeff Bolz @jeffbolznv" supported="vulkan,vulkansc" depends="VK_KHR_get_physical_device_properties2">
+ <extension name="VK_EXT_blend_operation_advanced" number="149" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="NV" contact="Jeff Bolz @jeffbolznv" supported="vulkan,vulkansc">
<require>
<enum value="2" name="VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_blend_operation_advanced&quot;" name="VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME"/>
@@ -17811,7 +17742,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkBindImageMemoryInfoKHR"/>
</require>
</extension>
- <extension name="VK_EXT_image_drm_format_modifier" number="159" type="device" depends="VK_KHR_bind_memory2+VK_KHR_get_physical_device_properties2+VK_KHR_image_format_list+VK_KHR_sampler_ycbcr_conversion" author="EXT" contact="Chad Versace @chadversary" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_image_drm_format_modifier" number="159" type="device" depends="((VK_KHR_bind_memory2+VK_KHR_get_physical_device_properties2+VK_KHR_sampler_ycbcr_conversion),VK_VERSION_1_1)+(VK_KHR_image_format_list,VK_VERSION_1_2)" author="EXT" contact="Chad Versace @chadversary" supported="vulkan,vulkansc">
<require>
<enum value="2" name="VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_image_drm_format_modifier&quot;" name="VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME"/>
@@ -18133,7 +18064,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkPhysicalDevice8BitStorageFeaturesKHR"/>
</require>
</extension>
- <extension name="VK_EXT_external_memory_host" number="179" type="device" author="EXT" depends="VK_KHR_external_memory" contact="Daniel Rakos @drakos-amd" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_external_memory_host" number="179" type="device" author="EXT" depends="VK_KHR_external_memory,VK_VERSION_1_1" contact="Daniel Rakos @drakos-amd" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_external_memory_host&quot;" name="VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME"/>
@@ -18163,7 +18094,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkPhysicalDeviceShaderAtomicInt64FeaturesKHR"/>
</require>
</extension>
- <extension name="VK_KHR_shader_clock" number="182" type="device" author="KHR" depends="VK_KHR_get_physical_device_properties2" contact="Aaron Hagan @ahagan" supported="vulkan,vulkansc">
+ <extension name="VK_KHR_shader_clock" number="182" type="device" author="KHR" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" contact="Aaron Hagan @ahagan" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_KHR_SHADER_CLOCK_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_shader_clock&quot;" name="VK_KHR_SHADER_CLOCK_EXTENSION_NAME"/>
@@ -18187,7 +18118,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkPipelineCompilerControlCreateInfoAMD"/>
</require>
</extension>
- <extension name="VK_EXT_calibrated_timestamps" number="185" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Daniel Rakos @drakos-amd" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_calibrated_timestamps" number="185" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Daniel Rakos @drakos-amd" supported="vulkan,vulkansc">
<require>
<enum value="2" name="VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_calibrated_timestamps&quot;" name="VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME"/>
@@ -18257,7 +18188,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkDeviceMemoryOverallocationCreateInfoAMD"/>
</require>
</extension>
- <extension name="VK_EXT_vertex_attribute_divisor" number="191" type="device" depends="VK_KHR_get_physical_device_properties2" author="NV" contact="Vikram Kushwaha @vkushwaha" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_vertex_attribute_divisor" number="191" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="NV" contact="Vikram Kushwaha @vkushwaha" supported="vulkan,vulkansc">
<require>
<enum value="3" name="VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_vertex_attribute_divisor&quot;" name="VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME"/>
@@ -18305,8 +18236,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<require>
<enum value="0" name="VK_GOOGLE_EXTENSION_196_SPEC_VERSION"/>
<enum value="&quot;VK_GOOGLE_extension_196&quot;" name="VK_GOOGLE_EXTENSION_196_EXTENSION_NAME"/>
- <enum bitpos="1" extends="VkPipelineCacheCreateFlagBits"
- name="VK_PIPELINE_CACHE_CREATE_RESERVED_1_BIT_EXT"/>
+ <enum extends="VkPipelineCacheCreateFlagBits" name="VK_PIPELINE_CACHE_CREATE_READ_ONLY_BIT_EXT" alias="VK_PIPELINE_CACHE_CREATE_READ_ONLY_BIT"/>
</require>
</extension>
<extension name="VK_KHR_driver_properties" number="197" type="device" depends="VK_KHR_get_physical_device_properties2" author="KHR" contact="Daniel Rakos @drakos-amd" supported="vulkan" promotedto="VK_VERSION_1_2">
@@ -18369,7 +18299,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum extends="VkResolveModeFlagBits" name="VK_RESOLVE_MODE_MAX_BIT_KHR" alias="VK_RESOLVE_MODE_MAX_BIT"/>
</require>
</extension>
- <extension name="VK_KHR_swapchain_mutable_format" number="201" type="device" author="KHR" depends="VK_KHR_swapchain+VK_KHR_maintenance2+VK_KHR_image_format_list" contact="Daniel Rakos @drakos-arm" supported="vulkan,vulkansc">
+ <extension name="VK_KHR_swapchain_mutable_format" number="201" type="device" author="KHR" depends="VK_KHR_swapchain+(VK_KHR_maintenance2,VK_VERSION_1_1)+(VK_KHR_image_format_list,VK_VERSION_1_2)" contact="Daniel Rakos @drakos-amd" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_swapchain_mutable_format&quot;" name="VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME"/>
@@ -18532,7 +18462,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkPhysicalDeviceVulkanMemoryModelFeaturesKHR"/>
</require>
</extension>
- <extension name="VK_EXT_pci_bus_info" number="213" type="device" author="EXT" depends="VK_KHR_get_physical_device_properties2" contact="Matthaeus G. Chajdas @anteru" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_pci_bus_info" number="213" type="device" author="EXT" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" contact="Matthaeus G. Chajdas @anteru" supported="vulkan,vulkansc">
<require>
<enum value="2" name="VK_EXT_PCI_BUS_INFO_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_pci_bus_info&quot;" name="VK_EXT_PCI_BUS_INFO_EXTENSION_NAME"/>
@@ -18562,7 +18492,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<command name="vkCreateImagePipeSurfaceFUCHSIA"/>
</require>
</extension>
- <extension name="VK_KHR_shader_terminate_invocation" number="216" type="device" author="KHR" depends="VK_KHR_get_physical_device_properties2" contact="Jesse Hall @critsec" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
+ <extension name="VK_KHR_shader_terminate_invocation" number="216" type="device" author="KHR" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" contact="Jesse Hall @critsec" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
<require>
<enum value="1" name="VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_shader_terminate_invocation&quot;" name="VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME"/>
@@ -18666,7 +18596,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum extends="VkPipelineShaderStageCreateFlagBits" name="VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT" alias="VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT"/>
</require>
</extension>
- <extension name="VK_KHR_fragment_shading_rate" number="227" type="device" depends="VK_KHR_create_renderpass2+VK_KHR_get_physical_device_properties2" author="KHR" contact="Tobias Hector @tobski" supported="vulkan,vulkansc">
+ <extension name="VK_KHR_fragment_shading_rate" number="227" type="device" depends="(VK_KHR_create_renderpass2,VK_VERSION_1_2)+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)" author="KHR" contact="Tobias Hector @tobski" supported="vulkan,vulkansc">
<require>
<enum value="2" name="VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_fragment_shading_rate&quot;" name="VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME"/>
@@ -18744,7 +18674,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_AMD_extension_234&quot;" name="VK_AMD_EXTENSION_234_EXTENSION_NAME"/>
</require>
</extension>
- <extension name="VK_EXT_shader_image_atomic_int64" number="235" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Tobias Hector @tobski" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_shader_image_atomic_int64" number="235" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Tobias Hector @tobski" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_shader_image_atomic_int64&quot;" name="VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME"/>
@@ -18764,7 +18694,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_KHR_spirv_1_4&quot;" name="VK_KHR_SPIRV_1_4_EXTENSION_NAME"/>
</require>
</extension>
- <extension name="VK_EXT_memory_budget" number="238" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Jeff Bolz @jeffbolznv" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_memory_budget" number="238" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Jeff Bolz @jeffbolznv" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_EXT_MEMORY_BUDGET_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_memory_budget&quot;" name="VK_EXT_MEMORY_BUDGET_EXTENSION_NAME"/>
@@ -18923,7 +18853,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<command name="vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV"/>
</require>
</extension>
- <extension name="VK_EXT_fragment_shader_interlock" number="252" author="EXT" type="device" depends="VK_KHR_get_physical_device_properties2" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_fragment_shader_interlock" number="252" author="EXT" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_fragment_shader_interlock&quot;" name="VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME"/>
@@ -18931,7 +18861,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT"/>
</require>
</extension>
- <extension name="VK_EXT_ycbcr_image_arrays" number="253" type="device" depends="VK_KHR_sampler_ycbcr_conversion" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_ycbcr_image_arrays" number="253" type="device" depends="VK_KHR_sampler_ycbcr_conversion,VK_VERSION_1_1" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_ycbcr_image_arrays&quot;" name="VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME"/>
@@ -19029,7 +18959,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum bitpos="19" extends="VkImageCreateFlagBits" name="VK_IMAGE_CREATE_RESERVED_19_BIT_EXT"/>
</require>
</extension>
- <extension name="VK_EXT_line_rasterization" number="260" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Jeff Bolz @jeffbolznv" specialuse="cadsupport" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_line_rasterization" number="260" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Jeff Bolz @jeffbolznv" specialuse="cadsupport" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_EXT_LINE_RASTERIZATION_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_line_rasterization&quot;" name="VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME"/>
@@ -19044,7 +18974,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<command name="vkCmdSetLineStippleEXT"/>
</require>
</extension>
- <extension name="VK_EXT_shader_atomic_float" number="261" type="device" author="NV" depends="VK_KHR_get_physical_device_properties2" contact="Vikram Kushwaha @vkushwaha-nv" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_shader_atomic_float" number="261" type="device" author="NV" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" contact="Vikram Kushwaha @vkushwaha-nv" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_shader_atomic_float&quot;" name="VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME"/>
@@ -19079,7 +19009,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_BRCM_extension_265&quot;" name="VK_BRCM_EXTENSION_265_EXTENSION_NAME"/>
</require>
</extension>
- <extension name="VK_EXT_index_type_uint8" number="266" type="device" author="EXT" contact="Piers Daniell @pdaniell-nv" depends="VK_KHR_get_physical_device_properties2" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_index_type_uint8" number="266" type="device" author="EXT" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_index_type_uint8&quot;" name="VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME"/>
@@ -19094,7 +19024,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_EXT_extension_267&quot;" name="VK_EXT_EXTENSION_267_EXTENSION_NAME"/>
</require>
</extension>
- <extension name="VK_EXT_extended_dynamic_state" number="268" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
+ <extension name="VK_EXT_extended_dynamic_state" number="268" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
<require>
<enum value="1" name="VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_extended_dynamic_state&quot;" name="VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME"/>
@@ -19231,7 +19161,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<command name="vkReleaseSwapchainImagesEXT"/>
</require>
</extension>
- <extension name="VK_EXT_shader_demote_to_helper_invocation" number="277" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Jeff Bolz @jeffbolznv" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
+ <extension name="VK_EXT_shader_demote_to_helper_invocation" number="277" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Jeff Bolz @jeffbolznv" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
<require>
<enum value="1" name="VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_shader_demote_to_helper_invocation&quot;" name="VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME"/>
@@ -19313,7 +19243,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR"/>
</require>
</extension>
- <extension name="VK_EXT_texel_buffer_alignment" number="282" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Jeff Bolz @jeffbolznv" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
+ <extension name="VK_EXT_texel_buffer_alignment" number="282" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Jeff Bolz @jeffbolznv" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
<require>
<enum value="1" name="VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_texel_buffer_alignment&quot;" name="VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME"/>
@@ -19363,7 +19293,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<command name="vkGetDrmDisplayEXT"/>
</require>
</extension>
- <extension name="VK_EXT_robustness2" number="287" type="device" author="EXT" contact="Liam Middlebrook @liam-middlebrook" depends="VK_KHR_get_physical_device_properties2" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_robustness2" number="287" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Liam Middlebrook @liam-middlebrook" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_EXT_ROBUSTNESS_2_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_robustness2&quot;" name="VK_EXT_ROBUSTNESS_2_EXTENSION_NAME"/>
@@ -19373,7 +19303,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkPhysicalDeviceRobustness2PropertiesEXT"/>
</require>
</extension>
- <extension name="VK_EXT_custom_border_color" number="288" type="device" author="EXT" contact="Liam Middlebrook @liam-middlebrook" specialuse="glemulation,d3demulation" depends="VK_KHR_get_physical_device_properties2" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_custom_border_color" number="288" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Liam Middlebrook @liam-middlebrook" specialuse="glemulation,d3demulation" supported="vulkan,vulkansc">
<require>
<enum value="12" name="VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_custom_border_color&quot;" name="VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME"/>
@@ -19525,7 +19455,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
</extension>
<extension name="VK_KHR_video_encode_queue" number="300" type="device" depends="VK_KHR_video_queue+VK_KHR_synchronization2" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" provisional="true" platform="provisional" supported="vulkan">
<require>
- <enum value="7" name="VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION"/>
+ <enum value="8" name="VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_video_encode_queue&quot;" name="VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME"/>
<!-- VkPipelineStageFlagBits bitpos="27" is reserved by this extension, but not used -->
<enum bitpos="27" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS" />
@@ -19536,6 +19466,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+ <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_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="1" extends="VkVideoCodingControlFlagBitsKHR" name="VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum bitpos="2" extends="VkVideoCodingControlFlagBitsKHR" name="VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
@@ -19549,7 +19480,9 @@ typedef void* <name>MTLSharedEvent_id</name>;
<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"/>
+ <enum offset="0" extends="VkQueryType" name="VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+
+ <enum offset="0" extends="VkResult" dir="-" name="VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<type name="VkVideoEncodeFlagsKHR"/>
<type name="VkVideoEncodeInfoKHR"/>
@@ -19558,6 +19491,10 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkVideoEncodeCapabilityFlagsKHR"/>
<type name="VkVideoEncodeCapabilitiesKHR"/>
+ <type name="VkQueryPoolVideoEncodeFeedbackCreateInfoKHR"/>
+ <type name="VkVideoEncodeFeedbackFlagBitsKHR"/>
+ <type name="VkVideoEncodeFeedbackFlagsKHR"/>
+
<type name="VkVideoEncodeUsageFlagBitsKHR"/>
<type name="VkVideoEncodeUsageFlagsKHR"/>
<type name="VkVideoEncodeContentFlagBitsKHR"/>
@@ -19712,7 +19649,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_AMD_extension_314&quot;" name="VK_AMD_EXTENSION_314_EXTENSION_NAME"/>
</require>
</extension>
- <extension name="VK_KHR_synchronization2" number="315" type="device" author="KHR" depends="VK_KHR_get_physical_device_properties2" contact="Tobias Hector @tobski" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
+ <extension name="VK_KHR_synchronization2" number="315" type="device" author="KHR" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" contact="Tobias Hector @tobski" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
<require>
<enum value="1" name="VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_synchronization2&quot;" name="VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME"/>
@@ -20024,7 +19961,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_NV_extension_330&quot;" name="VK_NV_EXTENSION_330_EXTENSION_NAME"/>
</require>
</extension>
- <extension name="VK_EXT_ycbcr_2plane_444_formats" number="331" type="device" depends="VK_KHR_sampler_ycbcr_conversion" author="EXT" contact="Tony Zlatinski @tzlatinski" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
+ <extension name="VK_EXT_ycbcr_2plane_444_formats" number="331" type="device" depends="VK_KHR_sampler_ycbcr_conversion,VK_VERSION_1_1" author="EXT" contact="Tony Zlatinski @tzlatinski" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
<require>
<comment>
VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT and
@@ -20072,7 +20009,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_KHR_extension_335&quot;" name="VK_KHR_EXTENSION_335_EXTENSION_NAME"/>
</require>
</extension>
- <extension name="VK_EXT_image_robustness" number="336" type="device" author="EXT" contact="Graeme Leese @gnl21" supported="vulkan,vulkansc" depends="VK_KHR_get_physical_device_properties2" promotedto="VK_VERSION_1_3">
+ <extension name="VK_EXT_image_robustness" number="336" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Graeme Leese @gnl21" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
<require>
<enum value="1" name="VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_image_robustness&quot;" name="VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME"/>
@@ -20088,7 +20025,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR"/>
</require>
</extension>
- <extension name="VK_KHR_copy_commands2" number="338" author="KHR" type="device" contact="Jeff Leger @jackohound" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
+ <extension name="VK_KHR_copy_commands2" number="338" author="KHR" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" contact="Jeff Leger @jackohound" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
<require>
<enum value="1" name="VK_KHR_COPY_COMMANDS_2_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_copy_commands2&quot;" name="VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME"/>
@@ -20157,7 +20094,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT"/>
</require>
</extension>
- <extension name="VK_EXT_4444_formats" number="341" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Joshua Ashton @Joshua-Ashton" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
+ <extension name="VK_EXT_4444_formats" number="341" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Joshua Ashton @Joshua-Ashton" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
<require>
<comment>
VkPhysicalDevice4444FormatsFeaturesEXT and
@@ -20263,7 +20200,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkMutableDescriptorTypeCreateInfoVALVE"/>
</require>
</extension>
- <extension name="VK_EXT_vertex_input_dynamic_state" number="353" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_vertex_input_dynamic_state" number="353" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc">
<require>
<enum value="2" name="VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_vertex_input_dynamic_state&quot;" name="VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME"/>
@@ -20574,7 +20511,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkMultisampledRenderToSingleSampledInfoEXT"/>
</require>
</extension>
- <extension name="VK_EXT_extended_dynamic_state2" number="378" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Vikram Kushwaha @vkushwaha-nv" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
+ <extension name="VK_EXT_extended_dynamic_state2" number="378" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Vikram Kushwaha @vkushwaha-nv" supported="vulkan,vulkansc" promotedto="VK_VERSION_1_3">
<require>
<enum value="1" name="VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_extended_dynamic_state2&quot;" name="VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME"/>
@@ -20615,7 +20552,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_KHR_extension_381&quot;" name="VK_KHR_EXTENSION_381_EXTENSION_NAME"/>
</require>
</extension>
- <extension name="VK_EXT_color_write_enable" number="382" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Sharif Elcott @selcott" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_color_write_enable" number="382" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Sharif Elcott @selcott" supported="vulkan,vulkansc">
<require>
<enum value="1" name="VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_color_write_enable&quot;" name="VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME"/>
@@ -21839,6 +21776,43 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM"/>
</require>
</extension>
+ <extension name="VK_EXT_extension_512" number="512" author="EXT" contact="Jean-Noe Morissette @MagicPoncho" type="device" supported="disabled">
+ <require>
+ <enum value="0" name="VK_EXT_EXTENSION_512_SPEC_VERSION"/>
+ <enum value="&quot;VK_EXT_extension_512&quot;" name="VK_EXT_EXTENSION_512_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_KHR_extension_513" number="513" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" type="device" supported="disabled">
+ <require>
+ <enum value="0" name="VK_KHR_EXTENSION_513_SPEC_VERSION"/>
+ <enum value="&quot;VK_KHR_extension_513&quot;" name="VK_KHR_EXTENSION_513_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_KHR_extension_514" number="514" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" type="device" supported="disabled">
+ <require>
+ <enum value="0" name="VK_KHR_EXTENSION_514_SPEC_VERSION"/>
+ <enum value="&quot;VK_KHR_extension_514&quot;" name="VK_KHR_EXTENSION_514_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_KHR_extension_515" number="515" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" type="device" supported="disabled">
+ <require>
+ <enum value="0" name="VK_KHR_EXTENSION_515_SPEC_VERSION"/>
+ <enum value="&quot;VK_KHR_extension_515&quot;" name="VK_KHR_EXTENSION_515_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_KHR_extension_516" number="516" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" type="device" supported="disabled">
+ <require>
+ <enum value="0" name="VK_KHR_EXTENSION_516_SPEC_VERSION"/>
+ <enum value="&quot;VK_KHR_extension_516&quot;" name="VK_KHR_EXTENSION_516_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_EXT_extension_517" number="517" author="EXT" contact="Daniel Story" supported="disabled">
+ <require>
+ <enum value="0" name="VK_EXT_EXTENSION_517_SPEC_VERSION"/>
+ <enum value="&quot;VK_EXT_extension_517&quot;" name="VK_EXT_EXTENSION_517_EXTENSION_NAME"/>
+ <enum bitpos="6" extends="VkDescriptorSetLayoutCreateFlagBits" name="VK_DESCRIPTOR_SET_LAYOUT_CREATE_RESERVED_6_BIT_EXT"/>
+ </require>
+ </extension>
</extensions>
<formats>
<format name="VK_FORMAT_R4G4_UNORM_PACK8" class="8-bit" blockSize="1" texelsPerBlock="1" packed="8">