build: Update to header 1.3.250

- Update known-good
- Generate source
- Add missing case to dynamic state switch statement
diff --git a/build-android/known_good.json b/build-android/known_good.json
index c5768e9..f8b1ec3 100755
--- a/build-android/known_good.json
+++ b/build-android/known_good.json
@@ -16,7 +16,7 @@
             "name": "Vulkan-Headers",
             "url": "https://github.com/KhronosGroup/Vulkan-Headers.git",
             "sub_dir": "Vulkan-Headers",
-            "commit": "v1.3.249"
+            "commit": "v1.3.250"
         },
         {
             "name": "SPIRV-Tools",
diff --git a/layers/VkLayer_khronos_validation.json.in b/layers/VkLayer_khronos_validation.json.in
index 1b85459..4bfb6e4 100644
--- a/layers/VkLayer_khronos_validation.json.in
+++ b/layers/VkLayer_khronos_validation.json.in
@@ -4,7 +4,7 @@
         "name": "VK_LAYER_KHRONOS_validation",
         "type": "GLOBAL",
         "library_path": "@JSON_LIBRARY_PATH@",
-        "api_version": "1.3.249",
+        "api_version": "1.3.250",
         "implementation_version": "1",
         "description": "Khronos Validation Layer",
         "introduction": "The main, comprehensive Khronos validation layer.\n\nVulkan is an Explicit API, enabling direct control over how GPUs actually work. By design, minimal error checking is done inside a Vulkan driver. Applications have full control and responsibility for correct operation. Any errors in how Vulkan is used can result in a crash. \n\nThe Khronos Valiation Layer can be enabled to assist development by enabling developers to verify their applications correctly use the Vulkan API.",
diff --git a/layers/generated/chassis.cpp b/layers/generated/chassis.cpp
index f21e137..5f5351e 100644
--- a/layers/generated/chassis.cpp
+++ b/layers/generated/chassis.cpp
@@ -14733,6 +14733,28 @@
 
 
 
+VKAPI_ATTR void VKAPI_CALL CmdSetAttachmentFeedbackLoopEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkImageAspectFlags                          aspectMask) {
+    auto layer_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
+    bool skip = false;
+    for (const ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallValidateCmdSetAttachmentFeedbackLoopEnableEXT]) {
+        auto lock = intercept->ReadLock();
+        skip |= intercept->PreCallValidateCmdSetAttachmentFeedbackLoopEnableEXT(commandBuffer, aspectMask);
+        if (skip) return;
+    }
+    for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallRecordCmdSetAttachmentFeedbackLoopEnableEXT]) {
+        auto lock = intercept->WriteLock();
+        intercept->PreCallRecordCmdSetAttachmentFeedbackLoopEnableEXT(commandBuffer, aspectMask);
+    }
+    DispatchCmdSetAttachmentFeedbackLoopEnableEXT(commandBuffer, aspectMask);
+    for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPostCallRecordCmdSetAttachmentFeedbackLoopEnableEXT]) {
+        auto lock = intercept->WriteLock();
+        intercept->PostCallRecordCmdSetAttachmentFeedbackLoopEnableEXT(commandBuffer, aspectMask);
+    }
+}
+
+
 VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureKHR(
     VkDevice                                    device,
     const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
@@ -16011,6 +16033,7 @@
     {"vkCmdBindShadersEXT", {kFuncTypeDev, (void*)CmdBindShadersEXT}},
     {"vkGetFramebufferTilePropertiesQCOM", {kFuncTypeDev, (void*)GetFramebufferTilePropertiesQCOM}},
     {"vkGetDynamicRenderingTilePropertiesQCOM", {kFuncTypeDev, (void*)GetDynamicRenderingTilePropertiesQCOM}},
+    {"vkCmdSetAttachmentFeedbackLoopEnableEXT", {kFuncTypeDev, (void*)CmdSetAttachmentFeedbackLoopEnableEXT}},
     {"vkCreateAccelerationStructureKHR", {kFuncTypeDev, (void*)CreateAccelerationStructureKHR}},
     {"vkDestroyAccelerationStructureKHR", {kFuncTypeDev, (void*)DestroyAccelerationStructureKHR}},
     {"vkCmdBuildAccelerationStructuresKHR", {kFuncTypeDev, (void*)CmdBuildAccelerationStructuresKHR}},
diff --git a/layers/generated/chassis.h b/layers/generated/chassis.h
index 391a876..4f91e81 100644
--- a/layers/generated/chassis.h
+++ b/layers/generated/chassis.h
@@ -3747,6 +3747,11 @@
 
 
 
+VKAPI_ATTR void VKAPI_CALL CmdSetAttachmentFeedbackLoopEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkImageAspectFlags                          aspectMask);
+
+
 VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureKHR(
     VkDevice                                    device,
     const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
@@ -6075,6 +6080,9 @@
         virtual bool PreCallValidateGetDynamicRenderingTilePropertiesQCOM(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties) const { return false; };
         virtual void PreCallRecordGetDynamicRenderingTilePropertiesQCOM(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties) {};
         virtual void PostCallRecordGetDynamicRenderingTilePropertiesQCOM(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties, VkResult result) {};
+        virtual bool PreCallValidateCmdSetAttachmentFeedbackLoopEnableEXT(VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask) const { return false; };
+        virtual void PreCallRecordCmdSetAttachmentFeedbackLoopEnableEXT(VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask) {};
+        virtual void PostCallRecordCmdSetAttachmentFeedbackLoopEnableEXT(VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask) {};
         virtual bool PreCallValidateCreateAccelerationStructureKHR(VkDevice                                           device, const VkAccelerationStructureCreateInfoKHR*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkAccelerationStructureKHR*                        pAccelerationStructure) const { return false; };
         virtual void PreCallRecordCreateAccelerationStructureKHR(VkDevice                                           device, const VkAccelerationStructureCreateInfoKHR*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkAccelerationStructureKHR*                        pAccelerationStructure) {};
         virtual void PostCallRecordCreateAccelerationStructureKHR(VkDevice                                           device, const VkAccelerationStructureCreateInfoKHR*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkAccelerationStructureKHR*                        pAccelerationStructure, VkResult result) {};
diff --git a/layers/generated/chassis_dispatch_helper.h b/layers/generated/chassis_dispatch_helper.h
index 8e30ae7..c5bafbf 100644
--- a/layers/generated/chassis_dispatch_helper.h
+++ b/layers/generated/chassis_dispatch_helper.h
@@ -1499,6 +1499,9 @@
     InterceptIdPreCallValidateGetDynamicRenderingTilePropertiesQCOM,
     InterceptIdPreCallRecordGetDynamicRenderingTilePropertiesQCOM,
     InterceptIdPostCallRecordGetDynamicRenderingTilePropertiesQCOM,
+    InterceptIdPreCallValidateCmdSetAttachmentFeedbackLoopEnableEXT,
+    InterceptIdPreCallRecordCmdSetAttachmentFeedbackLoopEnableEXT,
+    InterceptIdPostCallRecordCmdSetAttachmentFeedbackLoopEnableEXT,
     InterceptIdPreCallValidateCreateAccelerationStructureKHR,
     InterceptIdPreCallRecordCreateAccelerationStructureKHR,
     InterceptIdPostCallRecordCreateAccelerationStructureKHR,
@@ -3201,6 +3204,9 @@
     BUILD_DISPATCH_VECTOR(PreCallValidateGetDynamicRenderingTilePropertiesQCOM);
     BUILD_DISPATCH_VECTOR(PreCallRecordGetDynamicRenderingTilePropertiesQCOM);
     BUILD_DISPATCH_VECTOR(PostCallRecordGetDynamicRenderingTilePropertiesQCOM);
+    BUILD_DISPATCH_VECTOR(PreCallValidateCmdSetAttachmentFeedbackLoopEnableEXT);
+    BUILD_DISPATCH_VECTOR(PreCallRecordCmdSetAttachmentFeedbackLoopEnableEXT);
+    BUILD_DISPATCH_VECTOR(PostCallRecordCmdSetAttachmentFeedbackLoopEnableEXT);
     BUILD_DISPATCH_VECTOR(PreCallValidateCreateAccelerationStructureKHR);
     BUILD_DISPATCH_VECTOR(PreCallRecordCreateAccelerationStructureKHR);
     BUILD_DISPATCH_VECTOR(PostCallRecordCreateAccelerationStructureKHR);
diff --git a/layers/generated/command_validation.cpp b/layers/generated/command_validation.cpp
index af18da8..959bd5c 100644
--- a/layers/generated/command_validation.cpp
+++ b/layers/generated/command_validation.cpp
@@ -149,6 +149,7 @@
     "VUID-vkCmdResolveImage2-commandBuffer-recording",
     "VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-recording",
     "VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-recording",
+    "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-recording",
     "VUID-vkCmdSetBlendConstants-commandBuffer-recording",
     "VUID-vkCmdSetCheckpointNV-commandBuffer-recording",
     "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-recording",
@@ -392,6 +393,7 @@
     {VK_QUEUE_GRAPHICS_BIT, "VUID-vkCmdResolveImage2-commandBuffer-cmdpool"},
     {VK_QUEUE_GRAPHICS_BIT, "VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-cmdpool"},
     {VK_QUEUE_GRAPHICS_BIT, "VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-cmdpool"},
+    {VK_QUEUE_GRAPHICS_BIT, "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-cmdpool"},
     {VK_QUEUE_GRAPHICS_BIT, "VUID-vkCmdSetBlendConstants-commandBuffer-cmdpool"},
     {VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT | VK_QUEUE_TRANSFER_BIT, "VUID-vkCmdSetCheckpointNV-commandBuffer-cmdpool"},
     {VK_QUEUE_GRAPHICS_BIT, "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-cmdpool"},
@@ -678,6 +680,7 @@
     {CMD_RENDER_PASS_BOTH, kVUIDUndefined},
     {CMD_RENDER_PASS_BOTH, kVUIDUndefined},
     {CMD_RENDER_PASS_BOTH, kVUIDUndefined},
+    {CMD_RENDER_PASS_BOTH, kVUIDUndefined},
     {CMD_RENDER_PASS_OUTSIDE, "VUID-vkCmdSetEvent-renderpass"},
     {CMD_RENDER_PASS_OUTSIDE, "VUID-vkCmdSetEvent2-renderpass"},
     {CMD_RENDER_PASS_OUTSIDE, "VUID-vkCmdSetEvent2-renderpass"},
@@ -888,6 +891,7 @@
     {CMD_VIDEO_CODING_OUTSIDE, "VUID-vkCmdResolveImage2-videocoding"},
     {CMD_VIDEO_CODING_OUTSIDE, "VUID-vkCmdSetAlphaToCoverageEnableEXT-videocoding"},
     {CMD_VIDEO_CODING_OUTSIDE, "VUID-vkCmdSetAlphaToOneEnableEXT-videocoding"},
+    {CMD_VIDEO_CODING_OUTSIDE, "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-videocoding"},
     {CMD_VIDEO_CODING_OUTSIDE, "VUID-vkCmdSetBlendConstants-videocoding"},
     {CMD_VIDEO_CODING_OUTSIDE, "VUID-vkCmdSetCheckpointNV-videocoding"},
     {CMD_VIDEO_CODING_OUTSIDE, "VUID-vkCmdSetCoarseSampleOrderNV-videocoding"},
@@ -1237,6 +1241,7 @@
     nullptr,
     nullptr,
     nullptr,
+    nullptr,
 }};
 
 // Used to handle all the implicit VUs that are autogenerated from the registry
diff --git a/layers/generated/command_validation.h b/layers/generated/command_validation.h
index d23f83e..383737b 100644
--- a/layers/generated/command_validation.h
+++ b/layers/generated/command_validation.h
@@ -151,117 +151,118 @@
     CMD_RESOLVEIMAGE2KHR = 123,
     CMD_SETALPHATOCOVERAGEENABLEEXT = 124,
     CMD_SETALPHATOONEENABLEEXT = 125,
-    CMD_SETBLENDCONSTANTS = 126,
-    CMD_SETCHECKPOINTNV = 127,
-    CMD_SETCOARSESAMPLEORDERNV = 128,
-    CMD_SETCOLORBLENDADVANCEDEXT = 129,
-    CMD_SETCOLORBLENDENABLEEXT = 130,
-    CMD_SETCOLORBLENDEQUATIONEXT = 131,
-    CMD_SETCOLORWRITEENABLEEXT = 132,
-    CMD_SETCOLORWRITEMASKEXT = 133,
-    CMD_SETCONSERVATIVERASTERIZATIONMODEEXT = 134,
-    CMD_SETCOVERAGEMODULATIONMODENV = 135,
-    CMD_SETCOVERAGEMODULATIONTABLEENABLENV = 136,
-    CMD_SETCOVERAGEMODULATIONTABLENV = 137,
-    CMD_SETCOVERAGEREDUCTIONMODENV = 138,
-    CMD_SETCOVERAGETOCOLORENABLENV = 139,
-    CMD_SETCOVERAGETOCOLORLOCATIONNV = 140,
-    CMD_SETCULLMODE = 141,
-    CMD_SETCULLMODEEXT = 142,
-    CMD_SETDEPTHBIAS = 143,
-    CMD_SETDEPTHBIASENABLE = 144,
-    CMD_SETDEPTHBIASENABLEEXT = 145,
-    CMD_SETDEPTHBOUNDS = 146,
-    CMD_SETDEPTHBOUNDSTESTENABLE = 147,
-    CMD_SETDEPTHBOUNDSTESTENABLEEXT = 148,
-    CMD_SETDEPTHCLAMPENABLEEXT = 149,
-    CMD_SETDEPTHCLIPENABLEEXT = 150,
-    CMD_SETDEPTHCLIPNEGATIVEONETOONEEXT = 151,
-    CMD_SETDEPTHCOMPAREOP = 152,
-    CMD_SETDEPTHCOMPAREOPEXT = 153,
-    CMD_SETDEPTHTESTENABLE = 154,
-    CMD_SETDEPTHTESTENABLEEXT = 155,
-    CMD_SETDEPTHWRITEENABLE = 156,
-    CMD_SETDEPTHWRITEENABLEEXT = 157,
-    CMD_SETDESCRIPTORBUFFEROFFSETSEXT = 158,
-    CMD_SETDEVICEMASK = 159,
-    CMD_SETDEVICEMASKKHR = 160,
-    CMD_SETDISCARDRECTANGLEEXT = 161,
-    CMD_SETDISCARDRECTANGLEENABLEEXT = 162,
-    CMD_SETDISCARDRECTANGLEMODEEXT = 163,
-    CMD_SETEVENT = 164,
-    CMD_SETEVENT2 = 165,
-    CMD_SETEVENT2KHR = 166,
-    CMD_SETEXCLUSIVESCISSORENABLENV = 167,
-    CMD_SETEXCLUSIVESCISSORNV = 168,
-    CMD_SETEXTRAPRIMITIVEOVERESTIMATIONSIZEEXT = 169,
-    CMD_SETFRAGMENTSHADINGRATEENUMNV = 170,
-    CMD_SETFRAGMENTSHADINGRATEKHR = 171,
-    CMD_SETFRONTFACE = 172,
-    CMD_SETFRONTFACEEXT = 173,
-    CMD_SETLINERASTERIZATIONMODEEXT = 174,
-    CMD_SETLINESTIPPLEEXT = 175,
-    CMD_SETLINESTIPPLEENABLEEXT = 176,
-    CMD_SETLINEWIDTH = 177,
-    CMD_SETLOGICOPEXT = 178,
-    CMD_SETLOGICOPENABLEEXT = 179,
-    CMD_SETPATCHCONTROLPOINTSEXT = 180,
-    CMD_SETPERFORMANCEMARKERINTEL = 181,
-    CMD_SETPERFORMANCEOVERRIDEINTEL = 182,
-    CMD_SETPERFORMANCESTREAMMARKERINTEL = 183,
-    CMD_SETPOLYGONMODEEXT = 184,
-    CMD_SETPRIMITIVERESTARTENABLE = 185,
-    CMD_SETPRIMITIVERESTARTENABLEEXT = 186,
-    CMD_SETPRIMITIVETOPOLOGY = 187,
-    CMD_SETPRIMITIVETOPOLOGYEXT = 188,
-    CMD_SETPROVOKINGVERTEXMODEEXT = 189,
-    CMD_SETRASTERIZATIONSAMPLESEXT = 190,
-    CMD_SETRASTERIZATIONSTREAMEXT = 191,
-    CMD_SETRASTERIZERDISCARDENABLE = 192,
-    CMD_SETRASTERIZERDISCARDENABLEEXT = 193,
-    CMD_SETRAYTRACINGPIPELINESTACKSIZEKHR = 194,
-    CMD_SETREPRESENTATIVEFRAGMENTTESTENABLENV = 195,
-    CMD_SETSAMPLELOCATIONSEXT = 196,
-    CMD_SETSAMPLELOCATIONSENABLEEXT = 197,
-    CMD_SETSAMPLEMASKEXT = 198,
-    CMD_SETSCISSOR = 199,
-    CMD_SETSCISSORWITHCOUNT = 200,
-    CMD_SETSCISSORWITHCOUNTEXT = 201,
-    CMD_SETSHADINGRATEIMAGEENABLENV = 202,
-    CMD_SETSTENCILCOMPAREMASK = 203,
-    CMD_SETSTENCILOP = 204,
-    CMD_SETSTENCILOPEXT = 205,
-    CMD_SETSTENCILREFERENCE = 206,
-    CMD_SETSTENCILTESTENABLE = 207,
-    CMD_SETSTENCILTESTENABLEEXT = 208,
-    CMD_SETSTENCILWRITEMASK = 209,
-    CMD_SETTESSELLATIONDOMAINORIGINEXT = 210,
-    CMD_SETVERTEXINPUTEXT = 211,
-    CMD_SETVIEWPORT = 212,
-    CMD_SETVIEWPORTSHADINGRATEPALETTENV = 213,
-    CMD_SETVIEWPORTSWIZZLENV = 214,
-    CMD_SETVIEWPORTWSCALINGENABLENV = 215,
-    CMD_SETVIEWPORTWSCALINGNV = 216,
-    CMD_SETVIEWPORTWITHCOUNT = 217,
-    CMD_SETVIEWPORTWITHCOUNTEXT = 218,
-    CMD_SUBPASSSHADINGHUAWEI = 219,
-    CMD_TRACERAYSINDIRECT2KHR = 220,
-    CMD_TRACERAYSINDIRECTKHR = 221,
-    CMD_TRACERAYSKHR = 222,
-    CMD_TRACERAYSNV = 223,
-    CMD_UPDATEBUFFER = 224,
-    CMD_WAITEVENTS = 225,
-    CMD_WAITEVENTS2 = 226,
-    CMD_WAITEVENTS2KHR = 227,
-    CMD_WRITEACCELERATIONSTRUCTURESPROPERTIESKHR = 228,
-    CMD_WRITEACCELERATIONSTRUCTURESPROPERTIESNV = 229,
-    CMD_WRITEBUFFERMARKER2AMD = 230,
-    CMD_WRITEBUFFERMARKERAMD = 231,
-    CMD_WRITEMICROMAPSPROPERTIESEXT = 232,
-    CMD_WRITETIMESTAMP = 233,
-    CMD_WRITETIMESTAMP2 = 234,
-    CMD_WRITETIMESTAMP2KHR = 235,
-    CMD_RANGE_SIZE = 236
+    CMD_SETATTACHMENTFEEDBACKLOOPENABLEEXT = 126,
+    CMD_SETBLENDCONSTANTS = 127,
+    CMD_SETCHECKPOINTNV = 128,
+    CMD_SETCOARSESAMPLEORDERNV = 129,
+    CMD_SETCOLORBLENDADVANCEDEXT = 130,
+    CMD_SETCOLORBLENDENABLEEXT = 131,
+    CMD_SETCOLORBLENDEQUATIONEXT = 132,
+    CMD_SETCOLORWRITEENABLEEXT = 133,
+    CMD_SETCOLORWRITEMASKEXT = 134,
+    CMD_SETCONSERVATIVERASTERIZATIONMODEEXT = 135,
+    CMD_SETCOVERAGEMODULATIONMODENV = 136,
+    CMD_SETCOVERAGEMODULATIONTABLEENABLENV = 137,
+    CMD_SETCOVERAGEMODULATIONTABLENV = 138,
+    CMD_SETCOVERAGEREDUCTIONMODENV = 139,
+    CMD_SETCOVERAGETOCOLORENABLENV = 140,
+    CMD_SETCOVERAGETOCOLORLOCATIONNV = 141,
+    CMD_SETCULLMODE = 142,
+    CMD_SETCULLMODEEXT = 143,
+    CMD_SETDEPTHBIAS = 144,
+    CMD_SETDEPTHBIASENABLE = 145,
+    CMD_SETDEPTHBIASENABLEEXT = 146,
+    CMD_SETDEPTHBOUNDS = 147,
+    CMD_SETDEPTHBOUNDSTESTENABLE = 148,
+    CMD_SETDEPTHBOUNDSTESTENABLEEXT = 149,
+    CMD_SETDEPTHCLAMPENABLEEXT = 150,
+    CMD_SETDEPTHCLIPENABLEEXT = 151,
+    CMD_SETDEPTHCLIPNEGATIVEONETOONEEXT = 152,
+    CMD_SETDEPTHCOMPAREOP = 153,
+    CMD_SETDEPTHCOMPAREOPEXT = 154,
+    CMD_SETDEPTHTESTENABLE = 155,
+    CMD_SETDEPTHTESTENABLEEXT = 156,
+    CMD_SETDEPTHWRITEENABLE = 157,
+    CMD_SETDEPTHWRITEENABLEEXT = 158,
+    CMD_SETDESCRIPTORBUFFEROFFSETSEXT = 159,
+    CMD_SETDEVICEMASK = 160,
+    CMD_SETDEVICEMASKKHR = 161,
+    CMD_SETDISCARDRECTANGLEEXT = 162,
+    CMD_SETDISCARDRECTANGLEENABLEEXT = 163,
+    CMD_SETDISCARDRECTANGLEMODEEXT = 164,
+    CMD_SETEVENT = 165,
+    CMD_SETEVENT2 = 166,
+    CMD_SETEVENT2KHR = 167,
+    CMD_SETEXCLUSIVESCISSORENABLENV = 168,
+    CMD_SETEXCLUSIVESCISSORNV = 169,
+    CMD_SETEXTRAPRIMITIVEOVERESTIMATIONSIZEEXT = 170,
+    CMD_SETFRAGMENTSHADINGRATEENUMNV = 171,
+    CMD_SETFRAGMENTSHADINGRATEKHR = 172,
+    CMD_SETFRONTFACE = 173,
+    CMD_SETFRONTFACEEXT = 174,
+    CMD_SETLINERASTERIZATIONMODEEXT = 175,
+    CMD_SETLINESTIPPLEEXT = 176,
+    CMD_SETLINESTIPPLEENABLEEXT = 177,
+    CMD_SETLINEWIDTH = 178,
+    CMD_SETLOGICOPEXT = 179,
+    CMD_SETLOGICOPENABLEEXT = 180,
+    CMD_SETPATCHCONTROLPOINTSEXT = 181,
+    CMD_SETPERFORMANCEMARKERINTEL = 182,
+    CMD_SETPERFORMANCEOVERRIDEINTEL = 183,
+    CMD_SETPERFORMANCESTREAMMARKERINTEL = 184,
+    CMD_SETPOLYGONMODEEXT = 185,
+    CMD_SETPRIMITIVERESTARTENABLE = 186,
+    CMD_SETPRIMITIVERESTARTENABLEEXT = 187,
+    CMD_SETPRIMITIVETOPOLOGY = 188,
+    CMD_SETPRIMITIVETOPOLOGYEXT = 189,
+    CMD_SETPROVOKINGVERTEXMODEEXT = 190,
+    CMD_SETRASTERIZATIONSAMPLESEXT = 191,
+    CMD_SETRASTERIZATIONSTREAMEXT = 192,
+    CMD_SETRASTERIZERDISCARDENABLE = 193,
+    CMD_SETRASTERIZERDISCARDENABLEEXT = 194,
+    CMD_SETRAYTRACINGPIPELINESTACKSIZEKHR = 195,
+    CMD_SETREPRESENTATIVEFRAGMENTTESTENABLENV = 196,
+    CMD_SETSAMPLELOCATIONSEXT = 197,
+    CMD_SETSAMPLELOCATIONSENABLEEXT = 198,
+    CMD_SETSAMPLEMASKEXT = 199,
+    CMD_SETSCISSOR = 200,
+    CMD_SETSCISSORWITHCOUNT = 201,
+    CMD_SETSCISSORWITHCOUNTEXT = 202,
+    CMD_SETSHADINGRATEIMAGEENABLENV = 203,
+    CMD_SETSTENCILCOMPAREMASK = 204,
+    CMD_SETSTENCILOP = 205,
+    CMD_SETSTENCILOPEXT = 206,
+    CMD_SETSTENCILREFERENCE = 207,
+    CMD_SETSTENCILTESTENABLE = 208,
+    CMD_SETSTENCILTESTENABLEEXT = 209,
+    CMD_SETSTENCILWRITEMASK = 210,
+    CMD_SETTESSELLATIONDOMAINORIGINEXT = 211,
+    CMD_SETVERTEXINPUTEXT = 212,
+    CMD_SETVIEWPORT = 213,
+    CMD_SETVIEWPORTSHADINGRATEPALETTENV = 214,
+    CMD_SETVIEWPORTSWIZZLENV = 215,
+    CMD_SETVIEWPORTWSCALINGENABLENV = 216,
+    CMD_SETVIEWPORTWSCALINGNV = 217,
+    CMD_SETVIEWPORTWITHCOUNT = 218,
+    CMD_SETVIEWPORTWITHCOUNTEXT = 219,
+    CMD_SUBPASSSHADINGHUAWEI = 220,
+    CMD_TRACERAYSINDIRECT2KHR = 221,
+    CMD_TRACERAYSINDIRECTKHR = 222,
+    CMD_TRACERAYSKHR = 223,
+    CMD_TRACERAYSNV = 224,
+    CMD_UPDATEBUFFER = 225,
+    CMD_WAITEVENTS = 226,
+    CMD_WAITEVENTS2 = 227,
+    CMD_WAITEVENTS2KHR = 228,
+    CMD_WRITEACCELERATIONSTRUCTURESPROPERTIESKHR = 229,
+    CMD_WRITEACCELERATIONSTRUCTURESPROPERTIESNV = 230,
+    CMD_WRITEBUFFERMARKER2AMD = 231,
+    CMD_WRITEBUFFERMARKERAMD = 232,
+    CMD_WRITEMICROMAPSPROPERTIESEXT = 233,
+    CMD_WRITETIMESTAMP = 234,
+    CMD_WRITETIMESTAMP2 = 235,
+    CMD_WRITETIMESTAMP2KHR = 236,
+    CMD_RANGE_SIZE = 237
 } CMD_TYPE;
 
 static const std::array<const char *, CMD_RANGE_SIZE> kGeneratedCommandNameList = {{
@@ -391,6 +392,7 @@
     "vkCmdResolveImage2KHR",
     "vkCmdSetAlphaToCoverageEnableEXT",
     "vkCmdSetAlphaToOneEnableEXT",
+    "vkCmdSetAttachmentFeedbackLoopEnableEXT",
     "vkCmdSetBlendConstants",
     "vkCmdSetCheckpointNV",
     "vkCmdSetCoarseSampleOrderNV",
diff --git a/layers/generated/dynamic_state_helper.cpp b/layers/generated/dynamic_state_helper.cpp
index db93fca..6307e27 100644
--- a/layers/generated/dynamic_state_helper.cpp
+++ b/layers/generated/dynamic_state_helper.cpp
@@ -166,6 +166,8 @@
             return VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV;
         case CB_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV:
             return VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV;
+        case CB_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT:
+            return VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT;
         default:
             return VK_DYNAMIC_STATE_MAX_ENUM;
     }
@@ -315,6 +317,8 @@
             return CB_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV;
         case VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV:
             return CB_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV;
+        case VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT:
+            return CB_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT;
         default:
             return CB_DYNAMIC_STATE_STATUS_NUM;
     }
