build: Update to header 1.2.198

- Update known-good
- Generate source
diff --git a/build-android/known_good.json b/build-android/known_good.json
index c16a848..11f32ec 100755
--- a/build-android/known_good.json
+++ b/build-android/known_good.json
@@ -16,13 +16,13 @@
       "name" : "Vulkan-Headers",
       "url" : "https://github.com/KhronosGroup/Vulkan-Headers.git",
       "sub_dir" : "Vulkan-Headers",
-      "commit" : "v1.2.197"
+      "commit" : "v1.2.198"
     },
     {
       "name" : "Vulkan-Tools",
       "url" : "https://github.com/KhronosGroup/Vulkan-Tools.git",
       "sub_dir" : "Vulkan-Tools",
-      "commit" : "v1.2.197"
+      "commit" : "v1.2.198"
     },
     {
       "name" : "SPIRV-Tools",
diff --git a/layers/generated/parameter_validation.cpp b/layers/generated/parameter_validation.cpp
index 9248dbb..23f5805 100644
--- a/layers/generated/parameter_validation.cpp
+++ b/layers/generated/parameter_validation.cpp
@@ -27,7 +27,7 @@
 
 #include "stateless_validation.h"
 
-const uint32_t GeneratedVulkanHeaderVersion = 197;
+const uint32_t GeneratedVulkanHeaderVersion = 198;
 
 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_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_SHADING_RATE_IMAGE_READ_BIT_NV|VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV|VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV|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|VK_ACCESS_NONE_KHR;
 const VkAttachmentDescriptionFlags AllVkAttachmentDescriptionFlagBits = VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT;
diff --git a/layers/generated/vk_validation_error_messages.h b/layers/generated/vk_validation_error_messages.h
index b78ae83..920776e 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.2.197 */
+/* Vulkan specification version: 1.2.198 */
 /*
  * Vulkan
  *
@@ -414,7 +414,7 @@
     {"VUID-StandaloneSpirv-Location-04915", "The Location or Component decorations must not be used with BuiltIn", "1.2-extensions"},
     {"VUID-StandaloneSpirv-Location-04916", "The Location decorations must be used on user-defined variables", "1.2-extensions"},
     {"VUID-StandaloneSpirv-Location-04917", "The Location decorations must be used on an OpVariable with a structure type that is not a block", "1.2-extensions"},
-    {"VUID-StandaloneSpirv-Location-04918", "The Location decorations must not be used on the members of OpVariable with a structure type that is a block decorated with Location", "1.2-extensions"},
+    {"VUID-StandaloneSpirv-Location-04918", "The Location decorations must not be used on the members of OpVariable with a structure type that is decorated with Location", "1.2-extensions"},
     {"VUID-StandaloneSpirv-Location-04919", "The Location decorations must be used on each member of OpVariable with a structure type that is a block not decorated with Location", "1.2-extensions"},
     {"VUID-StandaloneSpirv-None-04633", "Every entry point must have no return value and accept no arguments", "1.2-extensions"},
     {"VUID-StandaloneSpirv-None-04634", "The static function-call graph for an entry point must not contain cycles; that is, static recursion is not allowed", "1.2-extensions"},
@@ -1822,6 +1822,7 @@
     {"VUID-VkDeviceMemoryReportCallbackDataEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT", "1.2-extensions"},
     {"VUID-VkDevicePrivateDataCreateInfoEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT", "1.2-extensions"},
     {"VUID-VkDeviceQueueCreateInfo-flags-02861", "If the protected memory feature is not enabled, the VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT bit of flags must not be set", "1.2-extensions"},
+    {"VUID-VkDeviceQueueCreateInfo-flags-06449", "If flags includes VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT, queueFamilyIndex must be the index of a queue family that includes the VK_QUEUE_PROTECTED_BIT capability", "1.2-extensions"},
     {"VUID-VkDeviceQueueCreateInfo-flags-parameter", "flags must be a valid combination of VkDeviceQueueCreateFlagBits values", "1.2-extensions"},
     {"VUID-VkDeviceQueueCreateInfo-pNext-pNext", "pNext must be NULL or a pointer to a valid instance of VkDeviceQueueGlobalPriorityCreateInfoEXT", "1.2-extensions"},
     {"VUID-VkDeviceQueueCreateInfo-pQueuePriorities-00383", "Each element of pQueuePriorities must be between 0.0 and 1.0 inclusive", "1.2-extensions"},
@@ -2971,8 +2972,8 @@
     {"VUID-VkMemoryAllocateInfo-None-04749", "If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA, the value of memoryTypeIndex must be an index identifying a memory type from the memoryTypeBits field of the VkMemoryZirconHandlePropertiesFUCHSIA structure populated by a call to vkGetMemoryZirconHandlePropertiesFUCHSIA", "1.2-extensions"},
     {"VUID-VkMemoryAllocateInfo-allocationSize-00638", "allocationSize must be greater than 0", "1.2-khr-extensions"},
     {"VUID-VkMemoryAllocateInfo-allocationSize-00647", "If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, allocationSize must match the size specified when creating the Direct3D 12 heap from which the payload was extracted", "1.2-extensions"},
-    {"VUID-VkMemoryAllocateInfo-allocationSize-01742", "If the parameters define an import operation, the external handle specified was created by the Vulkan API, and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR, then the values of allocationSize and memoryTypeIndex must match those specified when the payload being imported was created", "1.2-extensions"},
-    {"VUID-VkMemoryAllocateInfo-allocationSize-01743", "If the parameters define an import operation, the external handle was created by the Vulkan API, and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR or VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR, then the values of allocationSize and memoryTypeIndex must match those specified when the payload being imported was created", "1.2-extensions"},
+    {"VUID-VkMemoryAllocateInfo-allocationSize-01742", "If the parameters define an import operation, the external handle specified was created by the Vulkan API, and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, then the values of allocationSize and memoryTypeIndex must match those specified when the payload being imported was created", "1.2-extensions"},
+    {"VUID-VkMemoryAllocateInfo-allocationSize-01743", "If the parameters define an import operation, the external handle was created by the Vulkan API, and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, then the values of allocationSize and memoryTypeIndex must match those specified when the payload being imported was created", "1.2-extensions"},
     {"VUID-VkMemoryAllocateInfo-allocationSize-01745", "If the parameters define an import operation and the external handle is a host pointer, allocationSize must be an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment", "1.2-extensions"},
     {"VUID-VkMemoryAllocateInfo-allocationSize-02383", "If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, allocationSize must be the size returned by vkGetAndroidHardwareBufferPropertiesANDROID for the Android hardware buffer", "1.2-extensions"},
     {"VUID-VkMemoryAllocateInfo-allocationSize-04750", "If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA, the value of allocationSize must be greater than 0 and must be less than or equal to the size of the VMO as determined by zx_vmo_get_size(handle) where handle is the VMO handle to the imported external memory", "1.2-extensions"},
@@ -3806,7 +3807,6 @@
     {"VUID-VkPrivateDataSlotCreateInfoEXT-flags-zerobitmask", "flags must be 0", "1.2-extensions"},
     {"VUID-VkPrivateDataSlotCreateInfoEXT-pNext-pNext", "pNext must be NULL", "1.2-extensions"},
     {"VUID-VkPrivateDataSlotCreateInfoEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT", "1.2-extensions"},
-    {"VUID-VkProtectedSubmitInfo-protectedSubmit-01816", "If the protected memory feature is not enabled, protectedSubmit must not be VK_TRUE", "1.2-extensions"},
     {"VUID-VkProtectedSubmitInfo-sType-sType", "sType must be VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO", "1.2-extensions"},
     {"VUID-VkPushConstantRange-offset-00294", "offset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize", "1.2-extensions"},
     {"VUID-VkPushConstantRange-offset-00295", "offset must be a multiple of 4", "1.2-extensions"},
@@ -4485,7 +4485,6 @@
     {"VUID-VkSubmitInfo2KHR-commandBuffer-06011", "If any commandBuffer member of an element of pCommandBufferInfos contains any suspended render pass instances, there must be no action or synchronization commands between that render pass instance and the render pass instance that resumes it", "1.2-extensions"},
     {"VUID-VkSubmitInfo2KHR-commandBuffer-06012", "If any commandBuffer member of an element of pCommandBufferInfos contains any suspended render pass instances, there must be no render pass instances between that render pass instance and the render pass instance that resumes it", "1.2-extensions"},
     {"VUID-VkSubmitInfo2KHR-commandBuffer-06192", "If any commandBuffer member of an element of pCommandBufferInfos contains any resumed render pass instances, they must be suspended by a render pass instance earlier in submission order within pCommandBufferInfos", "1.2-extensions"},
-    {"VUID-VkSubmitInfo2KHR-flags-03885", "If the protected memory feature is not enabled, flags must not include VK_SUBMIT_PROTECTED_BIT_KHR", "1.2-extensions"},
     {"VUID-VkSubmitInfo2KHR-flags-03886", "If flags includes VK_SUBMIT_PROTECTED_BIT_KHR, all elements of pCommandBuffers must be protected command buffers", "1.2-extensions"},
     {"VUID-VkSubmitInfo2KHR-flags-03887", "If flags does not include VK_SUBMIT_PROTECTED_BIT_KHR, each element of pCommandBuffers must not be a protected command buffer", "1.2-extensions"},
     {"VUID-VkSubmitInfo2KHR-flags-parameter", "flags must be a valid combination of VkSubmitFlagBitsKHR values", "1.2-extensions"},
@@ -5615,9 +5614,9 @@
     {"VUID-vkCmdBindVertexBuffers2EXT-pStrides-parameter", "If pStrides is not NULL, pStrides must be a valid pointer to an array of bindingCount VkDeviceSize values", "1.2-extensions"},
     {"VUID-vkCmdBlitImage-aspectMask-00241", "For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage", "1.2-extensions"},
     {"VUID-vkCmdBlitImage-aspectMask-00242", "For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage", "1.2-extensions"},
-    {"VUID-vkCmdBlitImage-commandBuffer-01834", "If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image", "1.2-extensions"},
-    {"VUID-vkCmdBlitImage-commandBuffer-01835", "If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image", "1.2-extensions"},
-    {"VUID-vkCmdBlitImage-commandBuffer-01836", "If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image", "1.2-extensions"},
+    {"VUID-vkCmdBlitImage-commandBuffer-01834", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image", "1.2-extensions"},
+    {"VUID-vkCmdBlitImage-commandBuffer-01835", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image", "1.2-extensions"},
+    {"VUID-vkCmdBlitImage-commandBuffer-01836", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image", "1.2-extensions"},
     {"VUID-vkCmdBlitImage-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.2-extensions"},
     {"VUID-vkCmdBlitImage-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdBlitImage-commandBuffer-recording", "commandBuffer must be in the recording state", "1.2-extensions"},
@@ -5672,9 +5671,9 @@
     {"VUID-vkCmdBlitImage-srcOffset-00246", "For each element of pRegions, srcOffsets[0].z and srcOffsets[1].z must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage", "1.2-extensions"},
     {"VUID-vkCmdBlitImage-srcSubresource-01705", "The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created", "1.2-extensions"},
     {"VUID-vkCmdBlitImage-srcSubresource-01707", "The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created", "1.2-extensions"},
-    {"VUID-vkCmdBlitImage2KHR-commandBuffer-01834", "If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image", "1.2-extensions"},
-    {"VUID-vkCmdBlitImage2KHR-commandBuffer-01835", "If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image", "1.2-extensions"},
-    {"VUID-vkCmdBlitImage2KHR-commandBuffer-01836", "If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image", "1.2-extensions"},
+    {"VUID-vkCmdBlitImage2KHR-commandBuffer-01834", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image", "1.2-extensions"},
+    {"VUID-vkCmdBlitImage2KHR-commandBuffer-01835", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image", "1.2-extensions"},
+    {"VUID-vkCmdBlitImage2KHR-commandBuffer-01836", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image", "1.2-extensions"},
     {"VUID-vkCmdBlitImage2KHR-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.2-extensions"},
     {"VUID-vkCmdBlitImage2KHR-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdBlitImage2KHR-commandBuffer-recording", "commandBuffer must be in the recording state", "1.2-extensions"},
@@ -5857,8 +5856,8 @@
     {"VUID-vkCmdClearAttachments-aspectMask-02503", "If the aspectMask member of any element of pAttachments contains VK_IMAGE_ASPECT_STENCIL_BIT, then the current subpass' depth/stencil attachment must either be VK_ATTACHMENT_UNUSED, or must have a stencil component", "1.2-extensions"},
     {"VUID-vkCmdClearAttachments-attachmentCount-arraylength", "attachmentCount must be greater than 0", "1.2-extensions"},
     {"VUID-vkCmdClearAttachments-baseArrayLayer-00018", "If the render pass instance this is recorded in uses multiview, then baseArrayLayer must be zero and layerCount must be one", "1.2-extensions"},
-    {"VUID-vkCmdClearAttachments-commandBuffer-02504", "If commandBuffer is an unprotected command buffer, then each attachment to be cleared must not be a protected image", "1.2-extensions"},
-    {"VUID-vkCmdClearAttachments-commandBuffer-02505", "If commandBuffer is a protected command buffer, then each attachment to be cleared must not be an unprotected image", "1.2-extensions"},
+    {"VUID-vkCmdClearAttachments-commandBuffer-02504", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, each attachment to be cleared must not be a protected image", "1.2-extensions"},
+    {"VUID-vkCmdClearAttachments-commandBuffer-02505", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, each attachment to be cleared must not be an unprotected image", "1.2-extensions"},
     {"VUID-vkCmdClearAttachments-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.2-extensions"},
     {"VUID-vkCmdClearAttachments-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdClearAttachments-commandBuffer-recording", "commandBuffer must be in the recording state", "1.2-extensions"},
@@ -5874,8 +5873,8 @@
     {"VUID-vkCmdClearColorImage-aspectMask-02498", "The VkImageSubresourceRange::aspectMask members of the elements of the pRanges array must each only include VK_IMAGE_ASPECT_COLOR_BIT", "1.2-extensions"},
     {"VUID-vkCmdClearColorImage-baseArrayLayer-01472", "The VkImageSubresourceRange::baseArrayLayer members of the elements of the pRanges array must each be less than the arrayLayers specified in VkImageCreateInfo when image was created", "1.2-extensions"},
     {"VUID-vkCmdClearColorImage-baseMipLevel-01470", "The VkImageSubresourceRange::baseMipLevel members of the elements of the pRanges array must each be less than the mipLevels specified in VkImageCreateInfo when image was created", "1.2-extensions"},
-    {"VUID-vkCmdClearColorImage-commandBuffer-01805", "If commandBuffer is an unprotected command buffer, then image must not be a protected image", "1.2-extensions"},
-    {"VUID-vkCmdClearColorImage-commandBuffer-01806", "If commandBuffer is a protected command buffer, then image must not be an unprotected image", "1.2-extensions"},
+    {"VUID-vkCmdClearColorImage-commandBuffer-01805", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, image must not be a protected image", "1.2-extensions"},
+    {"VUID-vkCmdClearColorImage-commandBuffer-01806", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, must not be an unprotected image", "1.2-extensions"},
     {"VUID-vkCmdClearColorImage-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", "1.2-extensions"},
     {"VUID-vkCmdClearColorImage-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdClearColorImage-commandBuffer-recording", "commandBuffer must be in the recording state", "1.2-extensions"},
@@ -5899,8 +5898,8 @@
     {"VUID-vkCmdClearDepthStencilImage-aspectMask-02824", "The VkImageSubresourceRange::aspectMask member of each element of the pRanges array must not include bits other than VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT", "1.2-extensions"},
     {"VUID-vkCmdClearDepthStencilImage-baseArrayLayer-01476", "The VkImageSubresourceRange::baseArrayLayer members of the elements of the pRanges array must each be less than the arrayLayers specified in VkImageCreateInfo when image was created", "1.2-extensions"},
     {"VUID-vkCmdClearDepthStencilImage-baseMipLevel-01474", "The VkImageSubresourceRange::baseMipLevel members of the elements of the pRanges array must each be less than the mipLevels specified in VkImageCreateInfo when image was created", "1.2-extensions"},
-    {"VUID-vkCmdClearDepthStencilImage-commandBuffer-01807", "If commandBuffer is an unprotected command buffer, then image must not be a protected image", "1.2-extensions"},
-    {"VUID-vkCmdClearDepthStencilImage-commandBuffer-01808", "If commandBuffer is a protected command buffer, then image must not be an unprotected image", "1.2-extensions"},
+    {"VUID-vkCmdClearDepthStencilImage-commandBuffer-01807", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, image must not be a protected image", "1.2-extensions"},
+    {"VUID-vkCmdClearDepthStencilImage-commandBuffer-01808", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, image must not be an unprotected image", "1.2-extensions"},
     {"VUID-vkCmdClearDepthStencilImage-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.2-extensions"},
     {"VUID-vkCmdClearDepthStencilImage-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdClearDepthStencilImage-commandBuffer-recording", "commandBuffer must be in the recording state", "1.2-extensions"},
@@ -5959,9 +5958,9 @@
     {"VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03741", "If the buffer pointed to by pInfo->dst.deviceAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", "1.2-extensions"},
     {"VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-parameter", "pInfo must be a valid pointer to a valid VkCopyAccelerationStructureToMemoryInfoKHR structure", "1.2-extensions"},
     {"VUID-vkCmdCopyAccelerationStructureToMemoryKHR-renderpass", "This command must only be called outside of a render pass instance", "1.2-extensions"},
-    {"VUID-vkCmdCopyBuffer-commandBuffer-01822", "If commandBuffer is an unprotected command buffer, then srcBuffer must not be a protected buffer", "1.2-extensions"},
-    {"VUID-vkCmdCopyBuffer-commandBuffer-01823", "If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer", "1.2-extensions"},
-    {"VUID-vkCmdCopyBuffer-commandBuffer-01824", "If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer", "1.2-extensions"},
+    {"VUID-vkCmdCopyBuffer-commandBuffer-01822", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer", "1.2-extensions"},
+    {"VUID-vkCmdCopyBuffer-commandBuffer-01823", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer", "1.2-extensions"},
+    {"VUID-vkCmdCopyBuffer-commandBuffer-01824", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer", "1.2-extensions"},
     {"VUID-vkCmdCopyBuffer-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", "1.2-extensions"},
     {"VUID-vkCmdCopyBuffer-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdCopyBuffer-commandBuffer-recording", "commandBuffer must be in the recording state", "1.2-extensions"},
@@ -5980,9 +5979,9 @@
     {"VUID-vkCmdCopyBuffer-srcBuffer-00119", "If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", "1.2-extensions"},
     {"VUID-vkCmdCopyBuffer-srcBuffer-parameter", "srcBuffer must be a valid VkBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdCopyBuffer-srcOffset-00113", "The srcOffset member of each element of pRegions must be less than the size of srcBuffer", "1.2-extensions"},
-    {"VUID-vkCmdCopyBuffer2KHR-commandBuffer-01822", "If commandBuffer is an unprotected command buffer, then srcBuffer must not be a protected buffer", "1.2-extensions"},
-    {"VUID-vkCmdCopyBuffer2KHR-commandBuffer-01823", "If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer", "1.2-extensions"},
-    {"VUID-vkCmdCopyBuffer2KHR-commandBuffer-01824", "If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer", "1.2-extensions"},
+    {"VUID-vkCmdCopyBuffer2KHR-commandBuffer-01822", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer", "1.2-extensions"},
+    {"VUID-vkCmdCopyBuffer2KHR-commandBuffer-01823", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer", "1.2-extensions"},
+    {"VUID-vkCmdCopyBuffer2KHR-commandBuffer-01824", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer", "1.2-extensions"},
     {"VUID-vkCmdCopyBuffer2KHR-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", "1.2-extensions"},
     {"VUID-vkCmdCopyBuffer2KHR-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdCopyBuffer2KHR-commandBuffer-recording", "commandBuffer must be in the recording state", "1.2-extensions"},
@@ -5998,9 +5997,9 @@
     {"VUID-vkCmdCopyBufferToImage-bufferOffset-01558", "If {imageparam} does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the format's texel block size", "1.2-extensions"},
     {"VUID-vkCmdCopyBufferToImage-bufferOffset-01559", "If {imageparam} has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible formats of planes of multi-planar formats", "1.2-extensions"},
     {"VUID-vkCmdCopyBufferToImage-bufferRowLength-00203", "If {imageparam} is a blocked image, for each element of pRegions, bufferRowLength must be a multiple of the compressed texel block width", "1.2-extensions"},
-    {"VUID-vkCmdCopyBufferToImage-commandBuffer-01828", "If commandBuffer is an unprotected command buffer, then srcBuffer must not be a protected buffer", "1.2-extensions"},
-    {"VUID-vkCmdCopyBufferToImage-commandBuffer-01829", "If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image", "1.2-extensions"},
-    {"VUID-vkCmdCopyBufferToImage-commandBuffer-01830", "If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image", "1.2-extensions"},
+    {"VUID-vkCmdCopyBufferToImage-commandBuffer-01828", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer", "1.2-extensions"},
+    {"VUID-vkCmdCopyBufferToImage-commandBuffer-01829", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image", "1.2-extensions"},
+    {"VUID-vkCmdCopyBufferToImage-commandBuffer-01830", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image", "1.2-extensions"},
     {"VUID-vkCmdCopyBufferToImage-commandBuffer-04052", "If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pRegions must be a multiple of 4", "1.2-extensions"},
     {"VUID-vkCmdCopyBufferToImage-commandBuffer-04477", "If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT, for each element of pRegions, the aspectMask member of imageSubresource must not be VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT", "1.2-extensions"},
     {"VUID-vkCmdCopyBufferToImage-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", "1.2-extensions"},
@@ -6041,9 +6040,9 @@
     {"VUID-vkCmdCopyBufferToImage-srcImage-00199", "If {imageparam} is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1", "1.2-extensions"},
     {"VUID-vkCmdCopyBufferToImage-srcImage-00201", "If {imageparam} is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1", "1.2-extensions"},
     {"VUID-vkCmdCopyBufferToImage-srcImage-04053", "If {imageparam} has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4", "1.2-extensions"},
-    {"VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-01828", "If commandBuffer is an unprotected command buffer, then srcBuffer must not be a protected buffer", "1.2-extensions"},
-    {"VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-01829", "If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image", "1.2-extensions"},
-    {"VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-01830", "If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image", "1.2-extensions"},
+    {"VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-01828", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer", "1.2-extensions"},
+    {"VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-01829", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image", "1.2-extensions"},
+    {"VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-01830", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image", "1.2-extensions"},
     {"VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", "1.2-extensions"},
     {"VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-recording", "commandBuffer must be in the recording state", "1.2-extensions"},
@@ -6052,9 +6051,9 @@
     {"VUID-vkCmdCopyImage-None-01549", "In a copy to or from a plane of a multi-planar image, the VkFormat of the image and plane must be compatible according to the description of compatible planes for the plane being copied", "1.2-extensions"},
     {"VUID-vkCmdCopyImage-aspectMask-00142", "For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage", "1.2-extensions"},
     {"VUID-vkCmdCopyImage-aspectMask-00143", "For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage", "1.2-extensions"},
-    {"VUID-vkCmdCopyImage-commandBuffer-01825", "If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image", "1.2-extensions"},
-    {"VUID-vkCmdCopyImage-commandBuffer-01826", "If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image", "1.2-extensions"},
-    {"VUID-vkCmdCopyImage-commandBuffer-01827", "If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image", "1.2-extensions"},
+    {"VUID-vkCmdCopyImage-commandBuffer-01825", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image", "1.2-extensions"},
+    {"VUID-vkCmdCopyImage-commandBuffer-01826", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image", "1.2-extensions"},
+    {"VUID-vkCmdCopyImage-commandBuffer-01827", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image", "1.2-extensions"},
     {"VUID-vkCmdCopyImage-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", "1.2-extensions"},
     {"VUID-vkCmdCopyImage-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdCopyImage-commandBuffer-recording", "commandBuffer must be in the recording state", "1.2-extensions"},
@@ -6125,9 +6124,9 @@
     {"VUID-vkCmdCopyImage-srcOffset-01783", "The srcOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties", "1.2-extensions"},
     {"VUID-vkCmdCopyImage-srcSubresource-01696", "The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created", "1.2-extensions"},
     {"VUID-vkCmdCopyImage-srcSubresource-01698", "The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created", "1.2-extensions"},
-    {"VUID-vkCmdCopyImage2KHR-commandBuffer-01825", "If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image", "1.2-extensions"},
-    {"VUID-vkCmdCopyImage2KHR-commandBuffer-01826", "If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image", "1.2-extensions"},
-    {"VUID-vkCmdCopyImage2KHR-commandBuffer-01827", "If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image", "1.2-extensions"},
+    {"VUID-vkCmdCopyImage2KHR-commandBuffer-01825", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image", "1.2-extensions"},
+    {"VUID-vkCmdCopyImage2KHR-commandBuffer-01826", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image", "1.2-extensions"},
+    {"VUID-vkCmdCopyImage2KHR-commandBuffer-01827", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image", "1.2-extensions"},
     {"VUID-vkCmdCopyImage2KHR-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", "1.2-extensions"},
     {"VUID-vkCmdCopyImage2KHR-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdCopyImage2KHR-commandBuffer-recording", "commandBuffer must be in the recording state", "1.2-extensions"},
@@ -6142,9 +6141,9 @@
     {"VUID-vkCmdCopyImageToBuffer-bufferOffset-01558", "If {imageparam} does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the format's texel block size", "1.2-extensions"},
     {"VUID-vkCmdCopyImageToBuffer-bufferOffset-01559", "If {imageparam} has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible formats of planes of multi-planar formats", "1.2-extensions"},
     {"VUID-vkCmdCopyImageToBuffer-bufferRowLength-00203", "If {imageparam} is a blocked image, for each element of pRegions, bufferRowLength must be a multiple of the compressed texel block width", "1.2-extensions"},
-    {"VUID-vkCmdCopyImageToBuffer-commandBuffer-01831", "If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image", "1.2-extensions"},
-    {"VUID-vkCmdCopyImageToBuffer-commandBuffer-01832", "If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer", "1.2-extensions"},
-    {"VUID-vkCmdCopyImageToBuffer-commandBuffer-01833", "If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer", "1.2-extensions"},
+    {"VUID-vkCmdCopyImageToBuffer-commandBuffer-01831", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image", "1.2-extensions"},
+    {"VUID-vkCmdCopyImageToBuffer-commandBuffer-01832", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer", "1.2-extensions"},
+    {"VUID-vkCmdCopyImageToBuffer-commandBuffer-01833", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer", "1.2-extensions"},
     {"VUID-vkCmdCopyImageToBuffer-commandBuffer-04052", "If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pRegions must be a multiple of 4", "1.2-extensions"},
     {"VUID-vkCmdCopyImageToBuffer-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", "1.2-extensions"},
     {"VUID-vkCmdCopyImageToBuffer-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
@@ -6184,9 +6183,9 @@
     {"VUID-vkCmdCopyImageToBuffer-srcImageLayout-00190", "srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL", "1.2"},
     {"VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397", "srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR", "1.2-extensions"},
     {"VUID-vkCmdCopyImageToBuffer-srcImageLayout-parameter", "srcImageLayout must be a valid VkImageLayout value", "1.2-extensions"},
-    {"VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-01831", "If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image", "1.2-extensions"},
-    {"VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-01832", "If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer", "1.2-extensions"},
-    {"VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-01833", "If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer", "1.2-extensions"},
+    {"VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-01831", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image", "1.2-extensions"},
+    {"VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-01832", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer", "1.2-extensions"},
+    {"VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-01833", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer", "1.2-extensions"},
     {"VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", "1.2-extensions"},
     {"VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-recording", "commandBuffer must be in the recording state", "1.2-extensions"},
@@ -6264,9 +6263,9 @@
     {"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.2-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.2-extensions"},
     {"VUID-vkCmdDispatch-commandBuffer-02701", "If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic", "1.2-extensions"},
-    {"VUID-vkCmdDispatch-commandBuffer-02707", "If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.2-extensions"},
-    {"VUID-vkCmdDispatch-commandBuffer-02712", "If commandBuffer is a protected command buffer, 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.2-extensions"},
-    {"VUID-vkCmdDispatch-commandBuffer-02713", "If commandBuffer is a protected command buffer, 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.2-extensions"},
+    {"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.2-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.2-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.2-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.2-extensions"},
     {"VUID-vkCmdDispatch-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support compute operations", "1.2-extensions"},
     {"VUID-vkCmdDispatch-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
@@ -6309,9 +6308,9 @@
     {"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.2-extensions"},
     {"VUID-vkCmdDispatchBase-baseGroupZ-00423", "baseGroupZ must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]", "1.2-extensions"},
     {"VUID-vkCmdDispatchBase-commandBuffer-02701", "If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic", "1.2-extensions"},
-    {"VUID-vkCmdDispatchBase-commandBuffer-02707", "If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.2-extensions"},
-    {"VUID-vkCmdDispatchBase-commandBuffer-02712", "If commandBuffer is a protected command buffer, 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.2-extensions"},
-    {"VUID-vkCmdDispatchBase-commandBuffer-02713", "If commandBuffer is a protected command buffer, 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.2-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.2-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.2-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.2-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.2-extensions"},
     {"VUID-vkCmdDispatchBase-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support compute operations", "1.2-extensions"},
     {"VUID-vkCmdDispatchBase-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
@@ -6353,7 +6352,7 @@
     {"VUID-vkCmdDispatchIndirect-buffer-02709", "buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", "1.2-extensions"},
     {"VUID-vkCmdDispatchIndirect-buffer-parameter", "buffer must be a valid VkBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdDispatchIndirect-commandBuffer-02701", "If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic", "1.2-extensions"},
-    {"VUID-vkCmdDispatchIndirect-commandBuffer-02707", "If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.2-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.2-extensions"},
     {"VUID-vkCmdDispatchIndirect-commandBuffer-02711", "commandBuffer must not be a protected command buffer", "1.2-extensions"},
     {"VUID-vkCmdDispatchIndirect-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support compute operations", "1.2-extensions"},
     {"VUID-vkCmdDispatchIndirect-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
@@ -6410,9 +6409,9 @@
     {"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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::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.2-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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline", "1.2-extensions"},
     {"VUID-vkCmdDraw-commandBuffer-02701", "If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic", "1.2-extensions"},
-    {"VUID-vkCmdDraw-commandBuffer-02707", "If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.2-extensions"},
-    {"VUID-vkCmdDraw-commandBuffer-02712", "If commandBuffer is a protected command buffer, 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.2-extensions"},
-    {"VUID-vkCmdDraw-commandBuffer-02713", "If commandBuffer is a protected command buffer, 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.2-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.2-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.2-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.2-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.2-extensions"},
     {"VUID-vkCmdDraw-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.2-extensions"},
     {"VUID-vkCmdDraw-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
@@ -6499,9 +6498,9 @@
     {"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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::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.2-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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline", "1.2-extensions"},
     {"VUID-vkCmdDrawIndexed-commandBuffer-02701", "If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic", "1.2-extensions"},
-    {"VUID-vkCmdDrawIndexed-commandBuffer-02707", "If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.2-extensions"},
-    {"VUID-vkCmdDrawIndexed-commandBuffer-02712", "If commandBuffer is a protected command buffer, 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.2-extensions"},
-    {"VUID-vkCmdDrawIndexed-commandBuffer-02713", "If commandBuffer is a protected command buffer, 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.2-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.2-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.2-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.2-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.2-extensions"},
     {"VUID-vkCmdDrawIndexed-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.2-extensions"},
     {"VUID-vkCmdDrawIndexed-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
@@ -6592,7 +6591,7 @@
     {"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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::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.2-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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline", "1.2-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-commandBuffer-02701", "If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic", "1.2-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707", "If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.2-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.2-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711", "commandBuffer must not be a protected command buffer", "1.2-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.2-extensions"},
     {"VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
@@ -6691,7 +6690,7 @@
     {"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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::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.2-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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline", "1.2-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02701", "If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic", "1.2-extensions"},
-    {"VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707", "If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.2-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.2-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711", "commandBuffer must not be a protected command buffer", "1.2-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.2-extensions"},
     {"VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
@@ -6793,7 +6792,7 @@
     {"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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::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.2-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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline", "1.2-extensions"},
     {"VUID-vkCmdDrawIndirect-commandBuffer-02701", "If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic", "1.2-extensions"},
-    {"VUID-vkCmdDrawIndirect-commandBuffer-02707", "If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.2-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.2-extensions"},
     {"VUID-vkCmdDrawIndirect-commandBuffer-02711", "commandBuffer must not be a protected command buffer", "1.2-extensions"},
     {"VUID-vkCmdDrawIndirect-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.2-extensions"},
     {"VUID-vkCmdDrawIndirect-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
@@ -6889,7 +6888,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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline", "1.2-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646", "commandBuffer must not be a protected command buffer", "1.2-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02701", "If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic", "1.2-extensions"},
-    {"VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707", "If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.2-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", "1.2-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.2-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-recording", "commandBuffer must be in the recording state", "1.2-extensions"},
@@ -6987,7 +6986,7 @@
     {"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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::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.2-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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline", "1.2-extensions"},
     {"VUID-vkCmdDrawIndirectCount-commandBuffer-02701", "If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic", "1.2-extensions"},
-    {"VUID-vkCmdDrawIndirectCount-commandBuffer-02707", "If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.2-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.2-extensions"},
     {"VUID-vkCmdDrawIndirectCount-commandBuffer-02711", "commandBuffer must not be a protected command buffer", "1.2-extensions"},
     {"VUID-vkCmdDrawIndirectCount-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.2-extensions"},
     {"VUID-vkCmdDrawIndirectCount-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
@@ -7087,7 +7086,7 @@
     {"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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::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.2-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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline", "1.2-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02701", "If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic", "1.2-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707", "If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.2-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", "1.2-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711", "commandBuffer must not be a protected command buffer", "1.2-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.2-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
@@ -7186,7 +7185,7 @@
     {"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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::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.2-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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline", "1.2-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02701", "If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic", "1.2-extensions"},
-    {"VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707", "If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.2-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", "1.2-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711", "commandBuffer must not be a protected command buffer", "1.2-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.2-extensions"},
     {"VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
@@ -7277,7 +7276,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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::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.2-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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline", "1.2-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-commandBuffer-02701", "If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic", "1.2-extensions"},
-    {"VUID-vkCmdDrawMeshTasksNV-commandBuffer-02707", "If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.2-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", "1.2-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.2-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdDrawMeshTasksNV-commandBuffer-recording", "commandBuffer must be in the recording state", "1.2-extensions"},
@@ -7365,9 +7364,9 @@
     {"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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::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.2-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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline", "1.2-extensions"},
     {"VUID-vkCmdDrawMultiEXT-commandBuffer-02701", "If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic", "1.2-extensions"},
-    {"VUID-vkCmdDrawMultiEXT-commandBuffer-02707", "If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.2-extensions"},
-    {"VUID-vkCmdDrawMultiEXT-commandBuffer-02712", "If commandBuffer is a protected command buffer, 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.2-extensions"},
-    {"VUID-vkCmdDrawMultiEXT-commandBuffer-02713", "If commandBuffer is a protected command buffer, 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.2-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", "1.2-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.2-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.2-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.2-extensions"},
     {"VUID-vkCmdDrawMultiEXT-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.2-extensions"},
     {"VUID-vkCmdDrawMultiEXT-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
@@ -7458,9 +7457,9 @@
     {"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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::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.2-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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline", "1.2-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02701", "If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic", "1.2-extensions"},
-    {"VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02707", "If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.2-extensions"},
-    {"VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712", "If commandBuffer is a protected command buffer, 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.2-extensions"},
-    {"VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02713", "If commandBuffer is a protected command buffer, 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.2-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", "1.2-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.2-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.2-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.2-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.2-extensions"},
     {"VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
@@ -7602,8 +7601,8 @@
     {"VUID-vkCmdExecuteCommands-commandBuffer-00102", "If commandBuffer has a VK_QUERY_TYPE_OCCLUSION query active, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceInfo::occlusionQueryEnable set to VK_TRUE", "1.2-extensions"},
     {"VUID-vkCmdExecuteCommands-commandBuffer-00103", "If commandBuffer has a VK_QUERY_TYPE_OCCLUSION query active, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceInfo::queryFlags having all bits set that are set for the query", "1.2-extensions"},
     {"VUID-vkCmdExecuteCommands-commandBuffer-00104", "If commandBuffer has a VK_QUERY_TYPE_PIPELINE_STATISTICS query active, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceInfo::pipelineStatistics having all bits set that are set in the VkQueryPool the query uses", "1.2-extensions"},
-    {"VUID-vkCmdExecuteCommands-commandBuffer-01820", "If commandBuffer is a protected command buffer, then each element of pCommandBuffers must be a protected command buffer", "1.2-extensions"},
-    {"VUID-vkCmdExecuteCommands-commandBuffer-01821", "If commandBuffer is an unprotected command buffer, then each element of pCommandBuffers must be an unprotected command buffer", "1.2-extensions"},
+    {"VUID-vkCmdExecuteCommands-commandBuffer-01820", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, each element of pCommandBuffers must be a protected command buffer", "1.2-extensions"},
+    {"VUID-vkCmdExecuteCommands-commandBuffer-01821", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, each element of pCommandBuffers must be an unprotected command buffer", "1.2-extensions"},
     {"VUID-vkCmdExecuteCommands-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", "1.2-extensions"},
     {"VUID-vkCmdExecuteCommands-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdExecuteCommands-commandBuffer-recording", "commandBuffer must be in the recording state", "1.2-extensions"},
@@ -7686,7 +7685,7 @@
     {"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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::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.2-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 vkCmdBeginRenderingKHR with a VkRenderingInfoKHR::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfoKHR::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline", "1.2-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02701", "If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic", "1.2-extensions"},
-    {"VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02707", "If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.2-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", "1.2-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02970", "commandBuffer must not be a protected command buffer", "1.2-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", "1.2-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
@@ -7738,8 +7737,8 @@
     {"VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04139", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT", "1.2-extensions"},
     {"VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04140", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT 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 vkCmdSetViewportWithCountEXT", "1.2-extensions"},
     {"VUID-vkCmdFillBuffer-commandBuffer-00030", "The VkCommandPool that commandBuffer was allocated from must support graphics or compute operations", "1.0"},
-    {"VUID-vkCmdFillBuffer-commandBuffer-01811", "If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer", "1.2-extensions"},
-    {"VUID-vkCmdFillBuffer-commandBuffer-01812", "If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer", "1.2-extensions"},
+    {"VUID-vkCmdFillBuffer-commandBuffer-01811", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer", "1.2-extensions"},
+    {"VUID-vkCmdFillBuffer-commandBuffer-01812", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer", "1.2-extensions"},
     {"VUID-vkCmdFillBuffer-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics or compute operations", "1.2-extensions"},
     {"VUID-vkCmdFillBuffer-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdFillBuffer-commandBuffer-recording", "commandBuffer must be in the recording state", "1.2-extensions"},
@@ -7929,9 +7928,9 @@
     {"VUID-vkCmdResetQueryPool-firstQuery-02862", "If queryPool was created with VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, this command must not be recorded in a command buffer that, either directly or through secondary command buffers, also contains begin commands for a query from the set of queries [firstQuery, firstQuery + queryCount - 1]", "1.2-extensions"},
     {"VUID-vkCmdResetQueryPool-queryPool-parameter", "queryPool must be a valid VkQueryPool handle", "1.2-extensions"},
     {"VUID-vkCmdResetQueryPool-renderpass", "This command must only be called outside of a render pass instance", "1.2-extensions"},
-    {"VUID-vkCmdResolveImage-commandBuffer-01837", "If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image", "1.2-extensions"},
-    {"VUID-vkCmdResolveImage-commandBuffer-01838", "If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image", "1.2-extensions"},
-    {"VUID-vkCmdResolveImage-commandBuffer-01839", "If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image", "1.2-extensions"},
+    {"VUID-vkCmdResolveImage-commandBuffer-01837", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image", "1.2-extensions"},
+    {"VUID-vkCmdResolveImage-commandBuffer-01838", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image", "1.2-extensions"},
+    {"VUID-vkCmdResolveImage-commandBuffer-01839", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image", "1.2-extensions"},
     {"VUID-vkCmdResolveImage-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.2-extensions"},
     {"VUID-vkCmdResolveImage-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdResolveImage-commandBuffer-recording", "commandBuffer must be in the recording state", "1.2-extensions"},
@@ -7973,9 +7972,9 @@
     {"VUID-vkCmdResolveImage-srcOffset-00272", "For each element of pRegions, srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage", "1.2-extensions"},
     {"VUID-vkCmdResolveImage-srcSubresource-01709", "The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created", "1.2-extensions"},
     {"VUID-vkCmdResolveImage-srcSubresource-01711", "The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created", "1.2-extensions"},
-    {"VUID-vkCmdResolveImage2KHR-commandBuffer-01837", "If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image", "1.2-extensions"},
-    {"VUID-vkCmdResolveImage2KHR-commandBuffer-01838", "If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image", "1.2-extensions"},
-    {"VUID-vkCmdResolveImage2KHR-commandBuffer-01839", "If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image", "1.2-extensions"},
+    {"VUID-vkCmdResolveImage2KHR-commandBuffer-01837", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image", "1.2-extensions"},
+    {"VUID-vkCmdResolveImage2KHR-commandBuffer-01838", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image", "1.2-extensions"},
+    {"VUID-vkCmdResolveImage2KHR-commandBuffer-01839", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image", "1.2-extensions"},
     {"VUID-vkCmdResolveImage2KHR-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.2-extensions"},
     {"VUID-vkCmdResolveImage2KHR-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdResolveImage2KHR-commandBuffer-recording", "commandBuffer must be in the recording state", "1.2-extensions"},
@@ -8309,7 +8308,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.2-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.2-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-02701", "If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic", "1.2-extensions"},
-    {"VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-02707", "If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.2-extensions"},
+    {"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", "1.2-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.2-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-recording", "commandBuffer must be in the recording state", "1.2-extensions"},
@@ -8345,7 +8344,7 @@
     {"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.2-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.2-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02701", "If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic", "1.2-extensions"},
-    {"VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02707", "If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.2-extensions"},
+    {"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.2-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-03635", "commandBuffer must not be a protected command buffer", "1.2-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support compute operations", "1.2-extensions"},
     {"VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
@@ -8420,7 +8419,7 @@
     {"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.2-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.2-extensions"},
     {"VUID-vkCmdTraceRaysKHR-commandBuffer-02701", "If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic", "1.2-extensions"},
-    {"VUID-vkCmdTraceRaysKHR-commandBuffer-02707", "If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.2-extensions"},
+    {"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.2-extensions"},
     {"VUID-vkCmdTraceRaysKHR-commandBuffer-04625", "commandBuffer must not be a protected command buffer", "1.2-extensions"},
     {"VUID-vkCmdTraceRaysKHR-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support compute operations", "1.2-extensions"},
     {"VUID-vkCmdTraceRaysKHR-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
@@ -8499,7 +8498,7 @@
     {"VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-04045", "If callableShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", "1.2-extensions"},
     {"VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-parameter", "If callableShaderBindingTableBuffer is not VK_NULL_HANDLE, callableShaderBindingTableBuffer must be a valid VkBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdTraceRaysNV-commandBuffer-02701", "If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic", "1.2-extensions"},
-    {"VUID-vkCmdTraceRaysNV-commandBuffer-02707", "If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource", "1.2-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", "1.2-extensions"},
     {"VUID-vkCmdTraceRaysNV-commandBuffer-04624", "commandBuffer must not be a protected command buffer", "1.2-extensions"},
     {"VUID-vkCmdTraceRaysNV-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support compute operations", "1.2-extensions"},
     {"VUID-vkCmdTraceRaysNV-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
@@ -8534,8 +8533,8 @@
     {"VUID-vkCmdTraceRaysNV-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.2-extensions"},
     {"VUID-vkCmdTraceRaysNV-sparseImageInt64Atomics-04475", "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_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.2-extensions"},
     {"VUID-vkCmdTraceRaysNV-width-02469", "width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]", "1.2-extensions"},
-    {"VUID-vkCmdUpdateBuffer-commandBuffer-01813", "If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer", "1.2-extensions"},
-    {"VUID-vkCmdUpdateBuffer-commandBuffer-01814", "If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer", "1.2-extensions"},
+    {"VUID-vkCmdUpdateBuffer-commandBuffer-01813", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer", "1.2-extensions"},
+    {"VUID-vkCmdUpdateBuffer-commandBuffer-01814", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer", "1.2-extensions"},
     {"VUID-vkCmdUpdateBuffer-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", "1.2-extensions"},
     {"VUID-vkCmdUpdateBuffer-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.2-extensions"},
     {"VUID-vkCmdUpdateBuffer-commandBuffer-recording", "commandBuffer must be in the recording state", "1.2-extensions"},
@@ -9546,7 +9545,7 @@
     {"VUID-vkGetMemoryFdKHR-pGetFdInfo-parameter", "pGetFdInfo must be a valid pointer to a valid VkMemoryGetFdInfoKHR structure", "1.2-extensions"},
     {"VUID-vkGetMemoryFdPropertiesKHR-device-parameter", "device must be a valid VkDevice handle", "1.2-extensions"},
     {"VUID-vkGetMemoryFdPropertiesKHR-fd-00673", "fd must be an external memory handle created outside of the Vulkan API", "1.2-extensions"},
-    {"VUID-vkGetMemoryFdPropertiesKHR-handleType-00674", "handleType must not be VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR", "1.2-extensions"},
+    {"VUID-vkGetMemoryFdPropertiesKHR-handleType-00674", "handleType must not be VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT", "1.2-extensions"},
     {"VUID-vkGetMemoryFdPropertiesKHR-handleType-parameter", "handleType must be a valid VkExternalMemoryHandleTypeFlagBits value", "1.2-extensions"},
     {"VUID-vkGetMemoryFdPropertiesKHR-pMemoryFdProperties-parameter", "pMemoryFdProperties must be a valid pointer to a VkMemoryFdPropertiesKHR structure", "1.2-extensions"},
     {"VUID-vkGetMemoryHostPointerPropertiesEXT-device-parameter", "device must be a valid VkDevice handle", "1.2-extensions"},
@@ -10001,6 +10000,7 @@
     {"VUID-vkQueueSubmit-pWaitSemaphores-00068", "When a semaphore wait operation referring to a binary semaphore defined by any element of the pWaitSemaphores member of any element of pSubmits executes on queue, there must be no other queues waiting on the same semaphore", "1.2-extensions"},
     {"VUID-vkQueueSubmit-pWaitSemaphores-00069", "All elements of the pWaitSemaphores member of all elements of pSubmits must be semaphores that are signaled, or have semaphore signal operations previously submitted for execution", "1.2"},
     {"VUID-vkQueueSubmit-pWaitSemaphores-03238", "All elements of the pWaitSemaphores member of all elements of pSubmits created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) must have also been submitted for execution", "1.2-extensions"},
+    {"VUID-vkQueueSubmit-queue-06448", "If queue was not created with VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT, there must be no element of pSubmits that includes an VkProtectedSubmitInfo structure in its pNext chain with protectedSubmit equal to VK_TRUE", "1.2-extensions"},
     {"VUID-vkQueueSubmit-queue-parameter", "queue must be a valid VkQueue handle", "1.2-extensions"},
     {"VUID-vkQueueSubmit2KHR-commandBuffer-03867", "If a command recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits referenced an VkEvent, that event must not be referenced by a command that has been submitted to another queue and is still in the pending state", "1.2-extensions"},
     {"VUID-vkQueueSubmit2KHR-commandBuffer-03874", "The commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits must be in the pending or executable state", "1.2-extensions"},
@@ -10015,6 +10015,7 @@
     {"VUID-vkQueueSubmit2KHR-fence-04895", "If fence is not VK_NULL_HANDLE, fence must not be associated with any other queue command that has not yet completed execution on that queue", "1.2-extensions"},
     {"VUID-vkQueueSubmit2KHR-fence-parameter", "If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle", "1.2-extensions"},
     {"VUID-vkQueueSubmit2KHR-pSubmits-parameter", "If submitCount is not 0, pSubmits must be a valid pointer to an array of submitCount valid VkSubmitInfo2KHR structures", "1.2-extensions"},
+    {"VUID-vkQueueSubmit2KHR-queue-06447", "If queue was not created with VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT, the flags member of any element of pSubmits must not include VK_SUBMIT_PROTECTED_BIT_KHR", "1.2-extensions"},
     {"VUID-vkQueueSubmit2KHR-queue-parameter", "queue must be a valid VkQueue handle", "1.2-extensions"},
     {"VUID-vkQueueSubmit2KHR-semaphore-03868", "The semaphore member of any binary semaphore element of the pSignalSemaphoreInfos member of any element of pSubmits must be unsignaled when the semaphore signal operation it defines is executed on the device", "1.2-extensions"},
     {"VUID-vkQueueSubmit2KHR-semaphore-03871", "When a semaphore wait operation for a binary semaphore is executed, as defined by the semaphore member of any element of the pWaitSemaphoreInfos member of any element of pSubmits, there must be no other queues waiting on the same semaphore", "1.2-extensions"},
diff --git a/scripts/known_good.json b/scripts/known_good.json
index 347dc70..f0e1070 100755
--- a/scripts/known_good.json
+++ b/scripts/known_good.json
@@ -18,7 +18,7 @@
       "sub_dir": "Vulkan-Headers",
       "build_dir": "Vulkan-Headers/build",
       "install_dir": "Vulkan-Headers/build/install",
-      "commit": "v1.2.197"
+      "commit": "v1.2.198"
     },
     {
       "name": "SPIRV-Headers",