diff --git a/layers/generated/dynamic_state_helper.h b/layers/generated/dynamic_state_helper.h
index 27d0b3e..f8dc667 100644
--- a/layers/generated/dynamic_state_helper.h
+++ b/layers/generated/dynamic_state_helper.h
@@ -96,7 +96,8 @@
     CB_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 69,
     CB_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 70,
     CB_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 71,
-    CB_DYNAMIC_STATE_STATUS_NUM = 72
+    CB_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = 72,
+    CB_DYNAMIC_STATE_STATUS_NUM = 73
 } CBDynamicState;
 
 using CBDynamicFlags = std::bitset<CB_DYNAMIC_STATE_STATUS_NUM>;
diff --git a/layers/generated/enum_flag_bits.h b/layers/generated/enum_flag_bits.h
index 020cb82..92f7089 100644
--- a/layers/generated/enum_flag_bits.h
+++ b/layers/generated/enum_flag_bits.h
@@ -25,7 +25,7 @@
 #include <array>
 #include "vulkan/vulkan.h"
 
-const uint32_t GeneratedVulkanHeaderVersion = 249;
+const uint32_t GeneratedVulkanHeaderVersion = 250;
 const VkAccessFlags AllVkAccessFlagBits = VK_ACCESS_INDIRECT_COMMAND_READ_BIT|VK_ACCESS_INDEX_READ_BIT|VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT|VK_ACCESS_UNIFORM_READ_BIT|VK_ACCESS_INPUT_ATTACHMENT_READ_BIT|VK_ACCESS_SHADER_READ_BIT|VK_ACCESS_SHADER_WRITE_BIT|VK_ACCESS_COLOR_ATTACHMENT_READ_BIT|VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT|VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT|VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT|VK_ACCESS_TRANSFER_READ_BIT|VK_ACCESS_TRANSFER_WRITE_BIT|VK_ACCESS_HOST_READ_BIT|VK_ACCESS_HOST_WRITE_BIT|VK_ACCESS_MEMORY_READ_BIT|VK_ACCESS_MEMORY_WRITE_BIT|VK_ACCESS_NONE|VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT|VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT|VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT|VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT|VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT|VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR|VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR|VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT|VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR|VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV|VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV;
 const VkAttachmentDescriptionFlags AllVkAttachmentDescriptionFlagBits = VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT;
 const VkBufferCreateFlags AllVkBufferCreateFlagBits = VK_BUFFER_CREATE_SPARSE_BINDING_BIT|VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT|VK_BUFFER_CREATE_SPARSE_ALIASED_BIT|VK_BUFFER_CREATE_PROTECTED_BIT|VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT|VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT;
diff --git a/layers/generated/layer_chassis_dispatch.cpp b/layers/generated/layer_chassis_dispatch.cpp
index 0f6638a..d810193 100644
--- a/layers/generated/layer_chassis_dispatch.cpp
+++ b/layers/generated/layer_chassis_dispatch.cpp
@@ -11502,6 +11502,15 @@
     return result;
 }
 
+void DispatchCmdSetAttachmentFeedbackLoopEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkImageAspectFlags                          aspectMask)
+{
+    auto layer_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
+    layer_data->device_dispatch_table.CmdSetAttachmentFeedbackLoopEnableEXT(commandBuffer, aspectMask);
+
+}
+
 VkResult DispatchCreateAccelerationStructureKHR(
     VkDevice                                    device,
     const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
diff --git a/layers/generated/layer_chassis_dispatch.h b/layers/generated/layer_chassis_dispatch.h
index eb07cac..3a89519 100644
--- a/layers/generated/layer_chassis_dispatch.h
+++ b/layers/generated/layer_chassis_dispatch.h
@@ -2797,6 +2797,9 @@
     VkDevice                                    device,
     const VkRenderingInfo*                      pRenderingInfo,
     VkTilePropertiesQCOM*                       pProperties);
+void DispatchCmdSetAttachmentFeedbackLoopEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkImageAspectFlags                          aspectMask);
 VkResult DispatchCreateAccelerationStructureKHR(
     VkDevice                                    device,
     const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
diff --git a/layers/generated/lvt_function_pointers.cpp b/layers/generated/lvt_function_pointers.cpp
index 4e60520..de56ea6 100644
--- a/layers/generated/lvt_function_pointers.cpp
+++ b/layers/generated/lvt_function_pointers.cpp
@@ -314,6 +314,8 @@
 PFN_vkAcquireXlibDisplayEXT AcquireXlibDisplayEXT;
 PFN_vkGetRandROutputDisplayEXT GetRandROutputDisplayEXT;
 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
+// VK_EXT_attachment_feedback_loop_dynamic_state
+PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT CmdSetAttachmentFeedbackLoopEnableEXT;
 // VK_EXT_buffer_device_address
 PFN_vkGetBufferDeviceAddressEXT GetBufferDeviceAddressEXT;
 // VK_EXT_calibrated_timestamps
@@ -1397,6 +1399,11 @@
         },
 #endif // VK_USE_PLATFORM_ANDROID_KHR
         {
+            "VK_EXT_attachment_feedback_loop_dynamic_state", [](VkInstance, VkDevice device) {
+                CmdSetAttachmentFeedbackLoopEnableEXT = reinterpret_cast<PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT>(GetDeviceProcAddr(device, "vkCmdSetAttachmentFeedbackLoopEnableEXT"));
+            }
+        },
+        {
             "VK_EXT_buffer_device_address", [](VkInstance, VkDevice device) {
                 GetBufferDeviceAddressEXT = reinterpret_cast<PFN_vkGetBufferDeviceAddressEXT>(GetDeviceProcAddr(device, "vkGetBufferDeviceAddressEXT"));
             }
@@ -2185,6 +2192,8 @@
     AcquireXlibDisplayEXT = nullptr;
     GetRandROutputDisplayEXT = nullptr;
 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
+    // VK_EXT_attachment_feedback_loop_dynamic_state
+    CmdSetAttachmentFeedbackLoopEnableEXT = nullptr;
     // VK_EXT_buffer_device_address
     GetBufferDeviceAddressEXT = nullptr;
     // VK_EXT_calibrated_timestamps
diff --git a/layers/generated/lvt_function_pointers.h b/layers/generated/lvt_function_pointers.h
index 40cf41f..eb3dd95 100644
--- a/layers/generated/lvt_function_pointers.h
+++ b/layers/generated/lvt_function_pointers.h
@@ -276,6 +276,8 @@
 extern PFN_vkAcquireXlibDisplayEXT AcquireXlibDisplayEXT;
 extern PFN_vkGetRandROutputDisplayEXT GetRandROutputDisplayEXT;
 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
+// VK_EXT_attachment_feedback_loop_dynamic_state
+extern PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT CmdSetAttachmentFeedbackLoopEnableEXT;
 // VK_EXT_buffer_device_address
 extern PFN_vkGetBufferDeviceAddressEXT GetBufferDeviceAddressEXT;
 // VK_EXT_calibrated_timestamps
diff --git a/layers/generated/object_tracker.cpp b/layers/generated/object_tracker.cpp
index bbddaac..d294305 100644
--- a/layers/generated/object_tracker.cpp
+++ b/layers/generated/object_tracker.cpp
@@ -8362,6 +8362,15 @@
     return skip;
 }
 
+bool ObjectLifetimes::PreCallValidateCmdSetAttachmentFeedbackLoopEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkImageAspectFlags                          aspectMask) const {
+    bool skip = false;
+    skip |= ValidateObject(commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-parameter", kVUIDUndefined);
+
+    return skip;
+}
+
 bool ObjectLifetimes::PreCallValidateCreateAccelerationStructureKHR(
     VkDevice                                    device,
     const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
diff --git a/layers/generated/object_tracker.h b/layers/generated/object_tracker.h
index 39f7126..f966507 100644
--- a/layers/generated/object_tracker.h
+++ b/layers/generated/object_tracker.h
@@ -3469,6 +3469,9 @@
     VkDevice                                    device,
     const VkRenderingInfo*                      pRenderingInfo,
     VkTilePropertiesQCOM*                       pProperties) const override;
+bool PreCallValidateCmdSetAttachmentFeedbackLoopEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkImageAspectFlags                          aspectMask) const override;
 bool PreCallValidateCreateAccelerationStructureKHR(
     VkDevice                                    device,
     const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
diff --git a/layers/generated/parameter_validation.cpp b/layers/generated/parameter_validation.cpp
index 09415e6..aab782b 100644
--- a/layers/generated/parameter_validation.cpp
+++ b/layers/generated/parameter_validation.cpp
@@ -5229,6 +5229,14 @@
             }
         } break;
 
+        // Validation code for VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT structure members
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT: { // Covers VUID-VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT-sType-sType
+            if (is_const_param) {
+                VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT *structure = (VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT *) header;
+                skip |= ValidateBool32("VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT", "attachmentFeedbackLoopDynamicState", structure->attachmentFeedbackLoopDynamicState);
+            }
+        } break;
+
         // Validation code for VkWriteDescriptorSetAccelerationStructureKHR structure members
         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR: { // Covers VUID-VkWriteDescriptorSetAccelerationStructureKHR-sType-sType
             if (is_const_param) {
@@ -5492,9 +5500,9 @@
     skip |= ValidateStructType("vkCreateDevice", "pCreateInfo", "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO", pCreateInfo, VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, true, "VUID-vkCreateDevice-pCreateInfo-parameter", "VUID-VkDeviceCreateInfo-sType-sType");
     if (pCreateInfo != nullptr)
     {
-        constexpr std::array allowed_structs_VkDeviceCreateInfo = { VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT, VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV, VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO, VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD, VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES };
+        constexpr std::array allowed_structs_VkDeviceCreateInfo = { VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT, VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV, VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO, VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD, VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES };
 
-        skip |= ValidateStructPnext("vkCreateDevice", "pCreateInfo->pNext", "VkDeviceDeviceMemoryReportCreateInfoEXT, VkDeviceDiagnosticsConfigCreateInfoNV, VkDeviceGroupDeviceCreateInfo, VkDeviceMemoryOverallocationCreateInfoAMD, VkDevicePrivateDataCreateInfo, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceAddressBindingReportFeaturesEXT, VkPhysicalDeviceAmigoProfilingFeaturesSEC, VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceColorWriteEnableFeaturesEXT, VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthClampZeroOneFeaturesEXT, VkPhysicalDeviceDepthClipControlFeaturesEXT, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorBufferFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceDisplacementMicromapFeaturesNV, VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, VkPhysicalDeviceFaultFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, VkPhysicalDeviceImageCompressionControlFeaturesEXT, VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, VkPhysicalDeviceImageProcessingFeaturesQCOM, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, VkPhysicalDeviceImageViewMinLodFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8FeaturesEXT, VkPhysicalDeviceInheritedViewportScissorFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, VkPhysicalDeviceLegacyDitheringFeaturesEXT, VkPhysicalDeviceLineRasterizationFeaturesEXT, VkPhysicalDeviceLinearColorAttachmentFeaturesNV, VkPhysicalDeviceMaintenance4Features, VkPhysicalDeviceMemoryDecompressionFeaturesNV, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiDrawFeaturesEXT, VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT, VkPhysicalDeviceOpticalFlowFeaturesNV, VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, VkPhysicalDevicePipelinePropertiesFeaturesEXT, VkPhysicalDevicePipelineProtectedAccessFeaturesEXT, VkPhysicalDevicePipelineRobustnessFeaturesEXT, VkPhysicalDevicePortabilitySubsetFeaturesKHR, VkPhysicalDevicePresentBarrierFeaturesNV, VkPhysicalDevicePresentIdFeaturesKHR, VkPhysicalDevicePresentWaitFeaturesKHR, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceProvokingVertexFeaturesEXT, VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, VkPhysicalDeviceRayQueryFeaturesKHR, VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, VkPhysicalDeviceRayTracingPipelineFeaturesKHR, VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesEXT, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, VkPhysicalDeviceShaderObjectFeaturesEXT, VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceShaderTileImageFeaturesEXT, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, VkPhysicalDeviceTilePropertiesFeaturesQCOM, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkan13Features, VkPhysicalDeviceVulkanMemoryModelFeatures, VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", pCreateInfo->pNext, allowed_structs_VkDeviceCreateInfo.size(), allowed_structs_VkDeviceCreateInfo.data(), GeneratedVulkanHeaderVersion, "VUID-VkDeviceCreateInfo-pNext-pNext", "VUID-VkDeviceCreateInfo-sType-unique", true, true);
+        skip |= ValidateStructPnext("vkCreateDevice", "pCreateInfo->pNext", "VkDeviceDeviceMemoryReportCreateInfoEXT, VkDeviceDiagnosticsConfigCreateInfoNV, VkDeviceGroupDeviceCreateInfo, VkDeviceMemoryOverallocationCreateInfoAMD, VkDevicePrivateDataCreateInfo, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceAddressBindingReportFeaturesEXT, VkPhysicalDeviceAmigoProfilingFeaturesSEC, VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceColorWriteEnableFeaturesEXT, VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthClampZeroOneFeaturesEXT, VkPhysicalDeviceDepthClipControlFeaturesEXT, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorBufferFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceDisplacementMicromapFeaturesNV, VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, VkPhysicalDeviceFaultFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, VkPhysicalDeviceImageCompressionControlFeaturesEXT, VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, VkPhysicalDeviceImageProcessingFeaturesQCOM, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, VkPhysicalDeviceImageViewMinLodFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8FeaturesEXT, VkPhysicalDeviceInheritedViewportScissorFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, VkPhysicalDeviceLegacyDitheringFeaturesEXT, VkPhysicalDeviceLineRasterizationFeaturesEXT, VkPhysicalDeviceLinearColorAttachmentFeaturesNV, VkPhysicalDeviceMaintenance4Features, VkPhysicalDeviceMemoryDecompressionFeaturesNV, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiDrawFeaturesEXT, VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT, VkPhysicalDeviceOpticalFlowFeaturesNV, VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, VkPhysicalDevicePipelinePropertiesFeaturesEXT, VkPhysicalDevicePipelineProtectedAccessFeaturesEXT, VkPhysicalDevicePipelineRobustnessFeaturesEXT, VkPhysicalDevicePortabilitySubsetFeaturesKHR, VkPhysicalDevicePresentBarrierFeaturesNV, VkPhysicalDevicePresentIdFeaturesKHR, VkPhysicalDevicePresentWaitFeaturesKHR, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceProvokingVertexFeaturesEXT, VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, VkPhysicalDeviceRayQueryFeaturesKHR, VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, VkPhysicalDeviceRayTracingPipelineFeaturesKHR, VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesEXT, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, VkPhysicalDeviceShaderObjectFeaturesEXT, VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceShaderTileImageFeaturesEXT, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, VkPhysicalDeviceTilePropertiesFeaturesQCOM, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkan13Features, VkPhysicalDeviceVulkanMemoryModelFeatures, VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", pCreateInfo->pNext, allowed_structs_VkDeviceCreateInfo.size(), allowed_structs_VkDeviceCreateInfo.data(), GeneratedVulkanHeaderVersion, "VUID-VkDeviceCreateInfo-pNext-pNext", "VUID-VkDeviceCreateInfo-sType-unique", true, true);
 
         skip |= ValidateReservedFlags("vkCreateDevice", "pCreateInfo->flags", pCreateInfo->flags, "VUID-VkDeviceCreateInfo-flags-zerobitmask");
 
@@ -20307,6 +20315,19 @@
 
 
 
+bool StatelessValidation::PreCallValidateCmdSetAttachmentFeedbackLoopEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkImageAspectFlags                          aspectMask) const {
+    bool skip = false;
+    if (!IsExtEnabled(device_extensions.vk_ext_attachment_feedback_loop_layout)) skip |= OutputExtensionError("vkCmdSetAttachmentFeedbackLoopEnableEXT", "VK_EXT_attachment_feedback_loop_layout");
+    if (!IsExtEnabled(device_extensions.vk_khr_get_physical_device_properties2)) skip |= OutputExtensionError("vkCmdSetAttachmentFeedbackLoopEnableEXT", "VK_KHR_get_physical_device_properties2");
+    if (!IsExtEnabled(device_extensions.vk_ext_attachment_feedback_loop_dynamic_state)) skip |= OutputExtensionError("vkCmdSetAttachmentFeedbackLoopEnableEXT", "VK_EXT_attachment_feedback_loop_dynamic_state");
+    skip |= ValidateFlags("vkCmdSetAttachmentFeedbackLoopEnableEXT", "aspectMask", "VkImageAspectFlagBits", AllVkImageAspectFlagBits, aspectMask, kRequiredFlags, "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-aspectMask-parameter", "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-aspectMask-requiredbitmask");
+    return skip;
+}
+
+
+
 bool StatelessValidation::PreCallValidateCreateAccelerationStructureKHR(
     VkDevice                                    device,
     const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
diff --git a/layers/generated/parameter_validation.h b/layers/generated/parameter_validation.h
index e7f714d..eb30ba1 100644
--- a/layers/generated/parameter_validation.h
+++ b/layers/generated/parameter_validation.h
@@ -2762,6 +2762,9 @@
     VkDevice                                    device,
     const VkRenderingInfo*                      pRenderingInfo,
     VkTilePropertiesQCOM*                       pProperties) const override;
+bool PreCallValidateCmdSetAttachmentFeedbackLoopEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkImageAspectFlags                          aspectMask) const override;
 bool PreCallValidateCreateAccelerationStructureKHR(
     VkDevice                                    device,
     const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
diff --git a/layers/generated/thread_safety.cpp b/layers/generated/thread_safety.cpp
index 03df46b..d6311f9 100644
--- a/layers/generated/thread_safety.cpp
+++ b/layers/generated/thread_safety.cpp
@@ -10285,6 +10285,20 @@
     FinishReadObjectParentInstance(device, "vkGetDynamicRenderingTilePropertiesQCOM");
 }
 
+void ThreadSafety::PreCallRecordCmdSetAttachmentFeedbackLoopEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkImageAspectFlags                          aspectMask) {
+    StartWriteObject(commandBuffer, "vkCmdSetAttachmentFeedbackLoopEnableEXT");
+    // Host access to commandBuffer must be externally synchronized
+}
+
+void ThreadSafety::PostCallRecordCmdSetAttachmentFeedbackLoopEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkImageAspectFlags                          aspectMask) {
+    FinishWriteObject(commandBuffer, "vkCmdSetAttachmentFeedbackLoopEnableEXT");
+    // Host access to commandBuffer must be externally synchronized
+}
+
 void ThreadSafety::PreCallRecordCreateAccelerationStructureKHR(
     VkDevice                                    device,
     const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
diff --git a/layers/generated/thread_safety.h b/layers/generated/thread_safety.h
index 5e28746..60bdb0f 100644
--- a/layers/generated/thread_safety.h
+++ b/layers/generated/thread_safety.h
@@ -6797,6 +6797,14 @@
     VkTilePropertiesQCOM*                       pProperties,
     VkResult                                    result) override;
 
+void PreCallRecordCmdSetAttachmentFeedbackLoopEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkImageAspectFlags                          aspectMask) override;
+
+void PostCallRecordCmdSetAttachmentFeedbackLoopEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkImageAspectFlags                          aspectMask) override;
+
 void PreCallRecordCreateAccelerationStructureKHR(
     VkDevice                                    device,
     const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
diff --git a/layers/generated/valid_param_values.cpp b/layers/generated/valid_param_values.cpp
index ff783af..1e71d5c 100644
--- a/layers/generated/valid_param_values.cpp
+++ b/layers/generated/valid_param_values.cpp
@@ -368,6 +368,7 @@
         { &DeviceExtensions::vk_ext_vertex_input_dynamic_state, { VK_DYNAMIC_STATE_VERTEX_INPUT_EXT,  } },
         { &DeviceExtensions::vk_ext_color_write_enable, { VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT,  } },
         { &DeviceExtensions::vk_ext_extended_dynamic_state3, { VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT, VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT, VK_DYNAMIC_STATE_POLYGON_MODE_EXT, VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT, VK_DYNAMIC_STATE_SAMPLE_MASK_EXT, VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT, VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT, VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT, VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT, VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT, VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT, VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT, VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT, VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT, VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT, VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT, VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV, VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV, VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV, VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV, VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV, VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV, VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV, VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV, VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV, VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV,  } },
+        { &DeviceExtensions::vk_ext_attachment_feedback_loop_dynamic_state, { VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT,  } },
     };
     std::vector<VkDynamicState> values(CoreVkDynamicStateEnums.cbegin(), CoreVkDynamicStateEnums.cend());
     std::set<VkDynamicState> unique_exts;
diff --git a/layers/generated/vk_dispatch_table_helper.h b/layers/generated/vk_dispatch_table_helper.h
index 5fa558c..07e1d27 100644
--- a/layers/generated/vk_dispatch_table_helper.h
+++ b/layers/generated/vk_dispatch_table_helper.h
@@ -592,6 +592,7 @@
 static VKAPI_ATTR void VKAPI_CALL StubCmdBindShadersEXT(VkCommandBuffer commandBuffer, uint32_t stageCount, const VkShaderStageFlagBits* pStages, const VkShaderEXT* pShaders) {  };
 static VKAPI_ATTR VkResult VKAPI_CALL StubGetFramebufferTilePropertiesQCOM(VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties) { return VK_SUCCESS; };
 static VKAPI_ATTR VkResult VKAPI_CALL StubGetDynamicRenderingTilePropertiesQCOM(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties) { return VK_SUCCESS; };
+static VKAPI_ATTR void VKAPI_CALL StubCmdSetAttachmentFeedbackLoopEnableEXT(VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask) {  };
 static VKAPI_ATTR VkResult VKAPI_CALL StubCreateAccelerationStructureKHR(VkDevice                                           device, const VkAccelerationStructureCreateInfoKHR*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkAccelerationStructureKHR*                        pAccelerationStructure) { return VK_SUCCESS; };
 static VKAPI_ATTR void VKAPI_CALL StubDestroyAccelerationStructureKHR(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator) {  };
 static VKAPI_ATTR void VKAPI_CALL StubCmdBuildAccelerationStructuresKHR(VkCommandBuffer                                    commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) {  };
@@ -729,6 +730,7 @@
     { "vkCmdResolveImage2KHR", { "VK_KHR_copy_commands2" } },
     { "vkCmdSetAlphaToCoverageEnableEXT", { "VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object" } },
     { "vkCmdSetAlphaToOneEnableEXT", { "VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object" } },
+    { "vkCmdSetAttachmentFeedbackLoopEnableEXT", { "VK_EXT_attachment_feedback_loop_dynamic_state" } },
     { "vkCmdSetCheckpointNV", { "VK_NV_device_diagnostic_checkpoints" } },
     { "vkCmdSetCoarseSampleOrderNV", { "VK_NV_shading_rate_image" } },
     { "vkCmdSetColorBlendAdvancedEXT", { "VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object" } },
@@ -1997,6 +1999,8 @@
     if (table->GetFramebufferTilePropertiesQCOM == nullptr) { table->GetFramebufferTilePropertiesQCOM = (PFN_vkGetFramebufferTilePropertiesQCOM)StubGetFramebufferTilePropertiesQCOM; }
     table->GetDynamicRenderingTilePropertiesQCOM = (PFN_vkGetDynamicRenderingTilePropertiesQCOM) gpa(device, "vkGetDynamicRenderingTilePropertiesQCOM");
     if (table->GetDynamicRenderingTilePropertiesQCOM == nullptr) { table->GetDynamicRenderingTilePropertiesQCOM = (PFN_vkGetDynamicRenderingTilePropertiesQCOM)StubGetDynamicRenderingTilePropertiesQCOM; }
+    table->CmdSetAttachmentFeedbackLoopEnableEXT = (PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT) gpa(device, "vkCmdSetAttachmentFeedbackLoopEnableEXT");
+    if (table->CmdSetAttachmentFeedbackLoopEnableEXT == nullptr) { table->CmdSetAttachmentFeedbackLoopEnableEXT = (PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)StubCmdSetAttachmentFeedbackLoopEnableEXT; }
     table->CreateAccelerationStructureKHR = (PFN_vkCreateAccelerationStructureKHR) gpa(device, "vkCreateAccelerationStructureKHR");
     if (table->CreateAccelerationStructureKHR == nullptr) { table->CreateAccelerationStructureKHR = (PFN_vkCreateAccelerationStructureKHR)StubCreateAccelerationStructureKHR; }
     table->DestroyAccelerationStructureKHR = (PFN_vkDestroyAccelerationStructureKHR) gpa(device, "vkDestroyAccelerationStructureKHR");
diff --git a/layers/generated/vk_enum_string_helper.h b/layers/generated/vk_enum_string_helper.h
index a82a363..062c3d9 100644
--- a/layers/generated/vk_enum_string_helper.h
+++ b/layers/generated/vk_enum_string_helper.h
@@ -767,6 +767,8 @@
             return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC";
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:
             return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT";
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT:
+            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT";
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT:
             return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT";
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:
@@ -4088,6 +4090,8 @@
             return "VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT";
         case VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT:
             return "VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT";
+        case VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT:
+            return "VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT";
         case VK_DYNAMIC_STATE_BLEND_CONSTANTS:
             return "VK_DYNAMIC_STATE_BLEND_CONSTANTS";
         case VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT:
diff --git a/layers/generated/vk_extension_helper.h b/layers/generated/vk_extension_helper.h
index 2dd622a..a62500b 100644
--- a/layers/generated/vk_extension_helper.h
+++ b/layers/generated/vk_extension_helper.h
@@ -391,6 +391,7 @@
     ExtEnabled vk_arm_shader_core_properties{kNotEnabled};
     ExtEnabled vk_ext_4444_formats{kNotEnabled};
     ExtEnabled vk_ext_astc_decode_mode{kNotEnabled};
+    ExtEnabled vk_ext_attachment_feedback_loop_dynamic_state{kNotEnabled};
     ExtEnabled vk_ext_attachment_feedback_loop_layout{kNotEnabled};
     ExtEnabled vk_ext_blend_operation_advanced{kNotEnabled};
     ExtEnabled vk_ext_border_color_swizzle{kNotEnabled};
@@ -716,6 +717,9 @@
                            {&DeviceExtensions::vk_khr_get_physical_device_properties2, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME}}})},
             {VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME, DeviceInfo(&DeviceExtensions::vk_ext_astc_decode_mode, {{
                            {&DeviceExtensions::vk_khr_get_physical_device_properties2, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME}}})},
+            {VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME, DeviceInfo(&DeviceExtensions::vk_ext_attachment_feedback_loop_dynamic_state, {{
+                           {&DeviceExtensions::vk_khr_get_physical_device_properties2, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME},
+                           {&DeviceExtensions::vk_ext_attachment_feedback_loop_layout, VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME}}})},
             {VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME, DeviceInfo(&DeviceExtensions::vk_ext_attachment_feedback_loop_layout, {{
                            {&DeviceExtensions::vk_khr_get_physical_device_properties2, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME}}})},
             {VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, DeviceInfo(&DeviceExtensions::vk_ext_blend_operation_advanced, {{
@@ -1483,6 +1487,7 @@
     VK_ARM_SHADER_CORE_PROPERTIES_EXTENSION_NAME,
     VK_EXT_4444_FORMATS_EXTENSION_NAME,
     VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME,
+    VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME,
     VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME,
     VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME,
     VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME,
diff --git a/layers/generated/vk_layer_dispatch_table.h b/layers/generated/vk_layer_dispatch_table.h
index b0fd384..51086dd 100644
--- a/layers/generated/vk_layer_dispatch_table.h
+++ b/layers/generated/vk_layer_dispatch_table.h
@@ -1029,6 +1029,9 @@
     PFN_vkGetFramebufferTilePropertiesQCOM GetFramebufferTilePropertiesQCOM;
     PFN_vkGetDynamicRenderingTilePropertiesQCOM GetDynamicRenderingTilePropertiesQCOM;
 
+    // ---- VK_EXT_attachment_feedback_loop_dynamic_state extension commands
+    PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT CmdSetAttachmentFeedbackLoopEnableEXT;
+
     // ---- VK_KHR_acceleration_structure extension commands
     PFN_vkCreateAccelerationStructureKHR CreateAccelerationStructureKHR;
     PFN_vkDestroyAccelerationStructureKHR DestroyAccelerationStructureKHR;
diff --git a/layers/generated/vk_safe_struct.h b/layers/generated/vk_safe_struct.h
index b6e1a2d..ea2441b 100644
--- a/layers/generated/vk_safe_struct.h
+++ b/layers/generated/vk_safe_struct.h
@@ -13324,6 +13324,21 @@
     VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const *ptr() const { return reinterpret_cast<VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const *>(this); }
 };
 
+struct safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
+    VkStructureType sType;
+    void* pNext{};
+    VkBool32 attachmentFeedbackLoopDynamicState;
+    safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT* in_struct);
+    safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(const safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT& copy_src);
+    safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT& operator=(const safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT& copy_src);
+    safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT();
+    ~safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT();
+    void initialize(const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT* in_struct);
+    void initialize(const safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT* copy_src);
+    VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT *ptr() { return reinterpret_cast<VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT *>(this); }
+    VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const *ptr() const { return reinterpret_cast<VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const *>(this); }
+};
+
 struct safe_VkAccelerationStructureGeometryTrianglesDataKHR {
     VkStructureType sType;
     const void* pNext{};
diff --git a/layers/generated/vk_safe_struct_ext.cpp b/layers/generated/vk_safe_struct_ext.cpp
index 6c745c6..a770f73 100644
--- a/layers/generated/vk_safe_struct_ext.cpp
+++ b/layers/generated/vk_safe_struct_ext.cpp
@@ -17454,6 +17454,62 @@
     pNext = SafePnextCopy(copy_src->pNext);
 }
 
+safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT::safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT* in_struct) :
+    sType(in_struct->sType),
+    attachmentFeedbackLoopDynamicState(in_struct->attachmentFeedbackLoopDynamicState)
+{
+    pNext = SafePnextCopy(in_struct->pNext);
+}
+
+safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT::safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT() :
+    sType(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT),
+    pNext(nullptr),
+    attachmentFeedbackLoopDynamicState()
+{}
+
+safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT::safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(const safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT& copy_src)
+{
+    sType = copy_src.sType;
+    attachmentFeedbackLoopDynamicState = copy_src.attachmentFeedbackLoopDynamicState;
+    pNext = SafePnextCopy(copy_src.pNext);
+}
+
+safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT& safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT::operator=(const safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT& copy_src)
+{
+    if (&copy_src == this) return *this;
+
+    if (pNext)
+        FreePnextChain(pNext);
+
+    sType = copy_src.sType;
+    attachmentFeedbackLoopDynamicState = copy_src.attachmentFeedbackLoopDynamicState;
+    pNext = SafePnextCopy(copy_src.pNext);
+
+    return *this;
+}
+
+safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT::~safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT()
+{
+    if (pNext)
+        FreePnextChain(pNext);
+}
+
+void safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT::initialize(const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT* in_struct)
+{
+    if (pNext)
+        FreePnextChain(pNext);
+    sType = in_struct->sType;
+    attachmentFeedbackLoopDynamicState = in_struct->attachmentFeedbackLoopDynamicState;
+    pNext = SafePnextCopy(in_struct->pNext);
+}
+
+void safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT::initialize(const safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT* copy_src)
+{
+    sType = copy_src->sType;
+    attachmentFeedbackLoopDynamicState = copy_src->attachmentFeedbackLoopDynamicState;
+    pNext = SafePnextCopy(copy_src->pNext);
+}
+
 safe_VkPhysicalDeviceMeshShaderFeaturesEXT::safe_VkPhysicalDeviceMeshShaderFeaturesEXT(const VkPhysicalDeviceMeshShaderFeaturesEXT* in_struct) :
     sType(in_struct->sType),
     taskShader(in_struct->taskShader),
diff --git a/layers/generated/vk_safe_struct_utils.cpp b/layers/generated/vk_safe_struct_utils.cpp
index 288a3ad..4207b95 100644
--- a/layers/generated/vk_safe_struct_utils.cpp
+++ b/layers/generated/vk_safe_struct_utils.cpp
@@ -1305,6 +1305,9 @@
         case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM:
             safe_pNext = new safe_VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM(reinterpret_cast<const VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM *>(pNext));
             break;
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT:
+            safe_pNext = new safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(reinterpret_cast<const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT *>(pNext));
+            break;
         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
             safe_pNext = new safe_VkWriteDescriptorSetAccelerationStructureKHR(reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureKHR *>(pNext));
             break;
@@ -2792,6 +2795,9 @@
         case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM:
             delete reinterpret_cast<const safe_VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM *>(header);
             break;
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT:
+            delete reinterpret_cast<const safe_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT *>(header);
+            break;
         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
             delete reinterpret_cast<const safe_VkWriteDescriptorSetAccelerationStructureKHR *>(header);
             break;
diff --git a/layers/generated/vk_typemap_helper.h b/layers/generated/vk_typemap_helper.h
index d4c9231..cc8bba3 100644
--- a/layers/generated/vk_typemap_helper.h
+++ b/layers/generated/vk_typemap_helper.h
@@ -6873,6 +6873,15 @@
     typedef VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM Type;
 };
 
+// Map type VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT
+template <> struct LvlTypeMap<VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT> {
+    static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT;
+};
+
+template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT> {
+    typedef VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT Type;
+};
+
 // Map type VkAccelerationStructureGeometryTrianglesDataKHR to id VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR
 template <> struct LvlTypeMap<VkAccelerationStructureGeometryTrianglesDataKHR> {
     static const VkStructureType kSType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR;
diff --git a/layers/generated/vk_validation_error_messages.h b/layers/generated/vk_validation_error_messages.h
index ff52dfa..673428a 100644
--- a/layers/generated/vk_validation_error_messages.h
+++ b/layers/generated/vk_validation_error_messages.h
@@ -1,5 +1,5 @@
 /* THIS FILE IS GENERATED - DO NOT EDIT (scripts/vk_validation_stats.py) */
-/* Vulkan specification version: 1.3.249 */
+/* Vulkan specification version: 1.3.250 */
 /*
  * Vulkan
  *
@@ -334,10 +334,10 @@
     {"VUID-RuntimeSpirv-None-06342", "If subgroupQuadOperationsInAllStages is VK_FALSE, then quad subgroup operations must not be used except for in fragment and compute stages", "1.3-extensions"},
     {"VUID-RuntimeSpirv-None-06343", "Group operations with subgroup scope must not be used if the shader stage is not in subgroupSupportedStages", "1.3-extensions"},
     {"VUID-RuntimeSpirv-Offset-06308", "The Offset plus size of the type of each variable, in the output interface of the entry point being compiled, decorated with XfbBuffer must not be greater than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataSize", "1.3-extensions"},
-    {"VUID-RuntimeSpirv-Offset-06344", "The first element of the Offset operand of InterpolateAtOffset must be greater than or equal to:", "1.3-extensions"},
-    {"VUID-RuntimeSpirv-Offset-06345", "The first element of the Offset operand of InterpolateAtOffset must be less than or equal to:", "1.3-extensions"},
-    {"VUID-RuntimeSpirv-Offset-06346", "The second element of the Offset operand of InterpolateAtOffset must be greater than or equal to:", "1.3-extensions"},
-    {"VUID-RuntimeSpirv-Offset-06347", "The second element of the Offset operand of InterpolateAtOffset must be less than or equal to:", "1.3-extensions"},
+    {"VUID-RuntimeSpirv-Offset-06344", "The first element of the Offset operand of InterpolateAtOffset must be greater than or equal to: fragwidth {times} minInterpolationOffset where fragwidth is the width of the current fragment in pixels", "1.3-extensions"},
+    {"VUID-RuntimeSpirv-Offset-06345", "The first element of the Offset operand of InterpolateAtOffset must be less than or equal to fragwidth {times} (maxInterpolationOffset + ULP ) - ULP where fragwidth is the width of the current fragment in pixels and ULP = 1 / 2^subPixelInterpolationOffsetBits^", "1.3-extensions"},
+    {"VUID-RuntimeSpirv-Offset-06346", "The second element of the Offset operand of InterpolateAtOffset must be greater than or equal to fragheight {times} minInterpolationOffset where fragheight is the height of the current fragment in pixels", "1.3-extensions"},
+    {"VUID-RuntimeSpirv-Offset-06347", "The second element of the Offset operand of InterpolateAtOffset must be less than or equal to fragheight {times} (maxInterpolationOffset + ULP ) - ULP where fragheight is the height of the current fragment in pixels and ULP = 1 / 2^subPixelInterpolationOffsetBits^.", "1.3-extensions"},
     {"VUID-RuntimeSpirv-OpCooperativeMatrixLoadNV-06324", "For OpCooperativeMatrixLoadNV and OpCooperativeMatrixStoreNV instructions, the Pointer and Stride operands must be aligned to at least the lesser of 16 bytes or the natural alignment of a row or column (depending on ColumnMajor) of the matrix (where the natural alignment is the number of columns/rows multiplied by the component size)", "1.3-extensions"},
     {"VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06317", "For OpCooperativeMatrixMulAddNV, the type of A must have VkCooperativeMatrixPropertiesNV::MSize rows and VkCooperativeMatrixPropertiesNV::KSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::AType", "1.3-extensions"},
     {"VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06318", "For OpCooperativeMatrixMulAddNV, the type of B must have VkCooperativeMatrixPropertiesNV::KSize rows and VkCooperativeMatrixPropertiesNV::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::BType", "1.3-extensions"},
@@ -367,8 +367,8 @@
     {"VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06983", "If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then target sampled image and reference sampled image parameters must be of storage class UniformConstant and type OpTypeImage with Depth=0, Dim=2D, Arrayed=0, MS=0, and Sampled=1", "1.3-extensions"},
     {"VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06984", "If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then the target sampled image and reference sampled image parameters must be decorated with BlockMatchTextureQCOM", "1.3-extensions"},
     {"VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06985", "If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then target sampled image and reference sampled image parameters must have been created using an identical sampler object", "1.3-extensions"},
-    {"VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06986", "If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM    operation is used, then target sampled image and    reference sampled image parameters must have been    created with sampler object with unnormalizeCordinates equal to VK_TRUE", "1.3-extensions"},
-    {"VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06987", "If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM    operation is used, then target sampled image and    reference sampled image parameters must have been    created with sampler object with unnormalizeCordinates equal to VK_TRUE", "1.3-extensions"},
+    {"VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06986", "If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then target sampled image and reference sampled image parameters must have been created with sampler object with unnormalizeCordinates equal to VK_TRUE", "1.3-extensions"},
+    {"VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06987", "If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then target sampled image and reference sampled image parameters must have been created with sampler object with unnormalizeCordinates equal to VK_TRUE", "1.3-extensions"},
     {"VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06988", "If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then Block Size less than or equal to maxBlockMatchRegion", "1.3-extensions"},
     {"VUID-RuntimeSpirv-OpImageBoxFilterQCOM-06989", "If an OpImageBoxFilterQCOM operation is used, then Box Size.y must be equal to or greater than 1.0 and less than or equal to maxBoxFilterBlockSize.height", "1.3-extensions"},
     {"VUID-RuntimeSpirv-OpImageBoxFilterQCOM-06990", "If an OpImageBoxFilterQCOM operation is used, then Sampled Texture Image and Box Size parameters must be dynamically uniform", "1.3-extensions"},
@@ -752,7 +752,7 @@
     {"VUID-VkAccelerationStructureCreateInfoKHR-createFlags-08108", "If createFlags includes VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled", "1.3-extensions"},
     {"VUID-VkAccelerationStructureCreateInfoKHR-createFlags-parameter", "createFlags must be a valid combination of VkAccelerationStructureCreateFlagBitsKHR values", "1.3-extensions"},
     {"VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-03612", "If deviceAddress is not zero, createFlags must include VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR", "1.3-extensions"},
-    {"VUID-VkAccelerationStructureCreateInfoKHR-flags-04954", "If VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV is set in    flags and type is    VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, one member of the pNext chain must be a pointer to a valid instance of VkAccelerationStructureMotionInfoNV", "1.3-extensions"},
+    {"VUID-VkAccelerationStructureCreateInfoKHR-flags-04954", "If VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV is set in flags and type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, one member of the pNext chain must be a pointer to a valid instance of VkAccelerationStructureMotionInfoNV", "1.3-extensions"},
     {"VUID-VkAccelerationStructureCreateInfoKHR-flags-04955", "If any geometry includes VkAccelerationStructureGeometryMotionTrianglesDataNV then flags must contain VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV", "1.3-extensions"},
     {"VUID-VkAccelerationStructureCreateInfoKHR-offset-03616", "The sum of offset and size must be less than the size of buffer", "1.3-extensions"},
     {"VUID-VkAccelerationStructureCreateInfoKHR-offset-03734", "offset must be a multiple of 256 bytes", "1.3-extensions"},
@@ -1337,11 +1337,11 @@
     {"VUID-VkBufferMemoryBarrier2-dstStageMask-07316", "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"},
     {"VUID-VkBufferMemoryBarrier2-dstStageMask-07317", "If the attachmentFragmentShadingRate feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkBufferMemoryBarrier2-dstStageMask-07945", "If the VK_NV_ray_tracing extension is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV", "default"},
+    {"VUID-VkBufferMemoryBarrier2-dstStageMask-07946", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
+    {"VUID-VkBufferMemoryBarrier2-dstStageMask-07947", "If the rayTracingPipeline feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkBufferMemoryBarrier2-dstStageMask-parameter", "dstStageMask must be a valid combination of VkPipelineStageFlagBits2 values", "1.3-extensions"},
     {"VUID-VkBufferMemoryBarrier2-offset-01187", "offset must be less than the size of buffer", "1.3-extensions"},
     {"VUID-VkBufferMemoryBarrier2-pNext-pNext", "pNext must be NULL", "1.3-extensions"},
-    {"VUID-VkBufferMemoryBarrier2-rayTracingPipeline-07946", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
-    {"VUID-VkBufferMemoryBarrier2-rayTracingPipeline-07947", "If the rayTracingPipeline feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkBufferMemoryBarrier2-sType-sType", "sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2", "1.3-extensions"},
     {"VUID-VkBufferMemoryBarrier2-size-01188", "If size is not equal to VK_WHOLE_SIZE, size must be greater than 0", "1.3-extensions"},
     {"VUID-VkBufferMemoryBarrier2-size-01189", "If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to than the size of buffer minus offset", "1.3-extensions"},
@@ -1406,6 +1406,8 @@
     {"VUID-VkBufferMemoryBarrier2-srcStageMask-07316", "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"},
     {"VUID-VkBufferMemoryBarrier2-srcStageMask-07317", "If the attachmentFragmentShadingRate feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkBufferMemoryBarrier2-srcStageMask-07945", "If the VK_NV_ray_tracing extension is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV", "default"},
+    {"VUID-VkBufferMemoryBarrier2-srcStageMask-07946", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
+    {"VUID-VkBufferMemoryBarrier2-srcStageMask-07947", "If the rayTracingPipeline feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkBufferMemoryBarrier2-srcStageMask-parameter", "srcStageMask must be a valid combination of VkPipelineStageFlagBits2 values", "1.3-extensions"},
     {"VUID-VkBufferMemoryRequirementsInfo2-buffer-parameter", "buffer must be a valid VkBuffer handle", "1.3-extensions"},
     {"VUID-VkBufferMemoryRequirementsInfo2-pNext-pNext", "pNext must be NULL", "1.3-extensions"},
@@ -2186,7 +2188,7 @@
     {"VUID-VkDeviceCreateInfo-pNext-02830", "If the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then it must not include a VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceBufferDeviceAddressFeatures, or VkPhysicalDeviceVulkanMemoryModelFeatures structure", "1.3-extensions"},
     {"VUID-VkDeviceCreateInfo-pNext-04748", "If the pNext chain includes a VkPhysicalDeviceVulkan12Features structure and VkPhysicalDeviceVulkan12Features::bufferDeviceAddress is VK_TRUE, ppEnabledExtensionNames must not contain VK_EXT_buffer_device_address", "1.3-extensions"},
     {"VUID-VkDeviceCreateInfo-pNext-06532", "If the pNext chain includes a VkPhysicalDeviceVulkan13Features structure, then it must not include a VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceMaintenance4Features, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, or VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures structure", "1.3-extensions"},
-    {"VUID-VkDeviceCreateInfo-pNext-pNext", "Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceDeviceMemoryReportCreateInfoEXT, VkDeviceDiagnosticsConfigCreateInfoNV, VkDeviceGroupDeviceCreateInfo, VkDeviceMemoryOverallocationCreateInfoAMD, VkDevicePrivateDataCreateInfo, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceAddressBindingReportFeaturesEXT, VkPhysicalDeviceAmigoProfilingFeaturesSEC, VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceColorWriteEnableFeaturesEXT, VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthClampZeroOneFeaturesEXT, VkPhysicalDeviceDepthClipControlFeaturesEXT, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorBufferFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceDisplacementMicromapFeaturesNV, VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, VkPhysicalDeviceFaultFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, VkPhysicalDeviceImageCompressionControlFeaturesEXT, VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, VkPhysicalDeviceImageProcessingFeaturesQCOM, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, VkPhysicalDeviceImageViewMinLodFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8FeaturesEXT, VkPhysicalDeviceInheritedViewportScissorFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, VkPhysicalDeviceLegacyDitheringFeaturesEXT, VkPhysicalDeviceLineRasterizationFeaturesEXT, VkPhysicalDeviceLinearColorAttachmentFeaturesNV, VkPhysicalDeviceMaintenance4Features, VkPhysicalDeviceMemoryDecompressionFeaturesNV, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiDrawFeaturesEXT, VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT, VkPhysicalDeviceOpticalFlowFeaturesNV, VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, VkPhysicalDevicePipelinePropertiesFeaturesEXT, VkPhysicalDevicePipelineProtectedAccessFeaturesEXT, VkPhysicalDevicePipelineRobustnessFeaturesEXT, VkPhysicalDevicePortabilitySubsetFeaturesKHR, VkPhysicalDevicePresentBarrierFeaturesNV, VkPhysicalDevicePresentIdFeaturesKHR, VkPhysicalDevicePresentWaitFeaturesKHR, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceProvokingVertexFeaturesEXT, VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, VkPhysicalDeviceRayQueryFeaturesKHR, VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, VkPhysicalDeviceRayTracingPipelineFeaturesKHR, VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesEXT, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, VkPhysicalDeviceShaderObjectFeaturesEXT, VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceShaderTileImageFeaturesEXT, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, VkPhysicalDeviceTilePropertiesFeaturesQCOM, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkan13Features, VkPhysicalDeviceVulkanMemoryModelFeatures, VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, or VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", "1.3-extensions"},
+    {"VUID-VkDeviceCreateInfo-pNext-pNext", "Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceDeviceMemoryReportCreateInfoEXT, VkDeviceDiagnosticsConfigCreateInfoNV, VkDeviceGroupDeviceCreateInfo, VkDeviceMemoryOverallocationCreateInfoAMD, VkDevicePrivateDataCreateInfo, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceAddressBindingReportFeaturesEXT, VkPhysicalDeviceAmigoProfilingFeaturesSEC, VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceColorWriteEnableFeaturesEXT, VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthClampZeroOneFeaturesEXT, VkPhysicalDeviceDepthClipControlFeaturesEXT, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorBufferFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceDisplacementMicromapFeaturesNV, VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, VkPhysicalDeviceFaultFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, VkPhysicalDeviceImageCompressionControlFeaturesEXT, VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, VkPhysicalDeviceImageProcessingFeaturesQCOM, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, VkPhysicalDeviceImageViewMinLodFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8FeaturesEXT, VkPhysicalDeviceInheritedViewportScissorFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, VkPhysicalDeviceLegacyDitheringFeaturesEXT, VkPhysicalDeviceLineRasterizationFeaturesEXT, VkPhysicalDeviceLinearColorAttachmentFeaturesNV, VkPhysicalDeviceMaintenance4Features, VkPhysicalDeviceMemoryDecompressionFeaturesNV, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiDrawFeaturesEXT, VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT, VkPhysicalDeviceOpticalFlowFeaturesNV, VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, VkPhysicalDevicePipelinePropertiesFeaturesEXT, VkPhysicalDevicePipelineProtectedAccessFeaturesEXT, VkPhysicalDevicePipelineRobustnessFeaturesEXT, VkPhysicalDevicePortabilitySubsetFeaturesKHR, VkPhysicalDevicePresentBarrierFeaturesNV, VkPhysicalDevicePresentIdFeaturesKHR, VkPhysicalDevicePresentWaitFeaturesKHR, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceProvokingVertexFeaturesEXT, VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, VkPhysicalDeviceRayQueryFeaturesKHR, VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, VkPhysicalDeviceRayTracingPipelineFeaturesKHR, VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesEXT, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, VkPhysicalDeviceShaderObjectFeaturesEXT, VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceShaderTileImageFeaturesEXT, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, VkPhysicalDeviceTilePropertiesFeaturesQCOM, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkan13Features, VkPhysicalDeviceVulkanMemoryModelFeatures, VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, or VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", "1.3-extensions"},
     {"VUID-VkDeviceCreateInfo-pProperties-04451", "If the VK_KHR_portability_subset extension is included in pProperties of vkEnumerateDeviceExtensionProperties, ppEnabledExtensionNames must include \"VK_KHR_portability_subset\"", "1.3-extensions"},
     {"VUID-VkDeviceCreateInfo-pQueueCreateInfos-06654", "If multiple elements of pQueueCreateInfos share the same queueFamilyIndex, then all of such elements must have the same global priority level, which can be specified explicitly by the including a VkDeviceQueueGlobalPriorityCreateInfoKHR structure in the pNext chain, or by the implicit default value", "1.3-extensions"},
     {"VUID-VkDeviceCreateInfo-pQueueCreateInfos-06755", "If multiple elements of pQueueCreateInfos share the same queueFamilyIndex, the sum of their queueCount members must be less than or equal to the queueCount member of the VkQueueFamilyProperties structure, as returned by vkGetPhysicalDeviceQueueFamilyProperties in the pQueueFamilyProperties[queueFamilyIndex]", "1.3-extensions"},
@@ -3068,6 +3070,8 @@
     {"VUID-VkImageCreateInfo-flags-06883", "If flags contains VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT, samples must be VK_SAMPLE_COUNT_1_BIT", "1.3-extensions"},
     {"VUID-VkImageCreateInfo-flags-07755", "If flags contains VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT, imageType must be VK_IMAGE_TYPE_3D", "1.3-extensions"},
     {"VUID-VkImageCreateInfo-flags-08104", "If flags includes VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled", "1.3-extensions"},
+    {"VUID-VkImageCreateInfo-flags-08865", "If flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be equal", "1.3-extensions"},
+    {"VUID-VkImageCreateInfo-flags-08866", "If flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, arrayLayers must be greater than or equal to 6", "1.3-extensions"},
     {"VUID-VkImageCreateInfo-flags-parameter", "flags must be a valid combination of VkImageCreateFlagBits values", "1.3-extensions"},
     {"VUID-VkImageCreateInfo-format-00943", "format must not be VK_FORMAT_UNDEFINED", "1.3-khr-extensions"},
     {"VUID-VkImageCreateInfo-format-01577", "If format is not a multi-planar format, and flags does not include VK_IMAGE_CREATE_ALIAS_BIT, flags must not contain VK_IMAGE_CREATE_DISJOINT_BIT", "1.3-extensions"},
@@ -3087,7 +3091,6 @@
     {"VUID-VkImageCreateInfo-fragmentDensityMapOffset-06515", "If the fragmentDensityMapOffset feature is not enabled and usage includes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.height must be less than or equal to the ceiling of maxFramebufferHeight/minFragmentDensityTexelSize.height", "1.3-extensions"},
     {"VUID-VkImageCreateInfo-imageCreateFormatFeatures-02260", "If format is a multi-planar format, and if imageCreateFormatFeatures (as defined in Image Creation Limits) does not contain VK_FORMAT_FEATURE_DISJOINT_BIT, then flags must not contain VK_IMAGE_CREATE_DISJOINT_BIT", "1.3-extensions"},
     {"VUID-VkImageCreateInfo-imageCreateMaxMipLevels-02251", "Each of the following values (as described in Image Creation Limits) must not be undefined : imageCreateMaxMipLevels, imageCreateMaxArrayLayers, imageCreateMaxExtent, and imageCreateSampleCounts", "1.3-extensions"},
-    {"VUID-VkImageCreateInfo-imageType-00954", "If imageType is VK_IMAGE_TYPE_2D and flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be equal and arrayLayers must be greater than or equal to 6", "1.3-extensions"},
     {"VUID-VkImageCreateInfo-imageType-00956", "If imageType is VK_IMAGE_TYPE_1D, both extent.height and extent.depth must be 1", "1.3-extensions"},
     {"VUID-VkImageCreateInfo-imageType-00957", "If imageType is VK_IMAGE_TYPE_2D, extent.depth must be 1", "1.3-extensions"},
     {"VUID-VkImageCreateInfo-imageType-00961", "If imageType is VK_IMAGE_TYPE_3D, arrayLayers must be 1", "1.3-extensions"},
@@ -3306,6 +3309,8 @@
     {"VUID-VkImageMemoryBarrier2-dstStageMask-07316", "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"},
     {"VUID-VkImageMemoryBarrier2-dstStageMask-07317", "If the attachmentFragmentShadingRate feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkImageMemoryBarrier2-dstStageMask-07945", "If the VK_NV_ray_tracing extension is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV", "default"},
+    {"VUID-VkImageMemoryBarrier2-dstStageMask-07946", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
+    {"VUID-VkImageMemoryBarrier2-dstStageMask-07947", "If the rayTracingPipeline feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkImageMemoryBarrier2-dstStageMask-parameter", "dstStageMask must be a valid combination of VkPipelineStageFlagBits2 values", "1.3-extensions"},
     {"VUID-VkImageMemoryBarrier2-image-01207", "If image has a depth/stencil format with both depth and stencil components, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", "default"},
     {"VUID-VkImageMemoryBarrier2-image-01671", "If image has a single-plane color format or is not disjoint, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT", "1.3-extensions"},
@@ -3332,8 +3337,6 @@
     {"VUID-VkImageMemoryBarrier2-oldLayout-02088", "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR then image must have been created with VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR set", "1.3-extensions"},
     {"VUID-VkImageMemoryBarrier2-oldLayout-parameter", "oldLayout must be a valid VkImageLayout value", "1.3-extensions"},
     {"VUID-VkImageMemoryBarrier2-pNext-pNext", "pNext must be NULL or a pointer to a valid instance of VkSampleLocationsInfoEXT", "1.3-extensions"},
-    {"VUID-VkImageMemoryBarrier2-rayTracingPipeline-07946", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
-    {"VUID-VkImageMemoryBarrier2-rayTracingPipeline-07947", "If the rayTracingPipeline feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkImageMemoryBarrier2-sType-sType", "sType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2", "1.3-extensions"},
     {"VUID-VkImageMemoryBarrier2-sType-unique", "The sType value of each struct in the pNext chain must be unique", "1.3-extensions"},
     {"VUID-VkImageMemoryBarrier2-srcAccessMask-03900", "If pname:srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "1.3-extensions"},
@@ -3411,6 +3414,8 @@
     {"VUID-VkImageMemoryBarrier2-srcStageMask-07316", "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"},
     {"VUID-VkImageMemoryBarrier2-srcStageMask-07317", "If the attachmentFragmentShadingRate feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkImageMemoryBarrier2-srcStageMask-07945", "If the VK_NV_ray_tracing extension is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV", "default"},
+    {"VUID-VkImageMemoryBarrier2-srcStageMask-07946", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
+    {"VUID-VkImageMemoryBarrier2-srcStageMask-07947", "If the rayTracingPipeline feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkImageMemoryBarrier2-srcStageMask-parameter", "srcStageMask must be a valid combination of VkPipelineStageFlagBits2 values", "1.3-extensions"},
     {"VUID-VkImageMemoryBarrier2-subresourceRange-01486", "subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created", "1.3-extensions"},
     {"VUID-VkImageMemoryBarrier2-subresourceRange-01488", "subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created", "1.3-extensions"},
@@ -3820,7 +3825,7 @@
     {"VUID-VkMemoryAllocateInfo-memoryTypeIndex-06386", "If the parameters define an import operation from an VkBufferCollectionFUCHSIA, memoryTypeIndex must be from VkBufferCollectionPropertiesFUCHSIA as retrieved by vkGetBufferCollectionPropertiesFUCHSIA", "1.3-extensions"},
     {"VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03329", "If VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress is not zero, VkMemoryAllocateFlagsInfo::flags must include VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT", "1.3-extensions"},
     {"VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03333", "If the parameters define an import operation, VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress must be zero", "1.3-extensions"},
-    {"VUID-VkMemoryAllocateInfo-pNext-00639", "If the pNext chain includes a VkExportMemoryAllocateInfo structure, and any of the handle types specified in VkExportMemoryAllocateInfo::handleTypes require a dedicated allocation, as reported by vkGetPhysicalDeviceImageFormatProperties2 in VkExternalImageFormatProperties::externalMemoryProperties.externalMemoryFeatures or VkExternalBufferProperties::externalMemoryProperties.externalMemoryFeatures, the pNext chain must include a VkMemoryDedicatedAllocateInfo or VkDedicatedAllocationMemoryAllocateInfoNV structure with either its image or buffer member set to a value other than VK_NULL_HANDLE", "1.3-extensions"},
+    {"VUID-VkMemoryAllocateInfo-pNext-00639", "If the pNext chain includes a VkExportMemoryAllocateInfo structure, and any of the handle types specified in VkExportMemoryAllocateInfo::handleTypes require a dedicated allocation, as reported by vkGetPhysicalDeviceImageFormatProperties2 in VkExternalImageFormatProperties::externalMemoryProperties.externalMemoryFeatures, or by vkGetPhysicalDeviceExternalBufferProperties in VkExternalBufferProperties::externalMemoryProperties.externalMemoryFeatures, the pNext chain must include a VkMemoryDedicatedAllocateInfo or VkDedicatedAllocationMemoryAllocateInfoNV structure with either its image or buffer member set to a value other than VK_NULL_HANDLE", "1.3-extensions"},
     {"VUID-VkMemoryAllocateInfo-pNext-00640", "If the pNext chain includes a VkExportMemoryAllocateInfo structure, it must not include a VkExportMemoryAllocateInfoNV or VkExportMemoryWin32HandleInfoNV structure", "1.3-extensions"},
     {"VUID-VkMemoryAllocateInfo-pNext-00641", "If the pNext chain includes a VkImportMemoryWin32HandleInfoKHR structure, it must not include a VkImportMemoryWin32HandleInfoNV structure", "1.3-extensions"},
     {"VUID-VkMemoryAllocateInfo-pNext-01874", "If the parameters do not define an import operation, and the pNext chain includes a VkExportMemoryAllocateInfo structure with VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID included in its handleTypes member, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image not equal to VK_NULL_HANDLE, then allocationSize must be 0", "1.3-extensions"},
@@ -3904,9 +3909,9 @@
     {"VUID-VkMemoryBarrier2-dstStageMask-07316", "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"},
     {"VUID-VkMemoryBarrier2-dstStageMask-07317", "If the attachmentFragmentShadingRate feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkMemoryBarrier2-dstStageMask-07945", "If the VK_NV_ray_tracing extension is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV", "default"},
+    {"VUID-VkMemoryBarrier2-dstStageMask-07946", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
+    {"VUID-VkMemoryBarrier2-dstStageMask-07947", "If the rayTracingPipeline feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkMemoryBarrier2-dstStageMask-parameter", "dstStageMask must be a valid combination of VkPipelineStageFlagBits2 values", "1.3-extensions"},
-    {"VUID-VkMemoryBarrier2-rayTracingPipeline-07946", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
-    {"VUID-VkMemoryBarrier2-rayTracingPipeline-07947", "If the rayTracingPipeline feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkMemoryBarrier2-sType-sType", "sType must be VK_STRUCTURE_TYPE_MEMORY_BARRIER_2", "1.3-extensions"},
     {"VUID-VkMemoryBarrier2-srcAccessMask-03900", "If pname:srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "1.3-extensions"},
     {"VUID-VkMemoryBarrier2-srcAccessMask-03901", "If pname:srcAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "1.3-extensions"},
@@ -3967,6 +3972,8 @@
     {"VUID-VkMemoryBarrier2-srcStageMask-07316", "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"},
     {"VUID-VkMemoryBarrier2-srcStageMask-07317", "If the attachmentFragmentShadingRate feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkMemoryBarrier2-srcStageMask-07945", "If the VK_NV_ray_tracing extension is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV", "default"},
+    {"VUID-VkMemoryBarrier2-srcStageMask-07946", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
+    {"VUID-VkMemoryBarrier2-srcStageMask-07947", "If the rayTracingPipeline feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkMemoryBarrier2-srcStageMask-parameter", "srcStageMask must be a valid combination of VkPipelineStageFlagBits2 values", "1.3-extensions"},
     {"VUID-VkMemoryDedicatedAllocateInfo-buffer-01435", "If buffer is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer", "1.3-khr-extensions"},
     {"VUID-VkMemoryDedicatedAllocateInfo-buffer-01436", "If buffer is not VK_NULL_HANDLE, buffer must have been created without VK_BUFFER_CREATE_SPARSE_BINDING_BIT set in VkBufferCreateInfo::flags", "1.3-extensions"},
@@ -4174,6 +4181,7 @@
     {"VUID-VkPhysicalDeviceAccelerationStructurePropertiesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR", "1.3-extensions"},
     {"VUID-VkPhysicalDeviceAddressBindingReportFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT", "1.3-extensions"},
     {"VUID-VkPhysicalDeviceAmigoProfilingFeaturesSEC-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC", "1.3-extensions"},
+    {"VUID-VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT", "1.3-extensions"},
     {"VUID-VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT", "1.3-extensions"},
     {"VUID-VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT", "1.3-extensions"},
     {"VUID-VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT", "1.3-extensions"},
@@ -5492,8 +5500,6 @@
     {"VUID-VkSemaphoreSubmitInfo-device-03888", "If the device that semaphore was created on is not a device group, deviceIndex must be 0", "1.3-extensions"},
     {"VUID-VkSemaphoreSubmitInfo-device-03889", "If the device that semaphore was created on is a device group, deviceIndex must be a valid device index", "1.3-extensions"},
     {"VUID-VkSemaphoreSubmitInfo-pNext-pNext", "pNext must be NULL", "1.3-extensions"},
-    {"VUID-VkSemaphoreSubmitInfo-rayTracingPipeline-07946", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
-    {"VUID-VkSemaphoreSubmitInfo-rayTracingPipeline-07947", "If the rayTracingPipeline feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkSemaphoreSubmitInfo-sType-sType", "sType must be VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO", "1.3-extensions"},
     {"VUID-VkSemaphoreSubmitInfo-semaphore-parameter", "semaphore must be a valid VkSemaphore handle", "1.3-extensions"},
     {"VUID-VkSemaphoreSubmitInfo-stageMask-03929", "If the geometryShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT", "1.3-extensions"},
@@ -5509,6 +5515,8 @@
     {"VUID-VkSemaphoreSubmitInfo-stageMask-07316", "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"},
     {"VUID-VkSemaphoreSubmitInfo-stageMask-07317", "If the attachmentFragmentShadingRate feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkSemaphoreSubmitInfo-stageMask-07945", "If the VK_NV_ray_tracing extension is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV", "default"},
+    {"VUID-VkSemaphoreSubmitInfo-stageMask-07946", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
+    {"VUID-VkSemaphoreSubmitInfo-stageMask-07947", "If the rayTracingPipeline feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkSemaphoreSubmitInfo-stageMask-parameter", "stageMask must be a valid combination of VkPipelineStageFlagBits2 values", "1.3-extensions"},
     {"VUID-VkSemaphoreTypeCreateInfo-sType-sType", "sType must be VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO", "1.3-extensions"},
     {"VUID-VkSemaphoreTypeCreateInfo-semaphoreType-03279", "If semaphoreType is VK_SEMAPHORE_TYPE_BINARY, initialValue must be zero", "1.3-extensions"},
@@ -5523,6 +5531,10 @@
     {"VUID-VkSemaphoreWaitInfo-semaphoreCount-arraylength", "semaphoreCount must be greater than 0", "1.3-extensions"},
     {"VUID-VkShaderCreateInfoEXT-codeSize-08735", "If pname:codeType is ename:VK_SHADER_CODE_TYPE_SPIRV_EXT, codeSize must be a multiple of 4", "1.3-extensions"},
     {"VUID-VkShaderCreateInfoEXT-codeSize-arraylength", "codeSize must be greater than 0", "1.3-extensions"},
+    {"VUID-VkShaderCreateInfoEXT-codeType-08872", "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the type of subdivision", "1.3-extensions"},
+    {"VUID-VkShaderCreateInfoEXT-codeType-08873", "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the orientation of triangles generated by the tessellator", "1.3-extensions"},
+    {"VUID-VkShaderCreateInfoEXT-codeType-08874", "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the spacing of segments on the edges of tessellated primitives", "1.3-extensions"},
+    {"VUID-VkShaderCreateInfoEXT-codeType-08875", "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the output patch size", "1.3-extensions"},
     {"VUID-VkShaderCreateInfoEXT-codeType-parameter", "codeType must be a valid VkShaderCodeTypeEXT value", "1.3-extensions"},
     {"VUID-VkShaderCreateInfoEXT-flags-08412", "If stage is not VK_SHADER_STAGE_TASK_BIT_EXT, VK_SHADER_STAGE_MESH_BIT_EXT, VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, VK_SHADER_STAGE_GEOMETRY_BIT, or VK_SHADER_STAGE_FRAGMENT_BIT, flags must not include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT", "1.3-extensions"},
     {"VUID-VkShaderCreateInfoEXT-flags-08413", "If stage is not VK_SHADER_STAGE_COMPUTE_BIT, flags must not include VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT or VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT", "1.3-extensions"},
@@ -5561,6 +5573,8 @@
     {"VUID-VkShaderCreateInfoEXT-pCode-08458", "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_FRAGMENT_BIT, the identified entry point must not include any output variables in its interface decorated with CullDistance", "1.3-extensions"},
     {"VUID-VkShaderCreateInfoEXT-pCode-08459", "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes to FragDepth in any execution path, all execution paths that are not exclusive to helper invocations must either discard the fragment, or write or initialize the value of FragDepth", "1.3-extensions"},
     {"VUID-VkShaderCreateInfoEXT-pCode-08460", "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, the shader code in pCode must be valid as described by the Khronos SPIR-V Specification after applying the specializations provided in pSpecializationInfo, if any, and then converting all specialization constants into fixed constants", "1.3-extensions"},
+    {"VUID-VkShaderCreateInfoEXT-pCode-08492", "If codeType is VK_SHADER_CODE_TYPE_BINARY_EXT, pCode must be aligned to 16 bytes", "1.3-extensions"},
+    {"VUID-VkShaderCreateInfoEXT-pCode-08493", "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must be aligned to 4 bytes", "1.3-extensions"},
     {"VUID-VkShaderCreateInfoEXT-pCode-08736", "If pname:codeType is ename:VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must point to valid SPIR-V code, formatted and packed as described by the Khronos SPIR-V Specification", "1.3-extensions"},
     {"VUID-VkShaderCreateInfoEXT-pCode-08737", "If pname:codeType is ename:VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix", "1.3-extensions"},
     {"VUID-VkShaderCreateInfoEXT-pCode-08738", "If pname:codeType is ename:VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must declare the Shader capability for SPIR-V code", "1.3-extensions"},
@@ -5696,12 +5710,12 @@
     {"VUID-VkSubmitInfo-pWaitDstStageMask-07318", "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"},
     {"VUID-VkSubmitInfo-pWaitDstStageMask-07319", "If the attachmentFragmentShadingRate feature is not enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkSubmitInfo-pWaitDstStageMask-07948", "If the VK_NV_ray_tracing extension is not enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV", "default"},
+    {"VUID-VkSubmitInfo-pWaitDstStageMask-07949", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
+    {"VUID-VkSubmitInfo-pWaitDstStageMask-07950", "If the rayTracingPipeline feature is not enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkSubmitInfo-pWaitDstStageMask-parameter", "If waitSemaphoreCount is not 0, pWaitDstStageMask must be a valid pointer to an array of waitSemaphoreCount valid combinations of VkPipelineStageFlagBits values", "1.3-extensions"},
     {"VUID-VkSubmitInfo-pWaitSemaphores-03239", "If any element of pWaitSemaphores or pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE, then the pNext chain must include a VkTimelineSemaphoreSubmitInfo structure", "1.3-extensions"},
     {"VUID-VkSubmitInfo-pWaitSemaphores-03243", "For each element of pWaitSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pWaitSemaphoreValues must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference", "1.3-extensions"},
     {"VUID-VkSubmitInfo-pWaitSemaphores-parameter", "If waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles", "1.3-extensions"},
-    {"VUID-VkSubmitInfo-rayTracingPipeline-07949", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
-    {"VUID-VkSubmitInfo-rayTracingPipeline-07950", "If the rayTracingPipeline feature is not enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkSubmitInfo-sType-sType", "sType must be VK_STRUCTURE_TYPE_SUBMIT_INFO", "1.3-extensions"},
     {"VUID-VkSubmitInfo-sType-unique", "The sType value of each struct in the pNext chain must be unique", "1.3-extensions"},
     {"VUID-VkSubmitInfo-variableSampleLocations-06017", "If the variableSampleLocations limit is not supported, and any element of pCommandBuffers contains any suspended render pass instances, where a graphics pipeline has been bound, any pipelines bound in the render pass instance that resumes it, or any subsequent render pass instances that resume from that one and so on, must use the same sample locations", "1.3-extensions"},
@@ -5744,9 +5758,9 @@
     {"VUID-VkSubpassDependency-dstStageMask-07318", "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"},
     {"VUID-VkSubpassDependency-dstStageMask-07319", "If the attachmentFragmentShadingRate feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkSubpassDependency-dstStageMask-07948", "If the VK_NV_ray_tracing extension is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV", "default"},
+    {"VUID-VkSubpassDependency-dstStageMask-07949", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
+    {"VUID-VkSubpassDependency-dstStageMask-07950", "If the rayTracingPipeline feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkSubpassDependency-dstStageMask-parameter", "dstStageMask must be a valid combination of VkPipelineStageFlagBits values", "1.3-extensions"},
-    {"VUID-VkSubpassDependency-rayTracingPipeline-07949", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
-    {"VUID-VkSubpassDependency-rayTracingPipeline-07950", "If the rayTracingPipeline feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkSubpassDependency-srcAccessMask-00868", "Any access flag included in srcAccessMask must be supported by one of the pipeline stages in srcStageMask, as specified in the table of supported access types", "1.3-extensions"},
     {"VUID-VkSubpassDependency-srcAccessMask-parameter", "srcAccessMask must be a valid combination of VkAccessFlagBits values", "1.3-extensions"},
     {"VUID-VkSubpassDependency-srcStageMask-03937", "If the synchronization2 feature is not enabled, pname:srcStageMask must not be 0", "1.3-extensions"},
@@ -5762,6 +5776,8 @@
     {"VUID-VkSubpassDependency-srcStageMask-07318", "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"},
     {"VUID-VkSubpassDependency-srcStageMask-07319", "If the attachmentFragmentShadingRate feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkSubpassDependency-srcStageMask-07948", "If the VK_NV_ray_tracing extension is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV", "default"},
+    {"VUID-VkSubpassDependency-srcStageMask-07949", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
+    {"VUID-VkSubpassDependency-srcStageMask-07950", "If the rayTracingPipeline feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkSubpassDependency-srcStageMask-parameter", "srcStageMask must be a valid combination of VkPipelineStageFlagBits values", "1.3-extensions"},
     {"VUID-VkSubpassDependency-srcSubpass-00864", "srcSubpass must be less than or equal to dstSubpass, unless one of them is VK_SUBPASS_EXTERNAL, to avoid cyclic dependencies and ensure a valid execution order", "1.3-extensions"},
     {"VUID-VkSubpassDependency-srcSubpass-00865", "srcSubpass and dstSubpass must not both be equal to VK_SUBPASS_EXTERNAL", "1.3-extensions"},
@@ -5787,10 +5803,10 @@
     {"VUID-VkSubpassDependency2-dstStageMask-07318", "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"},
     {"VUID-VkSubpassDependency2-dstStageMask-07319", "If the attachmentFragmentShadingRate feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkSubpassDependency2-dstStageMask-07948", "If the VK_NV_ray_tracing extension is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV", "default"},
+    {"VUID-VkSubpassDependency2-dstStageMask-07949", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
+    {"VUID-VkSubpassDependency2-dstStageMask-07950", "If the rayTracingPipeline feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkSubpassDependency2-dstStageMask-parameter", "dstStageMask must be a valid combination of VkPipelineStageFlagBits values", "1.3-extensions"},
     {"VUID-VkSubpassDependency2-pNext-pNext", "pNext must be NULL or a pointer to a valid instance of VkMemoryBarrier2", "1.3-extensions"},
-    {"VUID-VkSubpassDependency2-rayTracingPipeline-07949", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
-    {"VUID-VkSubpassDependency2-rayTracingPipeline-07950", "If the rayTracingPipeline feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkSubpassDependency2-sType-sType", "sType must be VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2", "1.3-extensions"},
     {"VUID-VkSubpassDependency2-sType-unique", "The sType value of each struct in the pNext chain must be unique", "1.3-extensions"},
     {"VUID-VkSubpassDependency2-srcAccessMask-03088", "Any access flag included in srcAccessMask must be supported by one of the pipeline stages in srcStageMask, as specified in the table of supported access types", "1.3-extensions"},
@@ -5808,6 +5824,8 @@
     {"VUID-VkSubpassDependency2-srcStageMask-07318", "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"},
     {"VUID-VkSubpassDependency2-srcStageMask-07319", "If the attachmentFragmentShadingRate feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkSubpassDependency2-srcStageMask-07948", "If the VK_NV_ray_tracing extension is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV", "default"},
+    {"VUID-VkSubpassDependency2-srcStageMask-07949", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
+    {"VUID-VkSubpassDependency2-srcStageMask-07950", "If the rayTracingPipeline feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-VkSubpassDependency2-srcStageMask-parameter", "srcStageMask must be a valid combination of VkPipelineStageFlagBits values", "1.3-extensions"},
     {"VUID-VkSubpassDependency2-srcSubpass-02245", "If srcSubpass equals dstSubpass, and srcStageMask and dstStageMask both include a framebuffer-space stage, then dependencyFlags must include VK_DEPENDENCY_BY_REGION_BIT", "1.3-extensions"},
     {"VUID-VkSubpassDependency2-srcSubpass-03084", "srcSubpass must be less than or equal to dstSubpass, unless one of them is VK_SUBPASS_EXTERNAL, to avoid cyclic dependencies and ensure a valid execution order", "1.3-extensions"},
@@ -8019,14 +8037,13 @@
     {"VUID-vkCmdDecompressMemoryNV-pDecompressMemoryRegions-parameter", "pDecompressMemoryRegions must be a valid pointer to an array of decompressRegionCount valid VkDecompressMemoryRegionNV structures", "1.3-extensions"},
     {"VUID-vkCmdDecompressMemoryNV-renderpass", "This command must only be called outside of a render pass instance", "1.3-extensions"},
     {"VUID-vkCmdDecompressMemoryNV-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"},
-    {"VUID-vkCmdDispatch-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-khr-extensions"},
-    {"VUID-vkCmdDispatch-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdDispatch-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdDispatch-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDispatch-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDispatch-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdDispatch-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDispatch-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDispatch-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
+    {"VUID-vkCmdDispatch-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDispatch-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDispatch-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "1.3-khr-extensions"},
     {"VUID-vkCmdDispatch-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
     {"VUID-vkCmdDispatch-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "1.3-khr-extensions"},
     {"VUID-vkCmdDispatch-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "1.3-khr-extensions"},
@@ -8036,7 +8053,7 @@
     {"VUID-vkCmdDispatch-None-02859", "There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", "1.3-khr-extensions"},
     {"VUID-vkCmdDispatch-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
     {"VUID-vkCmdDispatch-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDispatch-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-khr-extensions"},
+    {"VUID-vkCmdDispatch-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDispatch-None-07288", "Any shader invocation executed by this command must terminate", "1.3-extensions"},
     {"VUID-vkCmdDispatch-None-07888", "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDispatch-None-08114", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
@@ -8044,9 +8061,8 @@
     {"VUID-vkCmdDispatch-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDispatch-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDispatch-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdDispatch-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDispatch-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDispatch-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDispatch-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDispatch-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDispatch-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdDispatch-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdDispatch-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -8057,7 +8073,6 @@
     {"VUID-vkCmdDispatch-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdDispatch-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDispatch-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdDispatch-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDispatch-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdDispatch-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdDispatch-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -8076,11 +8091,10 @@
     {"VUID-vkCmdDispatch-SampledType-04472", "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", "1.3-extensions"},
     {"VUID-vkCmdDispatch-SampledType-04473", "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", "1.3-extensions"},
     {"VUID-vkCmdDispatch-aspectMask-06478", "If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT", "1.2"},
-    {"VUID-vkCmdDispatch-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.3-khr-extensions"},
+    {"VUID-vkCmdDispatch-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDispatch-commandBuffer-02712", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource", "1.3-extensions"},
     {"VUID-vkCmdDispatch-commandBuffer-02713", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource", "1.3-extensions"},
     {"VUID-vkCmdDispatch-commandBuffer-04617", "If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer", "1.3-extensions"},
-    {"VUID-vkCmdDispatch-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDispatch-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support compute operations", "1.3-extensions"},
     {"VUID-vkCmdDispatch-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdDispatch-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -8092,8 +8106,8 @@
     {"VUID-vkCmdDispatch-groupCountY-00387", "groupCountY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]", "1.3-extensions"},
     {"VUID-vkCmdDispatch-groupCountZ-00388", "groupCountZ must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]", "1.3-extensions"},
     {"VUID-vkCmdDispatch-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDispatch-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDispatch-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDispatch-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDispatch-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDispatch-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdDispatch-renderpass", "This command must only be called outside of a render pass instance", "1.3-extensions"},
     {"VUID-vkCmdDispatch-sparseImageInt64Atomics-04474", "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", "1.3-extensions"},
@@ -8102,14 +8116,13 @@
     {"VUID-vkCmdDispatch-uniformBuffers-06935", "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDispatch-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"},
     {"VUID-vkCmdDispatch-viewType-07752", "If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", "1.3-extensions"},
-    {"VUID-vkCmdDispatchBase-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-khr-extensions"},
-    {"VUID-vkCmdDispatchBase-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdDispatchBase-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdDispatchBase-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDispatchBase-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDispatchBase-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
+    {"VUID-vkCmdDispatchBase-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDispatchBase-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDispatchBase-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "1.3-khr-extensions"},
     {"VUID-vkCmdDispatchBase-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
     {"VUID-vkCmdDispatchBase-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "1.3-khr-extensions"},
     {"VUID-vkCmdDispatchBase-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "1.3-khr-extensions"},
@@ -8119,7 +8132,7 @@
     {"VUID-vkCmdDispatchBase-None-02859", "There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", "1.3-khr-extensions"},
     {"VUID-vkCmdDispatchBase-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDispatchBase-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-khr-extensions"},
+    {"VUID-vkCmdDispatchBase-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-None-07288", "Any shader invocation executed by this command must terminate", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-None-07888", "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-None-08114", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
@@ -8127,9 +8140,8 @@
     {"VUID-vkCmdDispatchBase-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdDispatchBase-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDispatchBase-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDispatchBase-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDispatchBase-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDispatchBase-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -8140,7 +8152,6 @@
     {"VUID-vkCmdDispatchBase-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdDispatchBase-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -8163,11 +8174,10 @@
     {"VUID-vkCmdDispatchBase-baseGroupX-00422", "baseGroupY must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-baseGroupX-00427", "If any of baseGroupX, baseGroupY, or baseGroupZ are not zero, then the bound compute pipeline must have been created with the VK_PIPELINE_CREATE_DISPATCH_BASE flag", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-baseGroupZ-00423", "baseGroupZ must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]", "1.3-extensions"},
-    {"VUID-vkCmdDispatchBase-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.3-khr-extensions"},
+    {"VUID-vkCmdDispatchBase-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-commandBuffer-02712", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-commandBuffer-02713", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-commandBuffer-04617", "If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer", "1.3-extensions"},
-    {"VUID-vkCmdDispatchBase-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support compute operations", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -8179,8 +8189,8 @@
     {"VUID-vkCmdDispatchBase-groupCountY-00425", "groupCountY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] minus baseGroupY", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-groupCountZ-00426", "groupCountZ must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] minus baseGroupZ", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDispatchBase-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDispatchBase-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDispatchBase-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDispatchBase-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-renderpass", "This command must only be called outside of a render pass instance", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-sparseImageInt64Atomics-04474", "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", "1.3-extensions"},
@@ -8189,14 +8199,13 @@
     {"VUID-vkCmdDispatchBase-uniformBuffers-06935", "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"},
     {"VUID-vkCmdDispatchBase-viewType-07752", "If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", "1.3-extensions"},
-    {"VUID-vkCmdDispatchIndirect-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-khr-extensions"},
-    {"VUID-vkCmdDispatchIndirect-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdDispatchIndirect-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdDispatchIndirect-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDispatchIndirect-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDispatchIndirect-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
+    {"VUID-vkCmdDispatchIndirect-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDispatchIndirect-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDispatchIndirect-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "1.3-khr-extensions"},
     {"VUID-vkCmdDispatchIndirect-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
     {"VUID-vkCmdDispatchIndirect-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "1.3-khr-extensions"},
     {"VUID-vkCmdDispatchIndirect-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "1.3-khr-extensions"},
@@ -8206,7 +8215,7 @@
     {"VUID-vkCmdDispatchIndirect-None-02859", "There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", "1.3-khr-extensions"},
     {"VUID-vkCmdDispatchIndirect-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDispatchIndirect-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-khr-extensions"},
+    {"VUID-vkCmdDispatchIndirect-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-None-07288", "Any shader invocation executed by this command must terminate", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-None-07888", "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-None-08114", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
@@ -8214,9 +8223,8 @@
     {"VUID-vkCmdDispatchIndirect-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdDispatchIndirect-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDispatchIndirect-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDispatchIndirect-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDispatchIndirect-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDispatchIndirect-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -8227,7 +8235,6 @@
     {"VUID-vkCmdDispatchIndirect-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdDispatchIndirect-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -8249,9 +8256,8 @@
     {"VUID-vkCmdDispatchIndirect-buffer-02708", "If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-buffer-02709", "buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-buffer-parameter", "buffer must be a valid VkBuffer handle", "1.3-extensions"},
-    {"VUID-vkCmdDispatchIndirect-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.3-khr-extensions"},
+    {"VUID-vkCmdDispatchIndirect-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-commandBuffer-02711", "commandBuffer must not be a protected command buffer", "1.3-extensions"},
-    {"VUID-vkCmdDispatchIndirect-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support compute operations", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -8261,8 +8267,8 @@
     {"VUID-vkCmdDispatchIndirect-flags-02696", "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric format of the image view's format and the Sampled Type operand of the OpTypeImage must match", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDispatchIndirect-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDispatchIndirect-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDispatchIndirect-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDispatchIndirect-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-offset-00407", "The sum of offset and the size of VkDispatchIndirectCommand must be less than or equal to the size of buffer", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-offset-02710", "offset must be a multiple of 4", "1.3-extensions"},
@@ -8273,16 +8279,15 @@
     {"VUID-vkCmdDispatchIndirect-uniformBuffers-06935", "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"},
     {"VUID-vkCmdDispatchIndirect-viewType-07752", "If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", "1.3-extensions"},
-    {"VUID-vkCmdDraw-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-khr-extensions"},
-    {"VUID-vkCmdDraw-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdDraw-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdDraw-Input-07939", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then all variables with the Input storage class decorated with Location in the Vertex {ExecutionModel} OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", "1.3-extensions"},
     {"VUID-vkCmdDraw-Input-08734", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then all variables with the Input storage class decorated with Location in the Vertex {ExecutionModel} OpEntryPoint must be the same numeric type as the matching location in VkVertexInputAttributeDescription2EXT", "1.3-extensions"},
     {"VUID-vkCmdDraw-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDraw-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDraw-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdDraw-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDraw-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDraw-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
+    {"VUID-vkCmdDraw-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDraw-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDraw-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "1.3-khr-extensions"},
     {"VUID-vkCmdDraw-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
     {"VUID-vkCmdDraw-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "1.3-khr-extensions"},
     {"VUID-vkCmdDraw-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "1.3-khr-extensions"},
@@ -8304,7 +8309,7 @@
     {"VUID-vkCmdDraw-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"},
     {"VUID-vkCmdDraw-None-06538", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment", "1.3-khr-extensions"},
     {"VUID-vkCmdDraw-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"},
-    {"VUID-vkCmdDraw-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-khr-extensions"},
+    {"VUID-vkCmdDraw-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDraw-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDraw-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"},
     {"VUID-vkCmdDraw-None-06887", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", "1.3-extensions"},
@@ -8373,9 +8378,8 @@
     {"VUID-vkCmdDraw-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDraw-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDraw-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdDraw-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDraw-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDraw-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDraw-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDraw-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDraw-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdDraw-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdDraw-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -8386,7 +8390,6 @@
     {"VUID-vkCmdDraw-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdDraw-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDraw-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdDraw-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDraw-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDraw-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDraw-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -8470,6 +8473,15 @@
     {"VUID-vkCmdDraw-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"},
     {"VUID-vkCmdDraw-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"},
     {"VUID-vkCmdDraw-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDraw-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"},
+    {"VUID-vkCmdDraw-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer to indicate which attachment types used by the render pass instance can use feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDraw-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"},
+    {"VUID-vkCmdDraw-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"},
+    {"VUID-vkCmdDraw-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop can be active", "1.3-extensions"},
+    {"VUID-vkCmdDraw-None-08881", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDraw-None-08882", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDraw-None-08883", "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDraw-None-08885", "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", "1.3-extensions"},
     {"VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdDraw-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -8499,11 +8511,10 @@
     {"VUID-vkCmdDraw-colorAttachmentCount-06185", "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", "1.3-extensions"},
     {"VUID-vkCmdDraw-colorAttachmentCount-06188", "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", "default"},
     {"VUID-vkCmdDraw-colorAttachmentCount-07616", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", "1.3-extensions"},
-    {"VUID-vkCmdDraw-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.3-khr-extensions"},
+    {"VUID-vkCmdDraw-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDraw-commandBuffer-02712", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource", "1.3-extensions"},
     {"VUID-vkCmdDraw-commandBuffer-02713", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource", "1.3-extensions"},
     {"VUID-vkCmdDraw-commandBuffer-04617", "If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer", "1.3-extensions"},
-    {"VUID-vkCmdDraw-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDraw-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"},
     {"VUID-vkCmdDraw-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdDraw-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -8530,8 +8541,8 @@
     {"VUID-vkCmdDraw-imageView-06184", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDraw-logicOp-04878", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", "1.3-extensions"},
     {"VUID-vkCmdDraw-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDraw-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDraw-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDraw-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDraw-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDraw-maxMultiviewInstanceIndex-02688", "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", "1.3-extensions"},
     {"VUID-vkCmdDraw-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdDraw-multisampledRenderToSingleSampled-07284", "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", "1.3-extensions"},
@@ -8564,6 +8575,7 @@
     {"VUID-vkCmdDraw-rasterizationSamples-07474", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", "default"},
     {"VUID-vkCmdDraw-rasterizationSamples-07489", "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", "1.3-extensions"},
     {"VUID-vkCmdDraw-rasterizationSamples-07494", "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", "1.3-extensions"},
+    {"VUID-vkCmdDraw-rasterizerDiscardEnable-08884", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDraw-renderPass-02684", "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", "1.3-extensions"},
     {"VUID-vkCmdDraw-renderPass-06198", "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", "1.3-extensions"},
     {"VUID-vkCmdDraw-renderpass", "This command must only be called inside of a render pass instance", "1.3-extensions"},
@@ -8604,14 +8616,13 @@
     {"VUID-vkCmdDraw-viewportCount-07492", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDraw-viewportCount-07493", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-ClusterCullingHUAWEI-07823", "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the ClusterCullingHUAWEI {ExecutionModel}.", "1.3-extensions"},
-    {"VUID-vkCmdDrawClusterHUAWEI-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "default"},
-    {"VUID-vkCmdDrawClusterHUAWEI-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdDrawClusterHUAWEI-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdDrawClusterHUAWEI-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawClusterHUAWEI-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawClusterHUAWEI-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawClusterHUAWEI-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawClusterHUAWEI-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawClusterHUAWEI-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "default"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "default"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "default"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "default"},
@@ -8626,7 +8637,7 @@
     {"VUID-vkCmdDrawClusterHUAWEI-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-06538", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment", "default"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"},
-    {"VUID-vkCmdDrawClusterHUAWEI-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "default"},
+    {"VUID-vkCmdDrawClusterHUAWEI-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-06887", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", "1.3-extensions"},
@@ -8697,9 +8708,8 @@
     {"VUID-vkCmdDrawClusterHUAWEI-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdDrawClusterHUAWEI-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawClusterHUAWEI-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawClusterHUAWEI-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawClusterHUAWEI-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawClusterHUAWEI-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -8710,7 +8720,6 @@
     {"VUID-vkCmdDrawClusterHUAWEI-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdDrawClusterHUAWEI-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -8794,6 +8803,11 @@
     {"VUID-vkCmdDrawClusterHUAWEI-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawClusterHUAWEI-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"},
+    {"VUID-vkCmdDrawClusterHUAWEI-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer to indicate which attachment types used by the render pass instance can use feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawClusterHUAWEI-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"},
+    {"VUID-vkCmdDrawClusterHUAWEI-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"},
+    {"VUID-vkCmdDrawClusterHUAWEI-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop can be active", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -8823,8 +8837,7 @@
     {"VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-06185", "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-06188", "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", "default"},
     {"VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-07616", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", "1.3-extensions"},
-    {"VUID-vkCmdDrawClusterHUAWEI-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "default"},
-    {"VUID-vkCmdDrawClusterHUAWEI-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
+    {"VUID-vkCmdDrawClusterHUAWEI-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -8853,8 +8866,8 @@
     {"VUID-vkCmdDrawClusterHUAWEI-imageView-06184", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-logicOp-04878", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDrawClusterHUAWEI-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawClusterHUAWEI-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawClusterHUAWEI-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawClusterHUAWEI-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-maxMultiviewInstanceIndex-02688", "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07284", "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", "1.3-extensions"},
@@ -8925,14 +8938,13 @@
     {"VUID-vkCmdDrawClusterHUAWEI-viewportCount-07492", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterHUAWEI-viewportCount-07493", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-ClusterCullingHUAWEI-07824", "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the ClusterCullingHUAWEI {ExecutionModel}.", "1.3-extensions"},
-    {"VUID-vkCmdDrawClusterIndirectHUAWEI-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "default"},
-    {"VUID-vkCmdDrawClusterIndirectHUAWEI-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdDrawClusterIndirectHUAWEI-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "default"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "default"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "default"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "default"},
@@ -8947,7 +8959,7 @@
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-06538", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment", "default"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"},
-    {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "default"},
+    {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-06887", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", "1.3-extensions"},
@@ -9017,9 +9029,8 @@
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -9030,7 +9041,6 @@
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -9114,6 +9124,11 @@
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"},
+    {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer to indicate which attachment types used by the render pass instance can use feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"},
+    {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"},
+    {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop can be active", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -9144,8 +9159,7 @@
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-06185", "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-06188", "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", "default"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-07616", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", "1.3-extensions"},
-    {"VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "default"},
-    {"VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
+    {"VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -9174,8 +9188,8 @@
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06184", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-logicOp-04878", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDrawClusterIndirectHUAWEI-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawClusterIndirectHUAWEI-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawClusterIndirectHUAWEI-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawClusterIndirectHUAWEI-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-maxMultiviewInstanceIndex-02688", "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07284", "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", "1.3-extensions"},
@@ -9246,16 +9260,15 @@
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04140", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-07492", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-07493", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexed-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-khr-extensions"},
-    {"VUID-vkCmdDrawIndexed-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexed-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-Input-07939", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then all variables with the Input storage class decorated with Location in the Vertex {ExecutionModel} OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-Input-08734", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then all variables with the Input storage class decorated with Location in the Vertex {ExecutionModel} OpEntryPoint must be the same numeric type as the matching location in VkVertexInputAttributeDescription2EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdDrawIndexed-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDrawIndexed-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDrawIndexed-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndexed-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndexed-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndexed-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "1.3-khr-extensions"},
     {"VUID-vkCmdDrawIndexed-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
     {"VUID-vkCmdDrawIndexed-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "1.3-khr-extensions"},
     {"VUID-vkCmdDrawIndexed-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "1.3-khr-extensions"},
@@ -9277,7 +9290,7 @@
     {"VUID-vkCmdDrawIndexed-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-None-06538", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment", "1.3-khr-extensions"},
     {"VUID-vkCmdDrawIndexed-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexed-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndexed-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-None-06887", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", "1.3-extensions"},
@@ -9347,9 +9360,8 @@
     {"VUID-vkCmdDrawIndexed-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexed-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexed-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexed-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawIndexed-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexed-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -9360,7 +9372,6 @@
     {"VUID-vkCmdDrawIndexed-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexed-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -9444,6 +9455,15 @@
     {"VUID-vkCmdDrawIndexed-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexed-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexed-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer to indicate which attachment types used by the render pass instance can use feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexed-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexed-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexed-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop can be active", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexed-None-08881", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexed-None-08882", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexed-None-08883", "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexed-None-08885", "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -9473,11 +9493,10 @@
     {"VUID-vkCmdDrawIndexed-colorAttachmentCount-06185", "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-colorAttachmentCount-06188", "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", "default"},
     {"VUID-vkCmdDrawIndexed-colorAttachmentCount-07616", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexed-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndexed-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-commandBuffer-02712", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-commandBuffer-02713", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-commandBuffer-04617", "If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexed-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -9504,8 +9523,8 @@
     {"VUID-vkCmdDrawIndexed-imageView-06184", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-logicOp-04878", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexed-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDrawIndexed-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexed-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndexed-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-02688", "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07284", "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", "1.3-extensions"},
@@ -9538,6 +9557,7 @@
     {"VUID-vkCmdDrawIndexed-rasterizationSamples-07474", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", "default"},
     {"VUID-vkCmdDrawIndexed-rasterizationSamples-07489", "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-rasterizationSamples-07494", "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-08884", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-renderPass-02684", "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-renderPass-06198", "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-renderpass", "This command must only be called inside of a render pass instance", "1.3-extensions"},
@@ -9578,16 +9598,15 @@
     {"VUID-vkCmdDrawIndexed-viewportCount-04140", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-viewportCount-07492", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexed-viewportCount-07493", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirect-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-khr-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirect-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirect-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-Input-07939", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then all variables with the Input storage class decorated with Location in the Vertex {ExecutionModel} OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-Input-08734", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then all variables with the Input storage class decorated with Location in the Vertex {ExecutionModel} OpEntryPoint must be the same numeric type as the matching location in VkVertexInputAttributeDescription2EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdDrawIndexedIndirect-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirect-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirect-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirect-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirect-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirect-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "1.3-khr-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "1.3-khr-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "1.3-khr-extensions"},
@@ -9609,7 +9628,7 @@
     {"VUID-vkCmdDrawIndexedIndirect-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-06538", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment", "1.3-khr-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirect-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirect-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-06887", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", "1.3-extensions"},
@@ -9679,9 +9698,8 @@
     {"VUID-vkCmdDrawIndexedIndirect-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirect-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirect-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirect-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawIndexedIndirect-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirect-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -9692,7 +9710,6 @@
     {"VUID-vkCmdDrawIndexedIndirect-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirect-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -9776,6 +9793,15 @@
     {"VUID-vkCmdDrawIndexedIndirect-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirect-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirect-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer to indicate which attachment types used by the render pass instance can use feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirect-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirect-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirect-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop can be active", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirect-None-08881", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirect-None-08882", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirect-None-08883", "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirect-None-08885", "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -9808,9 +9834,8 @@
     {"VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06185", "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06188", "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", "default"},
     {"VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-07616", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711", "commandBuffer must not be a protected command buffer", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirect-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -9843,8 +9868,8 @@
     {"VUID-vkCmdDrawIndexedIndirect-imageView-06184", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-logicOp-04878", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirect-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirect-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirect-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirect-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-02688", "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07284", "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", "1.3-extensions"},
@@ -9878,6 +9903,7 @@
     {"VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07474", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", "default"},
     {"VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07489", "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07494", "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-08884", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-renderPass-02684", "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-renderPass-06198", "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-renderpass", "This command must only be called inside of a render pass instance", "1.3-extensions"},
@@ -9918,16 +9944,15 @@
     {"VUID-vkCmdDrawIndexedIndirect-viewportCount-04140", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-viewportCount-07492", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-viewportCount-07493", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirectCount-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-khr-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirectCount-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirectCount-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-Input-07939", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then all variables with the Input storage class decorated with Location in the Vertex {ExecutionModel} OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-Input-08734", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then all variables with the Input storage class decorated with Location in the Vertex {ExecutionModel} OpEntryPoint must be the same numeric type as the matching location in VkVertexInputAttributeDescription2EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdDrawIndexedIndirectCount-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirectCount-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirectCount-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirectCount-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirectCount-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirectCount-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "1.3-khr-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "1.3-khr-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "1.3-khr-extensions"},
@@ -9950,7 +9975,7 @@
     {"VUID-vkCmdDrawIndexedIndirectCount-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-06538", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment", "1.3-khr-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirectCount-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirectCount-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-06887", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", "1.3-extensions"},
@@ -10020,9 +10045,8 @@
     {"VUID-vkCmdDrawIndexedIndirectCount-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirectCount-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirectCount-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirectCount-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawIndexedIndirectCount-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirectCount-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -10033,7 +10057,6 @@
     {"VUID-vkCmdDrawIndexedIndirectCount-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirectCount-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -10117,6 +10140,15 @@
     {"VUID-vkCmdDrawIndexedIndirectCount-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirectCount-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirectCount-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer to indicate which attachment types used by the render pass instance can use feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirectCount-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirectCount-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirectCount-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop can be active", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirectCount-None-08881", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirectCount-None-08882", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirectCount-None-08883", "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirectCount-None-08885", "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -10149,9 +10181,8 @@
     {"VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06185", "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06188", "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", "default"},
     {"VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-07616", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711", "commandBuffer must not be a protected command buffer", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -10187,8 +10218,8 @@
     {"VUID-vkCmdDrawIndexedIndirectCount-imageView-06184", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-logicOp-04878", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirectCount-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirectCount-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirectCount-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirectCount-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-maxDrawCount-03143", "If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-maxMultiviewInstanceIndex-02688", "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
@@ -10223,6 +10254,7 @@
     {"VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07474", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", "default"},
     {"VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07489", "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07494", "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-08884", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-renderPass-02684", "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-renderPass-06198", "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-renderpass", "This command must only be called inside of a render pass instance", "1.3-extensions"},
@@ -10264,16 +10296,15 @@
     {"VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04140", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-viewportCount-07492", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-viewportCount-07493", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirect-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-khr-extensions"},
-    {"VUID-vkCmdDrawIndirect-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirect-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-Input-07939", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then all variables with the Input storage class decorated with Location in the Vertex {ExecutionModel} OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-Input-08734", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then all variables with the Input storage class decorated with Location in the Vertex {ExecutionModel} OpEntryPoint must be the same numeric type as the matching location in VkVertexInputAttributeDescription2EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdDrawIndirect-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDrawIndirect-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDrawIndirect-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndirect-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndirect-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndirect-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "1.3-khr-extensions"},
     {"VUID-vkCmdDrawIndirect-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
     {"VUID-vkCmdDrawIndirect-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "1.3-khr-extensions"},
     {"VUID-vkCmdDrawIndirect-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "1.3-khr-extensions"},
@@ -10295,7 +10326,7 @@
     {"VUID-vkCmdDrawIndirect-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-None-06538", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment", "1.3-khr-extensions"},
     {"VUID-vkCmdDrawIndirect-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirect-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndirect-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-None-06887", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", "1.3-extensions"},
@@ -10364,9 +10395,8 @@
     {"VUID-vkCmdDrawIndirect-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirect-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirect-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirect-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawIndirect-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirect-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -10377,7 +10407,6 @@
     {"VUID-vkCmdDrawIndirect-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirect-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -10461,6 +10490,15 @@
     {"VUID-vkCmdDrawIndirect-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirect-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirect-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer to indicate which attachment types used by the render pass instance can use feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirect-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirect-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirect-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop can be active", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirect-None-08881", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirect-None-08882", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirect-None-08883", "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirect-None-08885", "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -10493,9 +10531,8 @@
     {"VUID-vkCmdDrawIndirect-colorAttachmentCount-06185", "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-colorAttachmentCount-06188", "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", "default"},
     {"VUID-vkCmdDrawIndirect-colorAttachmentCount-07616", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirect-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndirect-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-commandBuffer-02711", "commandBuffer must not be a protected command buffer", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirect-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -10528,8 +10565,8 @@
     {"VUID-vkCmdDrawIndirect-imageView-06184", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-logicOp-04878", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirect-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDrawIndirect-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirect-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndirect-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-02688", "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07284", "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", "1.3-extensions"},
@@ -10563,6 +10600,7 @@
     {"VUID-vkCmdDrawIndirect-rasterizationSamples-07474", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", "default"},
     {"VUID-vkCmdDrawIndirect-rasterizationSamples-07489", "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-rasterizationSamples-07494", "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-08884", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-renderPass-02684", "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-renderPass-06198", "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-renderpass", "This command must only be called inside of a render pass instance", "1.3-extensions"},
@@ -10602,16 +10640,15 @@
     {"VUID-vkCmdDrawIndirect-viewportCount-04140", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-viewportCount-07492", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirect-viewportCount-07493", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirectByteCountEXT-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "default"},
-    {"VUID-vkCmdDrawIndirectByteCountEXT-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectByteCountEXT-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-Input-07939", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then all variables with the Input storage class decorated with Location in the Vertex {ExecutionModel} OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-Input-08734", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then all variables with the Input storage class decorated with Location in the Vertex {ExecutionModel} OpEntryPoint must be the same numeric type as the matching location in VkVertexInputAttributeDescription2EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdDrawIndirectByteCountEXT-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawIndirectByteCountEXT-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawIndirectByteCountEXT-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawIndirectByteCountEXT-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawIndirectByteCountEXT-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawIndirectByteCountEXT-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "default"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "default"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "default"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "default"},
@@ -10633,7 +10670,7 @@
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-06538", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment", "default"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirectByteCountEXT-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "default"},
+    {"VUID-vkCmdDrawIndirectByteCountEXT-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-06887", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", "1.3-extensions"},
@@ -10702,9 +10739,8 @@
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirectByteCountEXT-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirectByteCountEXT-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirectByteCountEXT-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawIndirectByteCountEXT-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectByteCountEXT-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -10715,7 +10751,6 @@
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirectByteCountEXT-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -10799,6 +10834,15 @@
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectByteCountEXT-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectByteCountEXT-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer to indicate which attachment types used by the render pass instance can use feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectByteCountEXT-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectByteCountEXT-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectByteCountEXT-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop can be active", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectByteCountEXT-None-08881", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectByteCountEXT-None-08882", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectByteCountEXT-None-08883", "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectByteCountEXT-None-08885", "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -10829,8 +10873,7 @@
     {"VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06188", "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", "default"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-07616", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646", "commandBuffer must not be a protected command buffer", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "default"},
-    {"VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -10862,8 +10905,8 @@
     {"VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-logicOp-04878", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-maxMultiviewInstanceIndex-02688", "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07284", "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", "1.3-extensions"},
@@ -10896,6 +10939,7 @@
     {"VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07474", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", "default"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07489", "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07494", "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-08884", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-renderPass-02684", "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198", "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-renderpass", "This command must only be called inside of a render pass instance", "1.3-extensions"},
@@ -10938,16 +10982,15 @@
     {"VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04140", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-07492", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-07493", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirectCount-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-khr-extensions"},
-    {"VUID-vkCmdDrawIndirectCount-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectCount-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-Input-07939", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then all variables with the Input storage class decorated with Location in the Vertex {ExecutionModel} OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-Input-08734", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then all variables with the Input storage class decorated with Location in the Vertex {ExecutionModel} OpEntryPoint must be the same numeric type as the matching location in VkVertexInputAttributeDescription2EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdDrawIndirectCount-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDrawIndirectCount-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDrawIndirectCount-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndirectCount-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndirectCount-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndirectCount-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "1.3-khr-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "1.3-khr-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "1.3-khr-extensions"},
@@ -10970,7 +11013,7 @@
     {"VUID-vkCmdDrawIndirectCount-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-06538", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment", "1.3-khr-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirectCount-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndirectCount-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-06887", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", "1.3-extensions"},
@@ -11039,9 +11082,8 @@
     {"VUID-vkCmdDrawIndirectCount-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirectCount-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirectCount-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirectCount-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawIndirectCount-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectCount-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -11052,7 +11094,6 @@
     {"VUID-vkCmdDrawIndirectCount-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirectCount-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -11136,6 +11177,15 @@
     {"VUID-vkCmdDrawIndirectCount-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectCount-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectCount-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer to indicate which attachment types used by the render pass instance can use feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectCount-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectCount-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectCount-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop can be active", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectCount-None-08881", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectCount-None-08882", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectCount-None-08883", "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectCount-None-08885", "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -11168,9 +11218,8 @@
     {"VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06185", "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06188", "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", "default"},
     {"VUID-vkCmdDrawIndirectCount-colorAttachmentCount-07616", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirectCount-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndirectCount-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-commandBuffer-02711", "commandBuffer must not be a protected command buffer", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirectCount-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -11206,8 +11255,8 @@
     {"VUID-vkCmdDrawIndirectCount-imageView-06184", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-logicOp-04878", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDrawIndirectCount-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdDrawIndirectCount-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectCount-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdDrawIndirectCount-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-maxDrawCount-03111", "If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-maxMultiviewInstanceIndex-02688", "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
@@ -11242,6 +11291,7 @@
     {"VUID-vkCmdDrawIndirectCount-rasterizationSamples-07474", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", "default"},
     {"VUID-vkCmdDrawIndirectCount-rasterizationSamples-07489", "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-rasterizationSamples-07494", "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", "1.3-extensions"},
+    {"VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-08884", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-renderPass-02684", "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-renderPass-06198", "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-renderpass", "This command must only be called inside of a render pass instance", "1.3-extensions"},
@@ -11282,15 +11332,14 @@
     {"VUID-vkCmdDrawIndirectCount-viewportCount-04140", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-viewportCount-07492", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawIndirectCount-viewportCount-07493", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksEXT-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "default"},
-    {"VUID-vkCmdDrawMeshTasksEXT-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksEXT-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-MeshEXT-07087", "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshEXT {ExecutionModel}", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdDrawMeshTasksEXT-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMeshTasksEXT-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMeshTasksEXT-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawMeshTasksEXT-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMeshTasksEXT-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMeshTasksEXT-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "default"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "default"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "default"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "default"},
@@ -11305,7 +11354,7 @@
     {"VUID-vkCmdDrawMeshTasksEXT-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-06538", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment", "default"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksEXT-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "default"},
+    {"VUID-vkCmdDrawMeshTasksEXT-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-06887", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", "1.3-extensions"},
@@ -11375,9 +11424,8 @@
     {"VUID-vkCmdDrawMeshTasksEXT-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksEXT-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksEXT-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksEXT-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawMeshTasksEXT-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksEXT-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -11388,7 +11436,6 @@
     {"VUID-vkCmdDrawMeshTasksEXT-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksEXT-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -11472,6 +11519,11 @@
     {"VUID-vkCmdDrawMeshTasksEXT-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksEXT-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksEXT-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer to indicate which attachment types used by the render pass instance can use feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksEXT-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksEXT-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksEXT-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop can be active", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -11509,8 +11561,7 @@
     {"VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-06185", "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-06188", "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", "default"},
     {"VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-07616", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksEXT-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "default"},
-    {"VUID-vkCmdDrawMeshTasksEXT-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksEXT-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -11536,8 +11587,8 @@
     {"VUID-vkCmdDrawMeshTasksEXT-imageView-06184", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-logicOp-04878", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksEXT-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMeshTasksEXT-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksEXT-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMeshTasksEXT-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-maxMultiviewInstanceIndex-02688", "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07284", "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", "1.3-extensions"},
@@ -11607,15 +11658,14 @@
     {"VUID-vkCmdDrawMeshTasksEXT-viewportCount-04140", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-viewportCount-07492", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksEXT-viewportCount-07493", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "default"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-MeshEXT-07100", "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshEXT {ExecutionModel}", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "default"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "default"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "default"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "default"},
@@ -11631,7 +11681,7 @@
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06538", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment", "default"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06887", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", "1.3-extensions"},
@@ -11701,9 +11751,8 @@
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -11714,7 +11763,6 @@
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -11798,6 +11846,11 @@
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer to indicate which attachment types used by the render pass instance can use feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop can be active", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -11830,9 +11883,8 @@
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06185", "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06188", "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", "default"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-07616", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02711", "commandBuffer must not be a protected command buffer", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -11867,8 +11919,8 @@
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06184", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-logicOp-04878", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxDrawCount-07097", "If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of buffer", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxMultiviewInstanceIndex-02688", "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
@@ -11941,15 +11993,14 @@
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04140", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-07492", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-07493", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "default"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-MeshNV-07082", "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshNV {ExecutionModel}", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "default"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "default"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "default"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "default"},
@@ -11965,7 +12016,7 @@
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06538", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment", "default"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06887", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", "1.3-extensions"},
@@ -12035,9 +12086,8 @@
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -12048,7 +12098,6 @@
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -12132,6 +12181,11 @@
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer to indicate which attachment types used by the render pass instance can use feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop can be active", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -12164,9 +12218,8 @@
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06185", "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06188", "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", "default"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-07616", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711", "commandBuffer must not be a protected command buffer", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -12201,8 +12254,8 @@
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-logicOp-04878", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183", "If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-maxMultiviewInstanceIndex-02688", "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
@@ -12275,15 +12328,14 @@
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04140", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-07492", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-07493", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectEXT-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "default"},
-    {"VUID-vkCmdDrawMeshTasksIndirectEXT-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectEXT-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-MeshEXT-07091", "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshEXT {ExecutionModel}", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "default"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "default"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "default"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "default"},
@@ -12298,7 +12350,7 @@
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-06538", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment", "default"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-06887", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", "1.3-extensions"},
@@ -12368,9 +12420,8 @@
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -12381,7 +12432,6 @@
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -12465,6 +12515,11 @@
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer to indicate which attachment types used by the render pass instance can use feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop can be active", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -12497,9 +12552,8 @@
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06185", "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06188", "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", "default"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-07616", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02711", "commandBuffer must not be a protected command buffer", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -12531,8 +12585,8 @@
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06184", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-logicOp-04878", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectEXT-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMeshTasksIndirectEXT-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectEXT-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectEXT-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-maxMultiviewInstanceIndex-02688", "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07284", "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", "1.3-extensions"},
@@ -12603,15 +12657,14 @@
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04140", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-07492", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-07493", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectNV-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "default"},
-    {"VUID-vkCmdDrawMeshTasksIndirectNV-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectNV-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-MeshNV-07081", "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshNV {ExecutionModel}", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdDrawMeshTasksIndirectNV-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMeshTasksIndirectNV-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMeshTasksIndirectNV-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectNV-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectNV-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectNV-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "default"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "default"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "default"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "default"},
@@ -12626,7 +12679,7 @@
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-06538", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment", "default"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectNV-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectNV-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-06887", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", "1.3-extensions"},
@@ -12696,9 +12749,8 @@
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -12709,7 +12761,6 @@
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -12793,6 +12844,11 @@
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer to indicate which attachment types used by the render pass instance can use feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop can be active", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -12825,9 +12881,8 @@
     {"VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06185", "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06188", "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", "default"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-07616", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711", "commandBuffer must not be a protected command buffer", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -12859,8 +12914,8 @@
     {"VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06184", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-logicOp-04878", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-maxMultiviewInstanceIndex-02688", "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07284", "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", "1.3-extensions"},
@@ -12931,15 +12986,14 @@
     {"VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04140", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-07492", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-07493", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksNV-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "default"},
-    {"VUID-vkCmdDrawMeshTasksNV-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksNV-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-MeshNV-07080", "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshNV {ExecutionModel}", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdDrawMeshTasksNV-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMeshTasksNV-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMeshTasksNV-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawMeshTasksNV-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMeshTasksNV-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMeshTasksNV-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "default"},
     {"VUID-vkCmdDrawMeshTasksNV-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "default"},
     {"VUID-vkCmdDrawMeshTasksNV-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "default"},
     {"VUID-vkCmdDrawMeshTasksNV-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "default"},
@@ -12954,7 +13008,7 @@
     {"VUID-vkCmdDrawMeshTasksNV-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-None-06538", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment", "default"},
     {"VUID-vkCmdDrawMeshTasksNV-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksNV-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "default"},
+    {"VUID-vkCmdDrawMeshTasksNV-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-None-06887", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", "1.3-extensions"},
@@ -13024,9 +13078,8 @@
     {"VUID-vkCmdDrawMeshTasksNV-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksNV-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksNV-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksNV-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawMeshTasksNV-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksNV-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -13037,7 +13090,6 @@
     {"VUID-vkCmdDrawMeshTasksNV-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksNV-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -13121,6 +13173,11 @@
     {"VUID-vkCmdDrawMeshTasksNV-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksNV-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksNV-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer to indicate which attachment types used by the render pass instance can use feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksNV-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksNV-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksNV-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop can be active", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -13150,8 +13207,7 @@
     {"VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06185", "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06188", "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", "default"},
     {"VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-07616", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksNV-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "default"},
-    {"VUID-vkCmdDrawMeshTasksNV-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksNV-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -13177,8 +13233,8 @@
     {"VUID-vkCmdDrawMeshTasksNV-imageView-06184", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-logicOp-04878", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDrawMeshTasksNV-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMeshTasksNV-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawMeshTasksNV-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMeshTasksNV-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-maxMultiviewInstanceIndex-02688", "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07284", "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", "1.3-extensions"},
@@ -13249,16 +13305,15 @@
     {"VUID-vkCmdDrawMeshTasksNV-viewportCount-04140", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-viewportCount-07492", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-viewportCount-07493", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
-    {"VUID-vkCmdDrawMultiEXT-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "default"},
-    {"VUID-vkCmdDrawMultiEXT-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiEXT-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-Input-07939", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then all variables with the Input storage class decorated with Location in the Vertex {ExecutionModel} OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-Input-08734", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then all variables with the Input storage class decorated with Location in the Vertex {ExecutionModel} OpEntryPoint must be the same numeric type as the matching location in VkVertexInputAttributeDescription2EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdDrawMultiEXT-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMultiEXT-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMultiEXT-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawMultiEXT-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMultiEXT-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMultiEXT-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "default"},
     {"VUID-vkCmdDrawMultiEXT-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "default"},
     {"VUID-vkCmdDrawMultiEXT-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "default"},
     {"VUID-vkCmdDrawMultiEXT-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "default"},
@@ -13281,7 +13336,7 @@
     {"VUID-vkCmdDrawMultiEXT-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-None-06538", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment", "default"},
     {"VUID-vkCmdDrawMultiEXT-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"},
-    {"VUID-vkCmdDrawMultiEXT-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "default"},
+    {"VUID-vkCmdDrawMultiEXT-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-None-06887", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", "1.3-extensions"},
@@ -13350,9 +13405,8 @@
     {"VUID-vkCmdDrawMultiEXT-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdDrawMultiEXT-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawMultiEXT-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawMultiEXT-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawMultiEXT-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiEXT-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -13363,7 +13417,6 @@
     {"VUID-vkCmdDrawMultiEXT-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdDrawMultiEXT-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -13447,6 +13500,15 @@
     {"VUID-vkCmdDrawMultiEXT-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiEXT-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiEXT-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer to indicate which attachment types used by the render pass instance can use feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiEXT-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiEXT-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiEXT-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop can be active", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiEXT-None-08881", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiEXT-None-08882", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiEXT-None-08883", "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiEXT-None-08885", "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -13476,11 +13538,10 @@
     {"VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06185", "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06188", "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", "default"},
     {"VUID-vkCmdDrawMultiEXT-colorAttachmentCount-07616", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", "1.3-extensions"},
-    {"VUID-vkCmdDrawMultiEXT-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "default"},
+    {"VUID-vkCmdDrawMultiEXT-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-commandBuffer-02712", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-commandBuffer-02713", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-commandBuffer-04617", "If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer", "1.3-extensions"},
-    {"VUID-vkCmdDrawMultiEXT-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -13509,8 +13570,8 @@
     {"VUID-vkCmdDrawMultiEXT-imageView-06184", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-logicOp-04878", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDrawMultiEXT-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMultiEXT-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiEXT-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMultiEXT-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-maxMultiviewInstanceIndex-02688", "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07284", "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", "1.3-extensions"},
@@ -13543,6 +13604,7 @@
     {"VUID-vkCmdDrawMultiEXT-rasterizationSamples-07474", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", "default"},
     {"VUID-vkCmdDrawMultiEXT-rasterizationSamples-07489", "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-rasterizationSamples-07494", "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-08884", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-renderPass-02684", "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-renderPass-06198", "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-renderpass", "This command must only be called inside of a render pass instance", "1.3-extensions"},
@@ -13583,16 +13645,15 @@
     {"VUID-vkCmdDrawMultiEXT-viewportCount-04140", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-viewportCount-07492", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiEXT-viewportCount-07493", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"},
-    {"VUID-vkCmdDrawMultiIndexedEXT-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "default"},
-    {"VUID-vkCmdDrawMultiIndexedEXT-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiIndexedEXT-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-Input-07939", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then all variables with the Input storage class decorated with Location in the Vertex {ExecutionModel} OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-Input-08734", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then all variables with the Input storage class decorated with Location in the Vertex {ExecutionModel} OpEntryPoint must be the same numeric type as the matching location in VkVertexInputAttributeDescription2EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdDrawMultiIndexedEXT-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMultiIndexedEXT-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMultiIndexedEXT-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawMultiIndexedEXT-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMultiIndexedEXT-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMultiIndexedEXT-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "default"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "default"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "default"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "default"},
@@ -13615,7 +13676,7 @@
     {"VUID-vkCmdDrawMultiIndexedEXT-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-06538", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment", "default"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"},
-    {"VUID-vkCmdDrawMultiIndexedEXT-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "default"},
+    {"VUID-vkCmdDrawMultiIndexedEXT-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-06887", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", "1.3-extensions"},
@@ -13685,9 +13746,8 @@
     {"VUID-vkCmdDrawMultiIndexedEXT-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdDrawMultiIndexedEXT-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawMultiIndexedEXT-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdDrawMultiIndexedEXT-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdDrawMultiIndexedEXT-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiIndexedEXT-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -13698,7 +13758,6 @@
     {"VUID-vkCmdDrawMultiIndexedEXT-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdDrawMultiIndexedEXT-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -13782,6 +13841,15 @@
     {"VUID-vkCmdDrawMultiIndexedEXT-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiIndexedEXT-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiIndexedEXT-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer to indicate which attachment types used by the render pass instance can use feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiIndexedEXT-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiIndexedEXT-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiIndexedEXT-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop can be active", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiIndexedEXT-None-08881", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiIndexedEXT-None-08882", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiIndexedEXT-None-08883", "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiIndexedEXT-None-08885", "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -13811,11 +13879,10 @@
     {"VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06185", "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06188", "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", "default"},
     {"VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-07616", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", "1.3-extensions"},
-    {"VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "default"},
+    {"VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02713", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-04617", "If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer", "1.3-extensions"},
-    {"VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -13844,8 +13911,8 @@
     {"VUID-vkCmdDrawMultiIndexedEXT-imageView-06184", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-logicOp-04878", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdDrawMultiIndexedEXT-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdDrawMultiIndexedEXT-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiIndexedEXT-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdDrawMultiIndexedEXT-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-maxMultiviewInstanceIndex-02688", "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07284", "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", "1.3-extensions"},
@@ -13879,6 +13946,7 @@
     {"VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07474", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", "default"},
     {"VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07489", "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07494", "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", "1.3-extensions"},
+    {"VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-08884", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-renderPass-02684", "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-renderPass-06198", "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", "1.3-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-renderpass", "This command must only be called inside of a render pass instance", "1.3-extensions"},
@@ -14081,16 +14149,15 @@
     {"VUID-vkCmdExecuteCommands-variableSampleLocations-06023", "If the variableSampleLocations limit is not supported, and any element of pCommandBuffers contains any suspended render pass instances, where a graphics pipeline has been bound, any pipelines bound in the render pass instance that resumes it, or any subsequent render pass instances that resume from that one and so on, must use the same sample locations", "1.3-extensions"},
     {"VUID-vkCmdExecuteCommands-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"},
     {"VUID-vkCmdExecuteCommands-viewMask-06031", "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, the viewMask member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the VkRenderingInfo::viewMask parameter to vkCmdBeginRendering", "1.3-extensions"},
-    {"VUID-vkCmdExecuteGeneratedCommandsNV-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "default"},
-    {"VUID-vkCmdExecuteGeneratedCommandsNV-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdExecuteGeneratedCommandsNV-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-Input-07939", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then all variables with the Input storage class decorated with Location in the Vertex {ExecutionModel} OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-Input-08734", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then all variables with the Input storage class decorated with Location in the Vertex {ExecutionModel} OpEntryPoint must be the same numeric type as the matching location in VkVertexInputAttributeDescription2EXT", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "default"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "default"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "default"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "default"},
@@ -14113,7 +14180,7 @@
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-06538", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment", "default"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"},
-    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "default"},
+    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-06887", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back writeMask are not zero, and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP", "1.3-extensions"},
@@ -14182,9 +14249,8 @@
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -14195,7 +14261,6 @@
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -14279,6 +14344,15 @@
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"},
+    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer to indicate which attachment types used by the render pass instance can use feedback loops", "1.3-extensions"},
+    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"},
+    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"},
+    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop can be active", "1.3-extensions"},
+    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08881", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08882", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08883", "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
+    {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08885", "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -14308,9 +14382,8 @@
     {"VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06185", "If the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06188", "If the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline", "default"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-07616", "If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED", "1.3-extensions"},
-    {"VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "default"},
+    {"VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02970", "commandBuffer must not be a protected command buffer", "1.3-extensions"},
-    {"VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -14339,8 +14412,8 @@
     {"VUID-vkCmdExecuteGeneratedCommandsNV-isPreprocessed-02908", "If isPreprocessed is VK_TRUE then vkCmdPreprocessGeneratedCommandsNV must have already been executed on the device, using the same pGeneratedCommandsInfo content as well as the content of the input buffers it references (all except VkGeneratedCommandsInfoNV::preprocessBuffer). Furthermore pGeneratedCommandsInfo`s indirectCommandsLayout must have been created with the VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV bit set", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-logicOp-04878", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdExecuteGeneratedCommandsNV-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdExecuteGeneratedCommandsNV-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdExecuteGeneratedCommandsNV-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdExecuteGeneratedCommandsNV-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-maxMultiviewInstanceIndex-02688", "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07284", "If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments", "1.3-extensions"},
@@ -14375,6 +14448,7 @@
     {"VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07474", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments", "default"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07489", "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07494", "If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE", "1.3-extensions"},
+    {"VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-08884", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-renderPass-02684", "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-renderPass-06198", "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE", "1.3-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-renderpass", "This command must only be called inside of a render pass instance", "1.3-extensions"},
@@ -14492,6 +14566,8 @@
     {"VUID-vkCmdPipelineBarrier-dstStageMask-07318", "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"},
     {"VUID-vkCmdPipelineBarrier-dstStageMask-07319", "If the attachmentFragmentShadingRate feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdPipelineBarrier-dstStageMask-07948", "If the VK_NV_ray_tracing extension is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV", "default"},
+    {"VUID-vkCmdPipelineBarrier-dstStageMask-07949", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
+    {"VUID-vkCmdPipelineBarrier-dstStageMask-07950", "If the rayTracingPipeline feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdPipelineBarrier-dstStageMask-parameter", "dstStageMask must be a valid combination of VkPipelineStageFlagBits values", "1.3-extensions"},
     {"VUID-vkCmdPipelineBarrier-image-04073", "If fname:vkCmdPipelineBarrier is called within a render pass instance using a VkRenderPass object, the image member of any image memory barrier included in this command must be an attachment used in the current subpass both as an input attachment, and as either a color or depth/stencil attachment", "1.3-extensions"},
     {"VUID-vkCmdPipelineBarrier-oldLayout-01181", "If fname:vkCmdPipelineBarrier is called within a render pass instance, the oldLayout and newLayout members of any image memory barrier included in this command must be equal", "1.3-extensions"},
@@ -14503,8 +14579,6 @@
     {"VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02820", "For any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types", "1.3-extensions"},
     {"VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-parameter", "If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier structures", "1.3-extensions"},
     {"VUID-vkCmdPipelineBarrier-pMemoryBarriers-parameter", "If memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier structures", "1.3-extensions"},
-    {"VUID-vkCmdPipelineBarrier-rayTracingPipeline-07949", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
-    {"VUID-vkCmdPipelineBarrier-rayTracingPipeline-07950", "If the rayTracingPipeline feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdPipelineBarrier-shaderTileImageColorReadAccess-08718", "If fname:vkCmdPipelineBarrier is called within a render pass instance and none of the shaderTileImageColorReadAccess, shaderTileImageDepthReadAccess, shaderTileImageStencilReadAccess features are enabled, the render pass must not have been started with vkCmdBeginRendering", "1.3-extensions"},
     {"VUID-vkCmdPipelineBarrier-srcAccessMask-02815", "The srcAccessMask member of each element of pMemoryBarriers must only include access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types", "1.3-extensions"},
     {"VUID-vkCmdPipelineBarrier-srcQueueFamilyIndex-01182", "If fname:vkCmdPipelineBarrier is called within a render pass instance, the srcQueueFamilyIndex and dstQueueFamilyIndex members of any memory barrier included in this command must be equal", "1.3-extensions"},
@@ -14522,6 +14596,8 @@
     {"VUID-vkCmdPipelineBarrier-srcStageMask-07318", "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"},
     {"VUID-vkCmdPipelineBarrier-srcStageMask-07319", "If the attachmentFragmentShadingRate feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdPipelineBarrier-srcStageMask-07948", "If the VK_NV_ray_tracing extension is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV", "default"},
+    {"VUID-vkCmdPipelineBarrier-srcStageMask-07949", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
+    {"VUID-vkCmdPipelineBarrier-srcStageMask-07950", "If the rayTracingPipeline feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdPipelineBarrier-srcStageMask-parameter", "srcStageMask must be a valid combination of VkPipelineStageFlagBits values", "1.3-extensions"},
     {"VUID-vkCmdPipelineBarrier2-None-06191", "If fname:vkCmdPipelineBarrier2 is called within a render pass instance, the render pass must not have been started with vkCmdBeginRendering", "1.3-khr-extensions"},
     {"VUID-vkCmdPipelineBarrier2-None-07889", "If fname:vkCmdPipelineBarrier2 is called within a render pass instance using a VkRenderPass object, the render pass must have been created with at least one subpass dependency that expresses a dependency from the current subpass to itself, does not include VK_DEPENDENCY_BY_REGION_BIT if this command does not, does not include VK_DEPENDENCY_VIEW_LOCAL_BIT if this command does not, and has synchronization scopes and access scopes that are all supersets of the scopes defined in this command", "1.3-extensions"},
@@ -14604,8 +14680,6 @@
     {"VUID-vkCmdResetEvent-event-03834", "There must be an execution dependency between vkCmdResetEvent and the execution of any vkCmdWaitEvents that includes event in its pEvents parameter", "1.3-extensions"},
     {"VUID-vkCmdResetEvent-event-03835", "There must be an execution dependency between vkCmdResetEvent and the execution of any vkCmdWaitEvents2 that includes event in its pEvents parameter", "1.3-extensions"},
     {"VUID-vkCmdResetEvent-event-parameter", "event must be a valid VkEvent handle", "1.3-extensions"},
-    {"VUID-vkCmdResetEvent-rayTracingPipeline-07949", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
-    {"VUID-vkCmdResetEvent-rayTracingPipeline-07950", "If the rayTracingPipeline feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdResetEvent-renderpass", "This command must only be called outside of a render pass instance", "1.3-extensions"},
     {"VUID-vkCmdResetEvent-stageMask-01153", "stageMask must not include VK_PIPELINE_STAGE_HOST_BIT", "1.3-extensions"},
     {"VUID-vkCmdResetEvent-stageMask-03937", "If the synchronization2 feature is not enabled, pname:stageMask must not be 0", "1.3-extensions"},
@@ -14622,6 +14696,8 @@
     {"VUID-vkCmdResetEvent-stageMask-07318", "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"},
     {"VUID-vkCmdResetEvent-stageMask-07319", "If the attachmentFragmentShadingRate feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdResetEvent-stageMask-07948", "If the VK_NV_ray_tracing extension is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV", "default"},
+    {"VUID-vkCmdResetEvent-stageMask-07949", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
+    {"VUID-vkCmdResetEvent-stageMask-07950", "If the rayTracingPipeline feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdResetEvent-stageMask-parameter", "stageMask must be a valid combination of VkPipelineStageFlagBits values", "1.3-extensions"},
     {"VUID-vkCmdResetEvent2-commandBuffer-03833", "commandBuffer's current device mask must include exactly one physical device", "1.3-extensions"},
     {"VUID-vkCmdResetEvent2-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations", "1.3-extensions"},
@@ -14631,8 +14707,6 @@
     {"VUID-vkCmdResetEvent2-event-03831", "There must be an execution dependency between vkCmdResetEvent2 and the execution of any vkCmdWaitEvents that includes event in its pEvents parameter", "1.3-extensions"},
     {"VUID-vkCmdResetEvent2-event-03832", "There must be an execution dependency between vkCmdResetEvent2 and the execution of any vkCmdWaitEvents2 that includes event in its pEvents parameter", "1.3-extensions"},
     {"VUID-vkCmdResetEvent2-event-parameter", "event must be a valid VkEvent handle", "1.3-extensions"},
-    {"VUID-vkCmdResetEvent2-rayTracingPipeline-07946", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
-    {"VUID-vkCmdResetEvent2-rayTracingPipeline-07947", "If the rayTracingPipeline feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdResetEvent2-renderpass", "This command must only be called outside of a render pass instance", "1.3-extensions"},
     {"VUID-vkCmdResetEvent2-stageMask-03830", "stageMask must not include VK_PIPELINE_STAGE_2_HOST_BIT", "1.3-extensions"},
     {"VUID-vkCmdResetEvent2-stageMask-03929", "If the geometryShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT", "1.3-extensions"},
@@ -14648,6 +14722,8 @@
     {"VUID-vkCmdResetEvent2-stageMask-07316", "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"},
     {"VUID-vkCmdResetEvent2-stageMask-07317", "If the attachmentFragmentShadingRate feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdResetEvent2-stageMask-07945", "If the VK_NV_ray_tracing extension is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV", "default"},
+    {"VUID-vkCmdResetEvent2-stageMask-07946", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
+    {"VUID-vkCmdResetEvent2-stageMask-07947", "If the rayTracingPipeline feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdResetEvent2-stageMask-parameter", "stageMask must be a valid combination of VkPipelineStageFlagBits2 values", "1.3-extensions"},
     {"VUID-vkCmdResetEvent2-synchronization2-03829", "The synchronization2 feature must be enabled", "1.3-extensions"},
     {"VUID-vkCmdResetQueryPool-None-02841", "All queries used by the command must not be active", "1.3-extensions"},
@@ -14735,6 +14811,15 @@
     {"VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
     {"VUID-vkCmdSetAlphaToOneEnableEXT-extendedDynamicState3AlphaToOneEnable-07345", "The extendedDynamicState3AlphaToOneEnable feature must be enabled", "default"},
     {"VUID-vkCmdSetAlphaToOneEnableEXT-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"},
+    {"VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-aspectMask-08863", "aspectMask must only include VK_IMAGE_ASPECT_NONE, VK_IMAGE_ASPECT_COLOR_BIT, VK_IMAGE_ASPECT_DEPTH_BIT, and VK_IMAGE_ASPECT_STENCIL_BIT", "1.3-extensions"},
+    {"VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-aspectMask-parameter", "aspectMask must be a valid combination of VkImageAspectFlagBits values", "1.3-extensions"},
+    {"VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-aspectMask-requiredbitmask", "aspectMask must not be 0", "1.3-extensions"},
+    {"VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-attachmentFeedbackLoopDynamicState-08862", "The attachmentFeedbackLoopDynamicState feature must be enabled", "1.3-extensions"},
+    {"VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-attachmentFeedbackLoopLayout-08864", "If the attachmentFeedbackLoopLayout feature is not enabled, aspectMask must be VK_IMAGE_ASPECT_NONE", "1.3-extensions"},
+    {"VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"},
+    {"VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
+    {"VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
+    {"VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"},
     {"VUID-vkCmdSetBlendConstants-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"},
     {"VUID-vkCmdSetBlendConstants-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdSetBlendConstants-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -14985,8 +15070,6 @@
     {"VUID-vkCmdSetEvent-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
     {"VUID-vkCmdSetEvent-commonparent", "Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice", "1.3-extensions"},
     {"VUID-vkCmdSetEvent-event-parameter", "event must be a valid VkEvent handle", "1.3-extensions"},
-    {"VUID-vkCmdSetEvent-rayTracingPipeline-07949", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
-    {"VUID-vkCmdSetEvent-rayTracingPipeline-07950", "If the rayTracingPipeline feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdSetEvent-renderpass", "This command must only be called outside of a render pass instance", "1.3-extensions"},
     {"VUID-vkCmdSetEvent-stageMask-01149", "stageMask must not include VK_PIPELINE_STAGE_HOST_BIT", "1.3-extensions"},
     {"VUID-vkCmdSetEvent-stageMask-03937", "If the synchronization2 feature is not enabled, pname:stageMask must not be 0", "1.3-extensions"},
@@ -15003,6 +15086,8 @@
     {"VUID-vkCmdSetEvent-stageMask-07318", "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"},
     {"VUID-vkCmdSetEvent-stageMask-07319", "If the attachmentFragmentShadingRate feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdSetEvent-stageMask-07948", "If the VK_NV_ray_tracing extension is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV", "default"},
+    {"VUID-vkCmdSetEvent-stageMask-07949", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
+    {"VUID-vkCmdSetEvent-stageMask-07950", "If the rayTracingPipeline feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdSetEvent-stageMask-parameter", "stageMask must be a valid combination of VkPipelineStageFlagBits values", "1.3-extensions"},
     {"VUID-vkCmdSetEvent2-commandBuffer-03826", "The current device mask of commandBuffer must include exactly one physical device", "1.3-extensions"},
     {"VUID-vkCmdSetEvent2-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations", "1.3-extensions"},
@@ -15397,14 +15482,13 @@
     {"VUID-vkCmdSetViewportWithCount-viewportCount-03394", "viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive", "1.3-extensions"},
     {"VUID-vkCmdSetViewportWithCount-viewportCount-03395", "If the multiViewport feature is not enabled, viewportCount must be 1", "1.3-extensions"},
     {"VUID-vkCmdSetViewportWithCount-viewportCount-arraylength", "viewportCount must be greater than 0", "1.3-extensions"},
-    {"VUID-vkCmdSubpassShadingHUAWEI-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "default"},
-    {"VUID-vkCmdSubpassShadingHUAWEI-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdSubpassShadingHUAWEI-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdSubpassShadingHUAWEI-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdSubpassShadingHUAWEI-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdSubpassShadingHUAWEI-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdSubpassShadingHUAWEI-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdSubpassShadingHUAWEI-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdSubpassShadingHUAWEI-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "default"},
     {"VUID-vkCmdSubpassShadingHUAWEI-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "default"},
     {"VUID-vkCmdSubpassShadingHUAWEI-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "default"},
     {"VUID-vkCmdSubpassShadingHUAWEI-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "default"},
@@ -15415,7 +15499,7 @@
     {"VUID-vkCmdSubpassShadingHUAWEI-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-None-04931", "This command must be called in a subpass with bind point VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI. No draw commands can be called in the same subpass. Only one vkCmdSubpassShadingHUAWEI command can be called in a subpass", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"},
-    {"VUID-vkCmdSubpassShadingHUAWEI-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "default"},
+    {"VUID-vkCmdSubpassShadingHUAWEI-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-None-07288", "Any shader invocation executed by this command must terminate", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-None-07888", "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-None-08114", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
@@ -15423,9 +15507,8 @@
     {"VUID-vkCmdSubpassShadingHUAWEI-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdSubpassShadingHUAWEI-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdSubpassShadingHUAWEI-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdSubpassShadingHUAWEI-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdSubpassShadingHUAWEI-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdSubpassShadingHUAWEI-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -15436,7 +15519,6 @@
     {"VUID-vkCmdSubpassShadingHUAWEI-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdSubpassShadingHUAWEI-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -15455,8 +15537,7 @@
     {"VUID-vkCmdSubpassShadingHUAWEI-SampledType-04472", "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-SampledType-04473", "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-aspectMask-06478", "If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT", "default"},
-    {"VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "default"},
-    {"VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
+    {"VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -15465,8 +15546,8 @@
     {"VUID-vkCmdSubpassShadingHUAWEI-flags-02696", "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric format of the image view's format and the Sampled Type operand of the OpTypeImage must match", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdSubpassShadingHUAWEI-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdSubpassShadingHUAWEI-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdSubpassShadingHUAWEI-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdSubpassShadingHUAWEI-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-renderpass", "This command must only be called inside of a render pass instance", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-sparseImageInt64Atomics-04474", "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", "1.3-extensions"},
@@ -15475,14 +15556,13 @@
     {"VUID-vkCmdSubpassShadingHUAWEI-uniformBuffers-06935", "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-viewType-07752", "If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysIndirect2KHR-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-khr-extensions"},
-    {"VUID-vkCmdTraceRaysIndirect2KHR-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdTraceRaysIndirect2KHR-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdTraceRaysIndirect2KHR-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdTraceRaysIndirect2KHR-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdTraceRaysIndirect2KHR-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
+    {"VUID-vkCmdTraceRaysIndirect2KHR-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdTraceRaysIndirect2KHR-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdTraceRaysIndirect2KHR-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "1.3-khr-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "1.3-khr-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "1.3-khr-extensions"},
@@ -15493,7 +15573,7 @@
     {"VUID-vkCmdTraceRaysIndirect2KHR-None-03429", "Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysIndirect2KHR-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-khr-extensions"},
+    {"VUID-vkCmdTraceRaysIndirect2KHR-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-None-07288", "Any shader invocation executed by this command must terminate", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-None-07888", "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-None-08114", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
@@ -15501,9 +15581,8 @@
     {"VUID-vkCmdTraceRaysIndirect2KHR-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysIndirect2KHR-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysIndirect2KHR-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysIndirect2KHR-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdTraceRaysIndirect2KHR-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdTraceRaysIndirect2KHR-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -15514,7 +15593,6 @@
     {"VUID-vkCmdTraceRaysIndirect2KHR-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysIndirect2KHR-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -15533,9 +15611,8 @@
     {"VUID-vkCmdTraceRaysIndirect2KHR-SampledType-04472", "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-SampledType-04473", "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-aspectMask-06478", "If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT", "default"},
-    {"VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.3-khr-extensions"},
+    {"VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-03635", "commandBuffer must not be a protected command buffer", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support compute operations", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -15548,8 +15625,8 @@
     {"VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03634", "indirectDeviceAddress must be a multiple of 4", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03636", "All device addresses between indirectDeviceAddress and indirectDeviceAddress + sizeof(sname:VkTraceRaysIndirectCommand2KHR) - 1 must be in the buffer device address range of the same buffer", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-maxPipelineRayRecursionDepth-03679", "This command must not cause a shader call instruction to be executed from a shader invocation with a recursion depth greater than the value of maxPipelineRayRecursionDepth used to create the bound ray tracing pipeline", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-rayTracingMotionBlurPipelineTraceRaysIndirect-04951", "If the bound ray tracing pipeline was created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV VkPhysicalDeviceRayTracingMotionBlurFeaturesNV::rayTracingMotionBlurPipelineTraceRaysIndirect feature must be enabled", "1.3-extensions"},
@@ -15561,14 +15638,13 @@
     {"VUID-vkCmdTraceRaysIndirect2KHR-uniformBuffers-06935", "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirect2KHR-viewType-07752", "If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysIndirectKHR-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-khr-extensions"},
-    {"VUID-vkCmdTraceRaysIndirectKHR-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdTraceRaysIndirectKHR-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdTraceRaysIndirectKHR-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdTraceRaysIndirectKHR-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdTraceRaysIndirectKHR-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
+    {"VUID-vkCmdTraceRaysIndirectKHR-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdTraceRaysIndirectKHR-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdTraceRaysIndirectKHR-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "1.3-khr-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "1.3-khr-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "1.3-khr-extensions"},
@@ -15579,7 +15655,7 @@
     {"VUID-vkCmdTraceRaysIndirectKHR-None-03429", "Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysIndirectKHR-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-khr-extensions"},
+    {"VUID-vkCmdTraceRaysIndirectKHR-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-None-07288", "Any shader invocation executed by this command must terminate", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-None-07888", "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-None-08114", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
@@ -15587,9 +15663,8 @@
     {"VUID-vkCmdTraceRaysIndirectKHR-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysIndirectKHR-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysIndirectKHR-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysIndirectKHR-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdTraceRaysIndirectKHR-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdTraceRaysIndirectKHR-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -15600,7 +15675,6 @@
     {"VUID-vkCmdTraceRaysIndirectKHR-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysIndirectKHR-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -15619,9 +15693,8 @@
     {"VUID-vkCmdTraceRaysIndirectKHR-SampledType-04472", "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-SampledType-04473", "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-aspectMask-06478", "If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT", "default"},
-    {"VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.3-khr-extensions"},
+    {"VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-03635", "commandBuffer must not be a protected command buffer", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support compute operations", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -15640,8 +15713,8 @@
     {"VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03634", "indirectDeviceAddress must be a multiple of 4", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03636", "All device addresses between indirectDeviceAddress and indirectDeviceAddress + sizeof(sname:VkTraceRaysIndirectCommandKHR) - 1 must be in the buffer device address range of the same buffer", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysIndirectKHR-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdTraceRaysIndirectKHR-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdTraceRaysIndirectKHR-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdTraceRaysIndirectKHR-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-maxPipelineRayRecursionDepth-03679", "This command must not cause a shader call instruction to be executed from a shader invocation with a recursion depth greater than the value of maxPipelineRayRecursionDepth used to create the bound ray tracing pipeline", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03691", "If the buffer from which pname:pCallableShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"},
@@ -15678,14 +15751,13 @@
     {"VUID-vkCmdTraceRaysIndirectKHR-uniformBuffers-06935", "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-viewType-07752", "If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysKHR-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-khr-extensions"},
-    {"VUID-vkCmdTraceRaysKHR-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdTraceRaysKHR-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdTraceRaysKHR-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdTraceRaysKHR-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdTraceRaysKHR-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
+    {"VUID-vkCmdTraceRaysKHR-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdTraceRaysKHR-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdTraceRaysKHR-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "1.3-khr-extensions"},
     {"VUID-vkCmdTraceRaysKHR-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "1.3-khr-extensions"},
     {"VUID-vkCmdTraceRaysKHR-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "1.3-khr-extensions"},
     {"VUID-vkCmdTraceRaysKHR-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "1.3-khr-extensions"},
@@ -15696,7 +15768,7 @@
     {"VUID-vkCmdTraceRaysKHR-None-03429", "Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysKHR-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-khr-extensions"},
+    {"VUID-vkCmdTraceRaysKHR-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-None-07288", "Any shader invocation executed by this command must terminate", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-None-07888", "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-None-08114", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
@@ -15704,9 +15776,8 @@
     {"VUID-vkCmdTraceRaysKHR-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysKHR-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysKHR-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysKHR-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdTraceRaysKHR-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdTraceRaysKHR-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -15717,7 +15788,6 @@
     {"VUID-vkCmdTraceRaysKHR-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysKHR-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -15736,9 +15806,8 @@
     {"VUID-vkCmdTraceRaysKHR-SampledType-04472", "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-SampledType-04473", "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-aspectMask-06478", "If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT", "default"},
-    {"VUID-vkCmdTraceRaysKHR-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.3-khr-extensions"},
+    {"VUID-vkCmdTraceRaysKHR-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-commandBuffer-03635", "commandBuffer must not be a protected command buffer", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysKHR-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support compute operations", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -15755,8 +15824,8 @@
     {"VUID-vkCmdTraceRaysKHR-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric format of the image view's format and the Sampled Type operand of the OpTypeImage must match", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-height-03639", "height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysKHR-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
-    {"VUID-vkCmdTraceRaysKHR-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdTraceRaysKHR-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "1.3-khr-extensions"},
+    {"VUID-vkCmdTraceRaysKHR-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-maxPipelineRayRecursionDepth-03679", "This command must not cause a shader call instruction to be executed from a shader invocation with a recursion depth greater than the value of maxPipelineRayRecursionDepth used to create the bound ray tracing pipeline", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03691", "If the buffer from which pname:pCallableShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"},
@@ -15793,14 +15862,13 @@
     {"VUID-vkCmdTraceRaysKHR-viewType-07752", "If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-width-03638", "width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysKHR-width-03641", "width {times} height {times} depth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayDispatchInvocationCount", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysNV-ConstOffset-06551", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "default"},
-    {"VUID-vkCmdTraceRaysNV-ConstOffset-08616", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
+    {"VUID-vkCmdTraceRaysNV-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-None-02693", "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "default"},
-    {"VUID-vkCmdTraceRaysNV-None-02697", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdTraceRaysNV-None-02698", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdTraceRaysNV-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdTraceRaysNV-None-02697", "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdTraceRaysNV-None-02698", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdTraceRaysNV-None-02699", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by a bound shader", "default"},
     {"VUID-vkCmdTraceRaysNV-None-02700", "A valid pipeline must be bound to the pipeline bind point used by this command", "default"},
     {"VUID-vkCmdTraceRaysNV-None-02702", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage", "default"},
     {"VUID-vkCmdTraceRaysNV-None-02703", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage", "default"},
@@ -15811,7 +15879,7 @@
     {"VUID-vkCmdTraceRaysNV-None-03429", "Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysNV-None-06550", "If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "default"},
+    {"VUID-vkCmdTraceRaysNV-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-None-07288", "Any shader invocation executed by this command must terminate", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-None-07888", "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-None-08114", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
@@ -15819,9 +15887,8 @@
     {"VUID-vkCmdTraceRaysNV-None-08116", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-None-08117", "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-None-08119", "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysNV-None-08600", "For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysNV-None-08601", "For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysNV-None-08603", "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command", "default"},
+    {"VUID-vkCmdTraceRaysNV-None-08600", "For each set n that is statically used a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout or VkDescriptorSetLayout array that was used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdTraceRaysNV-None-08601", "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-None-08604", "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-None-08605", "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-None-08606", "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", "1.3-extensions"},
@@ -15832,7 +15899,6 @@
     {"VUID-vkCmdTraceRaysNV-None-08611", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-None-08612", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-None-08613", "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysNV-None-08615", "If the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -15857,9 +15923,8 @@
     {"VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02468", "callableShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-04045", "If callableShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-parameter", "If callableShaderBindingTableBuffer is not VK_NULL_HANDLE, callableShaderBindingTableBuffer must be a valid VkBuffer handle", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysNV-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "default"},
+    {"VUID-vkCmdTraceRaysNV-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-commandBuffer-04624", "commandBuffer must not be a protected command buffer", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysNV-commandBuffer-08614", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT object bound to a stage corresponding to the pipeline bind point used by this command must not be a protected resource", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support compute operations", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
@@ -15877,8 +15942,8 @@
     {"VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-04044", "If hitShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-parameter", "If hitShaderBindingTableBuffer is not VK_NULL_HANDLE, hitShaderBindingTableBuffer must be a valid VkBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-magFilter-04553", "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
-    {"VUID-vkCmdTraceRaysNV-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
-    {"VUID-vkCmdTraceRaysNV-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, or by any of the VkShaderEXT objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
+    {"VUID-vkCmdTraceRaysNV-maintenance4-06425", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility", "default"},
+    {"VUID-vkCmdTraceRaysNV-maintenance4-08602", "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout or VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkPipeline or VkShaderEXT, as described in Pipeline Layout Compatibility", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-maxRecursionDepth-03625", "This command must not cause a pipeline trace ray instruction to be executed from a shader invocation with a recursion depth greater than the value of maxRecursionDepth used to create the bound ray tracing pipeline", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-mipmapMode-04770", "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "1.3-extensions"},
     {"VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457", "missShaderBindingOffset must be less than the size of missShaderBindingTableBuffer", "1.3-extensions"},
@@ -15937,6 +16002,8 @@
     {"VUID-vkCmdWaitEvents-dstStageMask-07318", "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"},
     {"VUID-vkCmdWaitEvents-dstStageMask-07319", "If the attachmentFragmentShadingRate feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdWaitEvents-dstStageMask-07948", "If the VK_NV_ray_tracing extension is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV", "default"},
+    {"VUID-vkCmdWaitEvents-dstStageMask-07949", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
+    {"VUID-vkCmdWaitEvents-dstStageMask-07950", "If the rayTracingPipeline feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdWaitEvents-dstStageMask-parameter", "dstStageMask must be a valid combination of VkPipelineStageFlagBits values", "1.3-extensions"},
     {"VUID-vkCmdWaitEvents-eventCount-arraylength", "eventCount must be greater than 0", "1.3-extensions"},
     {"VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02817", "For any element of pBufferMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its srcQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its srcAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types", "1.3-extensions"},
@@ -15948,8 +16015,6 @@
     {"VUID-vkCmdWaitEvents-pImageMemoryBarriers-02820", "For any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types", "1.3-extensions"},
     {"VUID-vkCmdWaitEvents-pImageMemoryBarriers-parameter", "If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier structures", "1.3-extensions"},
     {"VUID-vkCmdWaitEvents-pMemoryBarriers-parameter", "If memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier structures", "1.3-extensions"},
-    {"VUID-vkCmdWaitEvents-rayTracingPipeline-07949", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
-    {"VUID-vkCmdWaitEvents-rayTracingPipeline-07950", "If the rayTracingPipeline feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdWaitEvents-srcAccessMask-02815", "The srcAccessMask member of each element of pMemoryBarriers must only include access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types", "1.3-extensions"},
     {"VUID-vkCmdWaitEvents-srcQueueFamilyIndex-02803", "The srcQueueFamilyIndex and dstQueueFamilyIndex members of any element of pBufferMemoryBarriers or pImageMemoryBarriers must be equal", "1.3-extensions"},
     {"VUID-vkCmdWaitEvents-srcStageMask-01158", "srcStageMask must be the bitwise OR of the stageMask parameter used in previous calls to vkCmdSetEvent with any of the elements of pEvents and VK_PIPELINE_STAGE_HOST_BIT if any of the elements of pEvents was set using vkSetEvent", "1.3-extensions"},
@@ -15968,6 +16033,8 @@
     {"VUID-vkCmdWaitEvents-srcStageMask-07318", "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"},
     {"VUID-vkCmdWaitEvents-srcStageMask-07319", "If the attachmentFragmentShadingRate feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdWaitEvents-srcStageMask-07948", "If the VK_NV_ray_tracing extension is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV", "default"},
+    {"VUID-vkCmdWaitEvents-srcStageMask-07949", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
+    {"VUID-vkCmdWaitEvents-srcStageMask-07950", "If the rayTracingPipeline feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdWaitEvents-srcStageMask-parameter", "srcStageMask must be a valid combination of VkPipelineStageFlagBits values", "1.3-extensions"},
     {"VUID-vkCmdWaitEvents2-commandBuffer-03846", "commandBuffer's current device mask must include exactly one physical device", "1.3-extensions"},
     {"VUID-vkCmdWaitEvents2-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations", "1.3-extensions"},
@@ -16029,8 +16096,6 @@
     {"VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-parameter", "dstBuffer must be a valid VkBuffer handle", "1.3-extensions"},
     {"VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03896", "dstOffset must be less than or equal to the size of dstBuffer minus 4", "1.3-extensions"},
     {"VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03899", "dstOffset must be a multiple of 4", "1.3-extensions"},
-    {"VUID-vkCmdWriteBufferMarker2AMD-rayTracingPipeline-07946", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
-    {"VUID-vkCmdWriteBufferMarker2AMD-rayTracingPipeline-07947", "If the rayTracingPipeline feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "default"},
     {"VUID-vkCmdWriteBufferMarker2AMD-stage-03894", "stage must include only a single pipeline stage", "1.3-extensions"},
     {"VUID-vkCmdWriteBufferMarker2AMD-stage-03895", "stage must include only stages that are valid for the queue family that was used to create the command pool that commandBuffer was allocated from", "1.3-extensions"},
     {"VUID-vkCmdWriteBufferMarker2AMD-stage-03929", "If the geometryShader feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT", "1.3-extensions"},
@@ -16046,6 +16111,8 @@
     {"VUID-vkCmdWriteBufferMarker2AMD-stage-07316", "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"},
     {"VUID-vkCmdWriteBufferMarker2AMD-stage-07317", "If the attachmentFragmentShadingRate feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "default"},
     {"VUID-vkCmdWriteBufferMarker2AMD-stage-07945", "If the VK_NV_ray_tracing extension is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV", "default"},
+    {"VUID-vkCmdWriteBufferMarker2AMD-stage-07946", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
+    {"VUID-vkCmdWriteBufferMarker2AMD-stage-07947", "If the rayTracingPipeline feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "default"},
     {"VUID-vkCmdWriteBufferMarker2AMD-stage-parameter", "stage must be a valid combination of VkPipelineStageFlagBits2 values", "1.3-extensions"},
     {"VUID-vkCmdWriteBufferMarker2AMD-synchronization2-03893", "The synchronization2 feature must be enabled", "1.3-extensions"},
     {"VUID-vkCmdWriteBufferMarker2AMD-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"},
@@ -16131,8 +16198,6 @@
     {"VUID-vkCmdWriteTimestamp2-queryPool-03861", "queryPool must have been created with a queryType of VK_QUERY_TYPE_TIMESTAMP", "1.3-extensions"},
     {"VUID-vkCmdWriteTimestamp2-queryPool-03862", "The query identified by queryPool and query must be unavailable", "1.3-extensions"},
     {"VUID-vkCmdWriteTimestamp2-queryPool-parameter", "queryPool must be a valid VkQueryPool handle", "1.3-extensions"},
-    {"VUID-vkCmdWriteTimestamp2-rayTracingPipeline-07946", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
-    {"VUID-vkCmdWriteTimestamp2-rayTracingPipeline-07947", "If the rayTracingPipeline feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdWriteTimestamp2-stage-03859", "stage must only include a single pipeline stage", "1.3-extensions"},
     {"VUID-vkCmdWriteTimestamp2-stage-03860", "stage must only include stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from", "1.3-extensions"},
     {"VUID-vkCmdWriteTimestamp2-stage-03929", "If the geometryShader feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT", "1.3-extensions"},
@@ -16148,6 +16213,8 @@
     {"VUID-vkCmdWriteTimestamp2-stage-07316", "If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"},
     {"VUID-vkCmdWriteTimestamp2-stage-07317", "If the attachmentFragmentShadingRate feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdWriteTimestamp2-stage-07945", "If the VK_NV_ray_tracing extension is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV", "default"},
+    {"VUID-vkCmdWriteTimestamp2-stage-07946", "If neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-extensions"},
+    {"VUID-vkCmdWriteTimestamp2-stage-07947", "If the rayTracingPipeline feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", "1.3-khr-extensions"},
     {"VUID-vkCmdWriteTimestamp2-stage-parameter", "stage must be a valid combination of VkPipelineStageFlagBits2 values", "1.3-extensions"},
     {"VUID-vkCmdWriteTimestamp2-synchronization2-03858", "The synchronization2 feature must be enabled", "1.3-extensions"},
     {"VUID-vkCmdWriteTimestamp2-timestampValidBits-03863", "The command pool's queue family must support a non-zero timestampValidBits", "1.3-extensions"},
@@ -16483,6 +16550,11 @@
     {"VUID-vkCreateShadersEXT-pCreateInfos-08409", "For each element of pCreateInfos whose flags member includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, if there is any other element of pCreateInfos whose stage is logically later than the stage of the former and whose flags member also includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, the nextStage of the former must be equal to the stage of the element with the logically earliest stage following the stage of the former whose flags member also includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT", "1.3-extensions"},
     {"VUID-vkCreateShadersEXT-pCreateInfos-08410", "The stage member of each element of pCreateInfos whose flags member includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT must be unique", "1.3-extensions"},
     {"VUID-vkCreateShadersEXT-pCreateInfos-08411", "The codeType member of all elements of pCreateInfos whose flags member includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT must be the same", "1.3-extensions"},
+    {"VUID-vkCreateShadersEXT-pCreateInfos-08867", "If pCreateInfos contains elements with both VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, both elements' flags include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, both elements' codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage's pCode contains an OpExecutionMode instruction specifying the type of subdivision, it must match the subdivision type specified in the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage", "1.3-extensions"},
+    {"VUID-vkCreateShadersEXT-pCreateInfos-08868", "If pCreateInfos contains elements with both VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, both elements' flags include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, both elements' codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage's pCode contains an OpExecutionMode instruction specifying the orientation of triangles, it must match the triangle orientation specified in the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage", "1.3-extensions"},
+    {"VUID-vkCreateShadersEXT-pCreateInfos-08869", "If pCreateInfos contains elements with both VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, both elements' flags include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, both elements' codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage's pCode contains an OpExecutionMode instruction specifying PointMode, the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage must also contain an OpExecutionMode instruction specifying PointMode", "1.3-extensions"},
+    {"VUID-vkCreateShadersEXT-pCreateInfos-08870", "If pCreateInfos contains elements with both VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, both elements' flags include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, both elements' codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage's pCode contains an OpExecutionMode instruction specifying the spacing of segments on the edges of tessellated primitives, it must match the segment spacing specified in the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage", "1.3-extensions"},
+    {"VUID-vkCreateShadersEXT-pCreateInfos-08871", "If pCreateInfos contains elements with both VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, both elements' flags include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, both elements' codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage's pCode contains an OpExecutionMode instruction specifying the output patch size, it must match the output patch size specified in the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage", "1.3-extensions"},
     {"VUID-vkCreateShadersEXT-pCreateInfos-parameter", "pCreateInfos must be a valid pointer to an array of createInfoCount valid VkShaderCreateInfoEXT structures", "1.3-extensions"},
     {"VUID-vkCreateShadersEXT-pShaders-parameter", "pShaders must be a valid pointer to an array of createInfoCount VkShaderEXT handles", "1.3-extensions"},
     {"VUID-vkCreateSharedSwapchainsKHR-device-parameter", "device must be a valid VkDevice handle", "1.3-extensions"},
@@ -17106,10 +17178,11 @@
     {"VUID-vkGetImageSubresourceLayout-arrayLayer-01717", "The arrayLayer member of pSubresource must be less than the arrayLayers specified in VkImageCreateInfo when image was created", "1.3-extensions"},
     {"VUID-vkGetImageSubresourceLayout-aspectMask-00997", "The aspectMask member of pSubresource must only have a single bit set", "1.3-extensions"},
     {"VUID-vkGetImageSubresourceLayout-device-parameter", "device must be a valid VkDevice handle", "1.3-extensions"},
-    {"VUID-vkGetImageSubresourceLayout-format-04461", "If format is a color format, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_COLOR_BIT", "1.3-extensions"},
-    {"VUID-vkGetImageSubresourceLayout-format-04462", "If format has a depth component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_DEPTH_BIT", "1.3-extensions"},
-    {"VUID-vkGetImageSubresourceLayout-format-04463", "If format has a stencil component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_STENCIL_BIT", "1.3-extensions"},
-    {"VUID-vkGetImageSubresourceLayout-format-04464", "If format does not contain a stencil or depth component, the aspectMask member of pSubresource must not contain VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT", "1.3-extensions"},
+    {"VUID-vkGetImageSubresourceLayout-format-04462", "If format of the image has a depth component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_DEPTH_BIT", "1.3-extensions"},
+    {"VUID-vkGetImageSubresourceLayout-format-04463", "If format of the image has a stencil component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_STENCIL_BIT", "1.3-extensions"},
+    {"VUID-vkGetImageSubresourceLayout-format-04464", "If format of the image does not contain a stencil or depth component, the aspectMask member of pSubresource must not contain VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT", "1.3-extensions"},
+    {"VUID-vkGetImageSubresourceLayout-format-08886", "If format of the image is a color format, tiling of the image is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, and does not have a multi-planar image format, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_COLOR_BIT", "1.3-extensions"},
+    {"VUID-vkGetImageSubresourceLayout-format-08887", "If format of the image is a color format and tiling of the image is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_COLOR_BIT", "1.0"},
     {"VUID-vkGetImageSubresourceLayout-image-01895", "If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory", "1.3-extensions"},
     {"VUID-vkGetImageSubresourceLayout-image-07789", "image must have been created with tiling equal to VK_IMAGE_TILING_LINEAR", "1.3-khr-extensions"},
     {"VUID-vkGetImageSubresourceLayout-image-07790", "image must have been created with tiling equal to VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT", "1.3-extensions"},
@@ -17123,10 +17196,11 @@
     {"VUID-vkGetImageSubresourceLayout2EXT-arrayLayer-01717", "The arrayLayer member of pSubresource must be less than the arrayLayers specified in VkImageCreateInfo when image was created", "1.3-extensions"},
     {"VUID-vkGetImageSubresourceLayout2EXT-aspectMask-00997", "The aspectMask member of pSubresource must only have a single bit set", "1.3-extensions"},
     {"VUID-vkGetImageSubresourceLayout2EXT-device-parameter", "device must be a valid VkDevice handle", "1.3-extensions"},
-    {"VUID-vkGetImageSubresourceLayout2EXT-format-04461", "If format is a color format, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_COLOR_BIT", "1.3-extensions"},
-    {"VUID-vkGetImageSubresourceLayout2EXT-format-04462", "If format has a depth component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_DEPTH_BIT", "1.3-extensions"},
-    {"VUID-vkGetImageSubresourceLayout2EXT-format-04463", "If format has a stencil component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_STENCIL_BIT", "1.3-extensions"},
-    {"VUID-vkGetImageSubresourceLayout2EXT-format-04464", "If format does not contain a stencil or depth component, the aspectMask member of pSubresource must not contain VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT", "1.3-extensions"},
+    {"VUID-vkGetImageSubresourceLayout2EXT-format-04462", "If format of the image has a depth component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_DEPTH_BIT", "1.3-extensions"},
+    {"VUID-vkGetImageSubresourceLayout2EXT-format-04463", "If format of the image has a stencil component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_STENCIL_BIT", "1.3-extensions"},
+    {"VUID-vkGetImageSubresourceLayout2EXT-format-04464", "If format of the image does not contain a stencil or depth component, the aspectMask member of pSubresource must not contain VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT", "1.3-extensions"},
+    {"VUID-vkGetImageSubresourceLayout2EXT-format-08886", "If format of the image is a color format, tiling of the image is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, and does not have a multi-planar image format, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_COLOR_BIT", "1.3-extensions"},
+    {"VUID-vkGetImageSubresourceLayout2EXT-format-08887", "If format of the image is a color format and tiling of the image is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_COLOR_BIT", "default"},
     {"VUID-vkGetImageSubresourceLayout2EXT-image-01895", "If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory", "1.3-extensions"},
     {"VUID-vkGetImageSubresourceLayout2EXT-image-parameter", "image must be a valid VkImage handle", "1.3-extensions"},
     {"VUID-vkGetImageSubresourceLayout2EXT-image-parent", "image must have been created, allocated, or retrieved from device", "1.3-extensions"},
@@ -17541,6 +17615,7 @@
     {"VUID-vkGetSemaphoreZirconHandleFUCHSIA-pGetZirconHandleInfo-parameter", "pGetZirconHandleInfo must be a valid pointer to a valid VkSemaphoreGetZirconHandleInfoFUCHSIA structure", "1.3-extensions"},
     {"VUID-vkGetSemaphoreZirconHandleFUCHSIA-pZirconHandle-parameter", "pZirconHandle must be a valid pointer to a zx_handle_t value", "1.3-extensions"},
     {"VUID-vkGetShaderBinaryDataEXT-None-08461", "The shaderObject feature must be enabled", "1.3-extensions"},
+    {"VUID-vkGetShaderBinaryDataEXT-None-08499", "If pData is not NULL, it must be aligned to 16 bytes", "1.3-extensions"},
     {"VUID-vkGetShaderBinaryDataEXT-device-parameter", "device must be a valid VkDevice handle", "1.3-extensions"},
     {"VUID-vkGetShaderBinaryDataEXT-pData-parameter", "If the value referenced by pDataSize is not 0, and pData is not NULL, pData must be a valid pointer to an array of pDataSize bytes", "1.3-extensions"},
     {"VUID-vkGetShaderBinaryDataEXT-pDataSize-parameter", "pDataSize must be a valid pointer to a size_t value", "1.3-extensions"},
diff --git a/layers/state_tracker/pipeline_state.cpp b/layers/state_tracker/pipeline_state.cpp
index e082f2f..11ee157 100644
--- a/layers/state_tracker/pipeline_state.cpp
+++ b/layers/state_tracker/pipeline_state.cpp
@@ -337,6 +337,14 @@
                     break;
                 }
 
+                // VkRenderPass and subpass parameter
+                case VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT: {
+                    if (has_pre_raster_state || has_fragment_shader_state || has_fragment_output_state) {
+                        flags.set(ConvertToCBDynamicState(vk_dynamic_state));
+                    }
+                    break;
+                }
+
                 // not valid and shouldn't see
                 case VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR:
                 case VK_DYNAMIC_STATE_MAX_ENUM:
diff --git a/scripts/known_good.json b/scripts/known_good.json
index f63fe65..2ada61c 100755
--- a/scripts/known_good.json
+++ b/scripts/known_good.json
@@ -17,7 +17,7 @@
             "sub_dir": "Vulkan-Headers",
             "build_dir": "Vulkan-Headers/build",
             "install_dir": "Vulkan-Headers/build/install",
-            "commit": "v1.3.249"
+            "commit": "v1.3.250"
         },
         {
             "name": "SPIRV-Headers",
diff --git a/tests/layers/VkLayer_device_profile_api.json.in b/tests/layers/VkLayer_device_profile_api.json.in
index eb7def0..df8f0a3 100644
--- a/tests/layers/VkLayer_device_profile_api.json.in
+++ b/tests/layers/VkLayer_device_profile_api.json.in
@@ -4,7 +4,7 @@
         "name": "VK_LAYER_LUNARG_device_profile_api",
         "type": "GLOBAL",
         "library_path": "@JSON_LIBRARY_PATH@",
-        "api_version": "1.3.249",
+        "api_version": "1.3.250",
         "implementation_version": "2",
         "description": "LunarG Device Profile Api Layer",
         "device_extensions": [