diff --git a/layers/VkLayer_khronos_validation.json.in b/layers/VkLayer_khronos_validation.json.in index 99d03029e8e..e57b3ffdf6d 100644 --- a/layers/VkLayer_khronos_validation.json.in +++ b/layers/VkLayer_khronos_validation.json.in @@ -4,7 +4,7 @@ "name": "VK_LAYER_KHRONOS_validation", "type": "GLOBAL", "library_path": "@JSON_LIBRARY_PATH@", - "api_version": "1.3.267", + "api_version": "1.3.268", "implementation_version": "1", "description": "Khronos Validation Layer", "introduction": "The main, comprehensive Khronos validation layer.\n\nVulkan is an Explicit API, enabling direct control over how GPUs actually work. By design, minimal error checking is done inside a Vulkan driver. Applications have full control and responsibility for correct operation. Any errors in how Vulkan is used can result in a crash. \n\nThe Khronos Valiation Layer can be enabled to assist development by enabling developers to verify their applications correctly use the Vulkan API.", diff --git a/layers/vulkan/generated/enum_flag_bits.h b/layers/vulkan/generated/enum_flag_bits.h index 51cab06b3f3..4faa1afdff6 100644 --- a/layers/vulkan/generated/enum_flag_bits.h +++ b/layers/vulkan/generated/enum_flag_bits.h @@ -24,7 +24,7 @@ #include #include "vulkan/vulkan.h" // clang-format off -const uint32_t GeneratedVulkanHeaderVersion = 267; +const uint32_t GeneratedVulkanHeaderVersion = 268; const VkAccessFlags AllVkAccessFlagBits = VK_ACCESS_INDIRECT_COMMAND_READ_BIT|VK_ACCESS_INDEX_READ_BIT|VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT|VK_ACCESS_UNIFORM_READ_BIT|VK_ACCESS_INPUT_ATTACHMENT_READ_BIT|VK_ACCESS_SHADER_READ_BIT|VK_ACCESS_SHADER_WRITE_BIT|VK_ACCESS_COLOR_ATTACHMENT_READ_BIT|VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT|VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT|VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT|VK_ACCESS_TRANSFER_READ_BIT|VK_ACCESS_TRANSFER_WRITE_BIT|VK_ACCESS_HOST_READ_BIT|VK_ACCESS_HOST_WRITE_BIT|VK_ACCESS_MEMORY_READ_BIT|VK_ACCESS_MEMORY_WRITE_BIT|VK_ACCESS_NONE|VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT|VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT|VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT|VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT|VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT|VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR|VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR|VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT|VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR|VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV|VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV; const VkImageAspectFlags AllVkImageAspectFlagBits = VK_IMAGE_ASPECT_COLOR_BIT|VK_IMAGE_ASPECT_DEPTH_BIT|VK_IMAGE_ASPECT_STENCIL_BIT|VK_IMAGE_ASPECT_METADATA_BIT|VK_IMAGE_ASPECT_PLANE_0_BIT|VK_IMAGE_ASPECT_PLANE_1_BIT|VK_IMAGE_ASPECT_PLANE_2_BIT|VK_IMAGE_ASPECT_NONE|VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT|VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT|VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT|VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT; const VkInstanceCreateFlags AllVkInstanceCreateFlagBits = VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR; diff --git a/layers/vulkan/generated/object_tracker.cpp b/layers/vulkan/generated/object_tracker.cpp index 58659ba01df..7fc5a715f68 100644 --- a/layers/vulkan/generated/object_tracker.cpp +++ b/layers/vulkan/generated/object_tracker.cpp @@ -43,7 +43,7 @@ bool ObjectLifetimes::ReportUndestroyedInstanceObjects(VkInstance instance, cons bool ObjectLifetimes::ReportUndestroyedDeviceObjects(VkDevice device, const Location& loc) const { bool skip = false; - const std::string error_code = "VUID-vkDestroyDevice-device-00378"; + const std::string error_code = "VUID-vkDestroyDevice-device-05137"; skip |= ReportLeakedDeviceObjects(device, kVulkanObjectTypeCommandBuffer, error_code, loc); skip |= ReportLeakedDeviceObjects(device, kVulkanObjectTypeBuffer, error_code, loc); skip |= ReportLeakedDeviceObjects(device, kVulkanObjectTypeImage, error_code, loc); diff --git a/layers/vulkan/generated/vk_validation_error_messages.h b/layers/vulkan/generated/vk_validation_error_messages.h index f8b4044942b..76efb7098ec 100644 --- a/layers/vulkan/generated/vk_validation_error_messages.h +++ b/layers/vulkan/generated/vk_validation_error_messages.h @@ -1,5 +1,5 @@ /* THIS FILE IS GENERATED - DO NOT EDIT (scripts/vk_validation_stats.py) */ -/* Vulkan specification version: 1.3.267 */ +/* Vulkan specification version: 1.3.268 */ /* * Vulkan * @@ -1669,8 +1669,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkCopyBufferToImageInfo2-dstImage-07966", "If dstImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"}, {"VUID-VkCopyBufferToImageInfo2-dstImage-07969", "dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", "1.3-extensions"}, {"VUID-VkCopyBufferToImageInfo2-dstImage-07973", "dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT", "1.3-extensions"}, - {"VUID-VkCopyBufferToImageInfo2-dstImage-07975", "If dstImage 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 texel block size", "1.3-extensions"}, - {"VUID-VkCopyBufferToImageInfo2-dstImage-07976", "If dstImage 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.3-extensions"}, + {"VUID-VkCopyBufferToImageInfo2-dstImage-07975", "If dstImage does not have either a depth/stencil format or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the texel block size", "1.3-extensions"}, + {"VUID-VkCopyBufferToImageInfo2-dstImage-07976", "If dstImage 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.3-extensions"}, {"VUID-VkCopyBufferToImageInfo2-dstImage-07978", "If dstImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4", "1.3-extensions"}, {"VUID-VkCopyBufferToImageInfo2-dstImage-07979", "If dstImage 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.3-extensions"}, {"VUID-VkCopyBufferToImageInfo2-dstImage-07980", "If dstImage 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.3-extensions"}, @@ -1678,7 +1678,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkCopyBufferToImageInfo2-dstImage-07983", "If dstImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1", "1.3-extensions"}, {"VUID-VkCopyBufferToImageInfo2-dstImage-parameter", "dstImage must be a valid VkImage handle", "1.3-extensions"}, {"VUID-VkCopyBufferToImageInfo2-dstImageLayout-00180", "dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice", "1.3-extensions"}, - {"VUID-VkCopyBufferToImageInfo2-dstImageLayout-01396", "dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR", "1.3-extensions"}, + {"VUID-VkCopyBufferToImageInfo2-dstImageLayout-01396", "dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL", "1.3-extensions"}, {"VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameter", "dstImageLayout must be a valid VkImageLayout value", "1.3-extensions"}, {"VUID-VkCopyBufferToImageInfo2-imageOffset-09104", "For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of dstImage", "1.3-extensions"}, {"VUID-VkCopyBufferToImageInfo2-imageSubresource-07967", "The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created", "1.3-extensions"}, @@ -1726,9 +1726,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkCopyDescriptorSet-srcSet-04887", "If the descriptor pool from which srcSet was allocated was created with neither VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT nor VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT flags set, then the descriptor pool from which dstSet was allocated must have been created without the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set", "1.3-extensions"}, {"VUID-VkCopyDescriptorSet-srcSet-parameter", "srcSet must be a valid VkDescriptorSet handle", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-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.3-extensions"}, - {"VUID-VkCopyImageInfo2-apiVersion-07932", "If the VK_KHR_maintenance1 extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and either srcImage or dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must each be 0, and srcSubresource.layerCount and dstSubresource.layerCount must each be 1", "1.3-extensions"}, - {"VUID-VkCopyImageInfo2-apiVersion-07933", "If the VK_KHR_maintenance1 extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, srcImage and dstImage must have the same VkImageType", "1.3-extensions"}, - {"VUID-VkCopyImageInfo2-apiVersion-08969", "If the VK_KHR_maintenance1 extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and srcImage or dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1", "1.3-extensions"}, + {"VUID-VkCopyImageInfo2-apiVersion-07932", "If the VK_KHR_maintenance1 extension is not enabled, or VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and either srcImage or dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must both be 0, and srcSubresource.layerCount and dstSubresource.layerCount must both be 1", "1.3-extensions"}, + {"VUID-VkCopyImageInfo2-apiVersion-07933", "If the VK_KHR_maintenance1 extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, srcImage and dstImage must have the same VkImageType", "1.3-extensions"}, + {"VUID-VkCopyImageInfo2-apiVersion-08969", "If the VK_KHR_maintenance1 extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, srcImage or dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-aspect-06662", "If the aspect member of any element of pRegions includes any flag other than VK_IMAGE_ASPECT_STENCIL_BIT or srcImage was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_SRC_BIT must have been included in the VkImageCreateInfo::usage used to create srcImage", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-aspect-06663", "If the aspect member of any element of pRegions includes any flag other than VK_IMAGE_ASPECT_STENCIL_BIT or dstImage was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create dstImage", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-aspect-06664", "If the aspect member of any element of pRegions includes VK_IMAGE_ASPECT_STENCIL_BIT, and srcImage was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_SRC_BIT must have been included in the VkImageStencilUsageCreateInfo::stencilUsage used to create srcImage", "1.3-extensions"}, @@ -1751,7 +1751,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkCopyImageInfo2-dstImage-08714", "If dstImage has a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be a single valid multi-planar aspect mask bit", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-dstImage-parameter", "dstImage must be a valid VkImage handle", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-dstImageLayout-00133", "dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice", "1.3-extensions"}, - {"VUID-VkCopyImageInfo2-dstImageLayout-01395", "dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR", "1.3-extensions"}, + {"VUID-VkCopyImageInfo2-dstImageLayout-01395", "dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-dstImageLayout-parameter", "dstImageLayout must be a valid VkImageLayout value", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-dstOffset-00150", "For each element of pRegions, dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-dstOffset-00151", "For each element of pRegions, dstOffset.y and (extent.height + dstOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage", "1.3-extensions"}, @@ -1789,12 +1789,12 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkCopyImageInfo2-srcImage-07966", "If srcImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-srcImage-07969", "srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-srcImage-08713", "If srcImage has a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be a single valid multi-planar aspect mask bit", "1.3-extensions"}, - {"VUID-VkCopyImageInfo2-srcImage-08793", "If srcImage and dstImage have the same VkImageType, and neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members must match", "1.3-extensions"}, + {"VUID-VkCopyImageInfo2-srcImage-08793", "If srcImage and dstImage have the same VkImageType, for each element of pRegions, if neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members of srcSubresource or dstSubresource must match", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-srcImage-08794", "If srcImage and dstImage have the same VkImageType, and one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-srcImage-09247", "If the VkFormat of each of srcImage and dstImage is a compressed image format, the formats must have the same texel block extent", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-srcImage-parameter", "srcImage must be a valid VkImage handle", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-srcImageLayout-00128", "srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice", "1.3-extensions"}, - {"VUID-VkCopyImageInfo2-srcImageLayout-01917", "srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR", "1.3-extensions"}, + {"VUID-VkCopyImageInfo2-srcImageLayout-01917", "srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-srcImageLayout-parameter", "srcImageLayout must be a valid VkImageLayout value", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-srcOffset-00144", "For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-srcOffset-00145", "For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage", "1.3-extensions"}, @@ -1833,8 +1833,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkCopyImageToBufferInfo2-srcImage-07966", "If srcImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"}, {"VUID-VkCopyImageToBufferInfo2-srcImage-07969", "srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", "1.3-extensions"}, {"VUID-VkCopyImageToBufferInfo2-srcImage-07973", "srcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT", "1.3-extensions"}, - {"VUID-VkCopyImageToBufferInfo2-srcImage-07975", "If srcImage 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 texel block size", "1.3-extensions"}, - {"VUID-VkCopyImageToBufferInfo2-srcImage-07976", "If srcImage 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.3-extensions"}, + {"VUID-VkCopyImageToBufferInfo2-srcImage-07975", "If srcImage does not have either a depth/stencil format or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the texel block size", "1.3-extensions"}, + {"VUID-VkCopyImageToBufferInfo2-srcImage-07976", "If srcImage 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.3-extensions"}, {"VUID-VkCopyImageToBufferInfo2-srcImage-07978", "If srcImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4", "1.3-extensions"}, {"VUID-VkCopyImageToBufferInfo2-srcImage-07979", "If srcImage 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.3-extensions"}, {"VUID-VkCopyImageToBufferInfo2-srcImage-07980", "If srcImage 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.3-extensions"}, @@ -1842,7 +1842,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkCopyImageToBufferInfo2-srcImage-07983", "If srcImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1", "1.3-extensions"}, {"VUID-VkCopyImageToBufferInfo2-srcImage-parameter", "srcImage must be a valid VkImage handle", "1.3-extensions"}, {"VUID-VkCopyImageToBufferInfo2-srcImageLayout-00189", "srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice", "1.3-extensions"}, - {"VUID-VkCopyImageToBufferInfo2-srcImageLayout-01397", "srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR", "1.3-extensions"}, + {"VUID-VkCopyImageToBufferInfo2-srcImageLayout-01397", "srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL", "1.3-extensions"}, {"VUID-VkCopyImageToBufferInfo2-srcImageLayout-parameter", "srcImageLayout must be a valid VkImageLayout value", "1.3-extensions"}, {"VUID-VkCopyImageToBufferInfo2KHR-pRegions-04557", "If the image region specified by each element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, the rotated source region as described in [copies-buffers-images-rotation-addressing] must be contained within srcImage", "1.3-extensions"}, {"VUID-VkCopyImageToBufferInfo2KHR-pRegions-04558", "If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must have a 1x1x1 texel block extent", "1.3-extensions"}, @@ -1862,9 +1862,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkCopyImageToImageInfoEXT-dstImage-07981", "If dstImage has a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be a single valid multi-planar aspect mask bit", "1.3-extensions"}, {"VUID-VkCopyImageToImageInfoEXT-dstImage-07983", "If dstImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1", "1.3-extensions"}, {"VUID-VkCopyImageToImageInfoEXT-dstImage-09109", "If dstImage is sparse then all memory ranges accessed by the copy command must be bound as described in Binding Resource Memory", "1.3-extensions"}, - {"VUID-VkCopyImageToImageInfoEXT-dstImage-09111", "If the stencil aspect of dstImage is accessed, and dstImage was not created with separate stencil usage, the image must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", "1.3-extensions"}, - {"VUID-VkCopyImageToImageInfoEXT-dstImage-09112", "If the stencil aspect of dstImage is accessed, and dstImage was created with separate stencil usage, the image must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageStencilUsageCreateInfo::stencilUsage", "1.3-extensions"}, - {"VUID-VkCopyImageToImageInfoEXT-dstImage-09113", "If non-stencil aspects of dstImage are accessed, the image must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", "1.3-extensions"}, + {"VUID-VkCopyImageToImageInfoEXT-dstImage-09111", "If the stencil aspect of dstImage is accessed, and dstImage was not created with separate stencil usage, dstImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", "1.3-extensions"}, + {"VUID-VkCopyImageToImageInfoEXT-dstImage-09112", "If the stencil aspect of dstImage is accessed, and dstImage was created with separate stencil usage, dstImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageStencilUsageCreateInfo::stencilUsage", "1.3-extensions"}, + {"VUID-VkCopyImageToImageInfoEXT-dstImage-09113", "If non-stencil aspects of dstImage are accessed, dstImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", "1.3-extensions"}, {"VUID-VkCopyImageToImageInfoEXT-dstImage-09115", "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the extent member of each element of pRegions must equal the extents of dstImage identified by dstSubresource", "1.3-extensions"}, {"VUID-VkCopyImageToImageInfoEXT-dstImage-parameter", "dstImage must be a valid VkImage handle", "1.3-extensions"}, {"VUID-VkCopyImageToImageInfoEXT-dstImageLayout-09071", "dstImageLayout must specify the current layout of the image subresources of dstImage specified in pRegions", "1.3-extensions"}, @@ -1897,9 +1897,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkCopyImageToImageInfoEXT-srcImage-07983", "If srcImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and srcSubresource.layerCount must be 1", "1.3-extensions"}, {"VUID-VkCopyImageToImageInfoEXT-srcImage-09069", "srcImage and dstImage must have been created with identical image creation parameters", "1.3-extensions"}, {"VUID-VkCopyImageToImageInfoEXT-srcImage-09109", "If srcImage is sparse then all memory ranges accessed by the copy command must be bound as described in Binding Resource Memory", "1.3-extensions"}, - {"VUID-VkCopyImageToImageInfoEXT-srcImage-09111", "If the stencil aspect of srcImage is accessed, and srcImage was not created with separate stencil usage, the image must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", "1.3-extensions"}, - {"VUID-VkCopyImageToImageInfoEXT-srcImage-09112", "If the stencil aspect of srcImage is accessed, and srcImage was created with separate stencil usage, the image must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageStencilUsageCreateInfo::stencilUsage", "1.3-extensions"}, - {"VUID-VkCopyImageToImageInfoEXT-srcImage-09113", "If non-stencil aspects of srcImage are accessed, the image must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", "1.3-extensions"}, + {"VUID-VkCopyImageToImageInfoEXT-srcImage-09111", "If the stencil aspect of srcImage is accessed, and srcImage was not created with separate stencil usage, srcImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", "1.3-extensions"}, + {"VUID-VkCopyImageToImageInfoEXT-srcImage-09112", "If the stencil aspect of srcImage is accessed, and srcImage was created with separate stencil usage, srcImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageStencilUsageCreateInfo::stencilUsage", "1.3-extensions"}, + {"VUID-VkCopyImageToImageInfoEXT-srcImage-09113", "If non-stencil aspects of srcImage are accessed, srcImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", "1.3-extensions"}, {"VUID-VkCopyImageToImageInfoEXT-srcImage-09115", "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the extent member of each element of pRegions must equal the extents of srcImage identified by srcSubresource", "1.3-extensions"}, {"VUID-VkCopyImageToImageInfoEXT-srcImage-parameter", "srcImage must be a valid VkImage handle", "1.3-extensions"}, {"VUID-VkCopyImageToImageInfoEXT-srcImageLayout-09070", "srcImageLayout must specify the current layout of the image subresources of srcImage specified in pRegions", "1.3-extensions"}, @@ -1913,6 +1913,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkCopyImageToImageInfoEXT-srcSubresource-07971", "For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage", "1.3-extensions"}, {"VUID-VkCopyImageToImageInfoEXT-srcSubresource-07972", "For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage", "1.3-extensions"}, {"VUID-VkCopyImageToImageInfoEXT-srcSubresource-09105", "For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage", "1.3-extensions"}, + {"VUID-VkCopyImageToMemoryInfoEXT-flags-09394", "If flags includes VK_HOST_IMAGE_COPY_MEMCPY_EXT, for each region in pRegions, memoryRowLength and memoryImageHeight must both be 0", "1.3-extensions"}, {"VUID-VkCopyImageToMemoryInfoEXT-flags-parameter", "flags must be a valid combination of VkHostImageCopyFlagBitsEXT values", "1.3-extensions"}, {"VUID-VkCopyImageToMemoryInfoEXT-imageOffset-09104", "For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of srcImage", "1.3-extensions"}, {"VUID-VkCopyImageToMemoryInfoEXT-imageOffset-09114", "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the x, y, and z members of the imageOffset member of each element of pRegions must be 0", "1.3-extensions"}, @@ -1943,9 +1944,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkCopyImageToMemoryInfoEXT-srcImage-07981", "If srcImage has a multi-planar image format, then for each element of pRegions, imageSubresource.aspectMask must be a single valid multi-planar aspect mask bit", "1.3-extensions"}, {"VUID-VkCopyImageToMemoryInfoEXT-srcImage-07983", "If srcImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1", "1.3-extensions"}, {"VUID-VkCopyImageToMemoryInfoEXT-srcImage-09109", "If srcImage is sparse then all memory ranges accessed by the copy command must be bound as described in Binding Resource Memory", "1.3-extensions"}, - {"VUID-VkCopyImageToMemoryInfoEXT-srcImage-09111", "If the stencil aspect of srcImage is accessed, and srcImage was not created with separate stencil usage, the image must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", "1.3-extensions"}, - {"VUID-VkCopyImageToMemoryInfoEXT-srcImage-09112", "If the stencil aspect of srcImage is accessed, and srcImage was created with separate stencil usage, the image must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageStencilUsageCreateInfo::stencilUsage", "1.3-extensions"}, - {"VUID-VkCopyImageToMemoryInfoEXT-srcImage-09113", "If non-stencil aspects of srcImage are accessed, the image must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", "1.3-extensions"}, + {"VUID-VkCopyImageToMemoryInfoEXT-srcImage-09111", "If the stencil aspect of srcImage is accessed, and srcImage was not created with separate stencil usage, srcImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", "1.3-extensions"}, + {"VUID-VkCopyImageToMemoryInfoEXT-srcImage-09112", "If the stencil aspect of srcImage is accessed, and srcImage was created with separate stencil usage, srcImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageStencilUsageCreateInfo::stencilUsage", "1.3-extensions"}, + {"VUID-VkCopyImageToMemoryInfoEXT-srcImage-09113", "If non-stencil aspects of srcImage are accessed, srcImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", "1.3-extensions"}, {"VUID-VkCopyImageToMemoryInfoEXT-srcImage-09115", "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the imageExtent member of each element of pRegions must equal the extents of srcImage identified by imageSubresource", "1.3-extensions"}, {"VUID-VkCopyImageToMemoryInfoEXT-srcImage-parameter", "srcImage must be a valid VkImage handle", "1.3-extensions"}, {"VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-09064", "srcImageLayout must specify the current layout of the image subresources of srcImage specified in pRegions", "1.3-extensions"}, @@ -1982,14 +1983,15 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkCopyMemoryToImageInfoEXT-dstImage-07981", "If dstImage has a multi-planar image format, then for each element of pRegions, imageSubresource.aspectMask must be a single valid multi-planar aspect mask bit", "1.3-extensions"}, {"VUID-VkCopyMemoryToImageInfoEXT-dstImage-07983", "If dstImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1", "1.3-extensions"}, {"VUID-VkCopyMemoryToImageInfoEXT-dstImage-09109", "If dstImage is sparse then all memory ranges accessed by the copy command must be bound as described in Binding Resource Memory", "1.3-extensions"}, - {"VUID-VkCopyMemoryToImageInfoEXT-dstImage-09111", "If the stencil aspect of dstImage is accessed, and dstImage was not created with separate stencil usage, the image must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", "1.3-extensions"}, - {"VUID-VkCopyMemoryToImageInfoEXT-dstImage-09112", "If the stencil aspect of dstImage is accessed, and dstImage was created with separate stencil usage, the image must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageStencilUsageCreateInfo::stencilUsage", "1.3-extensions"}, - {"VUID-VkCopyMemoryToImageInfoEXT-dstImage-09113", "If non-stencil aspects of dstImage are accessed, the image must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", "1.3-extensions"}, + {"VUID-VkCopyMemoryToImageInfoEXT-dstImage-09111", "If the stencil aspect of dstImage is accessed, and dstImage was not created with separate stencil usage, dstImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", "1.3-extensions"}, + {"VUID-VkCopyMemoryToImageInfoEXT-dstImage-09112", "If the stencil aspect of dstImage is accessed, and dstImage was created with separate stencil usage, dstImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageStencilUsageCreateInfo::stencilUsage", "1.3-extensions"}, + {"VUID-VkCopyMemoryToImageInfoEXT-dstImage-09113", "If non-stencil aspects of dstImage are accessed, dstImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage", "1.3-extensions"}, {"VUID-VkCopyMemoryToImageInfoEXT-dstImage-09115", "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the imageExtent member of each element of pRegions must equal the extents of dstImage identified by imageSubresource", "1.3-extensions"}, {"VUID-VkCopyMemoryToImageInfoEXT-dstImage-parameter", "dstImage must be a valid VkImage handle", "1.3-extensions"}, {"VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-09059", "dstImageLayout must specify the current layout of the image subresources of dstImage specified in pRegions", "1.3-extensions"}, {"VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-09060", "dstImageLayout must be one of the image layouts returned in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopyDstLayouts", "1.3-extensions"}, {"VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-parameter", "dstImageLayout must be a valid VkImageLayout value", "1.3-extensions"}, + {"VUID-VkCopyMemoryToImageInfoEXT-flags-09393", "If flags includes VK_HOST_IMAGE_COPY_MEMCPY_EXT, for each region in pRegions, memoryRowLength and memoryImageHeight must both be 0", "1.3-extensions"}, {"VUID-VkCopyMemoryToImageInfoEXT-flags-parameter", "flags must be a valid combination of VkHostImageCopyFlagBitsEXT values", "1.3-extensions"}, {"VUID-VkCopyMemoryToImageInfoEXT-imageOffset-09104", "For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of dstImage", "1.3-extensions"}, {"VUID-VkCopyMemoryToImageInfoEXT-imageOffset-09114", "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the x, y, and z members of the imageOffset member of each element of pRegions must be 0", "1.3-extensions"}, @@ -2241,6 +2243,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkDescriptorSetAllocateInfo-pSetLayouts-03044", "If any element of pSetLayouts was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set, descriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set", "1.3-extensions"}, {"VUID-VkDescriptorSetAllocateInfo-pSetLayouts-04610", "If any element of pSetLayouts was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT bit set, descriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT flag set", "1.3-extensions"}, {"VUID-VkDescriptorSetAllocateInfo-pSetLayouts-08009", "Each element of pSetLayouts must not have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT bit set", "1.3-extensions"}, + {"VUID-VkDescriptorSetAllocateInfo-pSetLayouts-09380", "If pSetLayouts[i] was created with an element of pBindingFlags that includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, and VkDescriptorSetVariableDescriptorCountAllocateInfo is included in the pNext chain, and VkDescriptorSetVariableDescriptorCountAllocateInfo::descriptorSetCount is not zero, then slink::VkDescriptorSetVariableDescriptorCountAllocateInfo::pDescriptorCounts[i] must be less than or equal to slink::VkDescriptorSetLayoutBinding::descriptorCount for the corresponding binding used to create pSetLayouts[i]", "1.3-extensions"}, {"VUID-VkDescriptorSetAllocateInfo-pSetLayouts-parameter", "pSetLayouts must be a valid pointer to an array of descriptorSetCount valid VkDescriptorSetLayout handles", "1.3-extensions"}, {"VUID-VkDescriptorSetAllocateInfo-sType-sType", "sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO", "1.3-extensions"}, {"VUID-VkDescriptorSetAllocateInfo-sType-unique", "The sType value of each struct in the pNext chain must be unique", "1.3-extensions"}, @@ -2275,6 +2278,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-flags-03003", "If VkDescriptorSetLayoutCreateInfo::flags includes VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT, VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT, or VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT", "1.3-extensions"}, {"VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-03004", "If an element of pBindingFlags includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, then all other elements of VkDescriptorSetLayoutCreateInfo::pBindings must have a smaller value of binding", "1.3-extensions"}, {"VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-03015", "If an element of pBindingFlags includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, that element's descriptorType must not be VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC", "1.3-extensions"}, + {"VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-09379", "If an element of pBindingFlags includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, then it must be the element with the the highest binding number", "1.3-extensions"}, {"VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-parameter", "If bindingCount is not 0, pBindingFlags must be a valid pointer to an array of bindingCount valid combinations of VkDescriptorBindingFlagBits values", "1.3-extensions"}, {"VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-sType-sType", "sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO", "1.3-extensions"}, {"VUID-VkDescriptorSetLayoutCreateInfo-binding-00279", "The VkDescriptorSetLayoutBinding::binding members of the elements of the pBindings array must each have different values", "1.3-extensions"}, @@ -2363,7 +2367,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-parameter", "If enabledExtensionCount is not 0, ppEnabledExtensionNames must be a valid pointer to an array of enabledExtensionCount null-terminated UTF-8 strings", "1.3-extensions"}, {"VUID-VkDeviceCreateInfo-ppEnabledLayerNames-parameter", "If enabledLayerCount is not 0, ppEnabledLayerNames must be a valid pointer to an array of enabledLayerCount null-terminated UTF-8 strings", "1.3-extensions"}, {"VUID-VkDeviceCreateInfo-queueCreateInfoCount-arraylength", "queueCreateInfoCount must be greater than 0", "1.3-extensions"}, - {"VUID-VkDeviceCreateInfo-queueFamilyIndex-02802", "The queueFamilyIndex member of each element of pQueueCreateInfos must be unique within pQueueCreateInfos, except that two members can share the same queueFamilyIndex if one describes protected-capable queues and one describes queues that are not protected-capable", "1.3-extensions"}, + {"VUID-VkDeviceCreateInfo-queueFamilyIndex-02802", "The queueFamilyIndex member of each element of pQueueCreateInfos must be unique within pQueueCreateInfos , except that two members can share the same queueFamilyIndex if one describes protected-capable queues and one describes queues that are not protected-capable", "1.3-extensions"}, {"VUID-VkDeviceCreateInfo-sType-sType", "sType must be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO", "1.3-extensions"}, {"VUID-VkDeviceCreateInfo-sType-unique", "The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkDeviceDeviceMemoryReportCreateInfoEXT or VkDevicePrivateDataCreateInfo", "1.3-extensions"}, {"VUID-VkDeviceCreateInfo-shadingRateImage-04478", "If the shadingRateImage feature is enabled, the pipelineFragmentShadingRate feature must not be enabled", "1.3-extensions"}, @@ -3205,7 +3209,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524", "If the pipeline requires fragment shader state, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, the fragment shader code must not statically use the extended instruction InterpolateAtSample", "1.3-extensions"}, {"VUID-VkGraphicsPipelineCreateInfo-sampleShadingEnable-04900", "If the pipeline requires fragment shader state, and the VK_QCOM_render_pass_shader_resolve extension is enabled, and if the subpass description contains VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then sampleShadingEnable must be false", "1.3-extensions"}, {"VUID-VkGraphicsPipelineCreateInfo-shaderTessellationAndGeometryPointSize-08776", "If the pipeline is being created with a Geometry Execution Model, uses the OutputPoints Execution Mode, and shaderTessellationAndGeometryPointSize is enabled, a PointSize decorated variable must be written to for every vertex emitted if maintenance5 is not enabled", "1.3-extensions"}, - {"VUID-VkGraphicsPipelineCreateInfo-stage-02096", "If the pipeline requires pre-rasterization shader state the stage member of one element of pStages must be either VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT", "1.3-extensions"}, + {"VUID-VkGraphicsPipelineCreateInfo-stage-02096", "If the pipeline requires pre-rasterization shader state the stage member of one element of pStages must be VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT", "1.3-extensions"}, {"VUID-VkGraphicsPipelineCreateInfo-stage-06897", "If the pipeline requires fragment shader state and/or pre-rasterization shader state, any value of stage must not be set in more than one element of pStages", "1.3-extensions"}, {"VUID-VkGraphicsPipelineCreateInfo-stageCount-06604", "If the pipeline requires pre-rasterization shader state or fragment shader state, stageCount must be greater than 0", "1.3-extensions"}, {"VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767", "If the pipeline requires pre-rasterization shader state, the stippledLineEnable member of VkPipelineRasterizationLineStateCreateInfoEXT is VK_TRUE, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_LINE_STIPPLE_EXT, then the lineStippleFactor member of VkPipelineRasterizationLineStateCreateInfoEXT must be in the range [1,256]", "1.3-extensions"}, @@ -3272,13 +3276,13 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkIOSSurfaceCreateInfoMVK-sType-sType", "sType must be VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK", "1.3-extensions"}, {"VUID-VkImageBlit-aspectMask-00238", "The aspectMask member of srcSubresource and dstSubresource must match", "1.3-extensions"}, {"VUID-VkImageBlit-dstSubresource-parameter", "dstSubresource must be a valid VkImageSubresourceLayers structure", "1.3-extensions"}, - {"VUID-VkImageBlit-layerCount-08800", "If neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members must match", "1.3-extensions"}, + {"VUID-VkImageBlit-layerCount-08800", "If neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members of srcSubresource or dstSubresource must match", "1.3-extensions"}, {"VUID-VkImageBlit-layerCount-08801", "If one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer", "1.3-extensions"}, {"VUID-VkImageBlit-maintenance5-08799", "If the maintenance5 feature is not enabled, the layerCount member of srcSubresource or dstSubresource must not be VK_REMAINING_ARRAY_LAYERS", "1.3-extensions"}, {"VUID-VkImageBlit-srcSubresource-parameter", "srcSubresource must be a valid VkImageSubresourceLayers structure", "1.3-extensions"}, {"VUID-VkImageBlit2-aspectMask-00238", "The aspectMask member of srcSubresource and dstSubresource must match", "1.3-extensions"}, {"VUID-VkImageBlit2-dstSubresource-parameter", "dstSubresource must be a valid VkImageSubresourceLayers structure", "1.3-extensions"}, - {"VUID-VkImageBlit2-layerCount-08800", "If neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members must match", "1.3-extensions"}, + {"VUID-VkImageBlit2-layerCount-08800", "If neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members of srcSubresource or dstSubresource must match", "1.3-extensions"}, {"VUID-VkImageBlit2-layerCount-08801", "If one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer", "1.3-extensions"}, {"VUID-VkImageBlit2-maintenance5-08799", "If the maintenance5 feature is not enabled, the layerCount member of srcSubresource or dstSubresource must not be VK_REMAINING_ARRAY_LAYERS", "1.3-extensions"}, {"VUID-VkImageBlit2-pNext-pNext", "pNext must be NULL or a pointer to a valid instance of VkCopyCommandTransformInfoQCOM", "1.3-extensions"}, @@ -3306,15 +3310,15 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-parameter", "pFormatConstraints must be a valid pointer to an array of formatConstraintsCount valid VkImageFormatConstraintsInfoFUCHSIA structures", "1.3-extensions"}, {"VUID-VkImageConstraintsInfoFUCHSIA-pNext-pNext", "pNext must be NULL", "1.3-extensions"}, {"VUID-VkImageConstraintsInfoFUCHSIA-sType-sType", "sType must be VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA", "1.3-extensions"}, - {"VUID-VkImageCopy-apiVersion-07940", "If the VK_KHR_sampler_ycbcr_conversion extension is not enabled and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the aspectMask member of srcSubresource and dstSubresource must match", "1.3-extensions"}, - {"VUID-VkImageCopy-apiVersion-07941", "If the VK_KHR_maintenance1 extension is not enabled and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the layerCount member of srcSubresource and dstSubresource must match", "1.3-extensions"}, + {"VUID-VkImageCopy-apiVersion-07940", "If the VK_KHR_sampler_ycbcr_conversion extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the aspectMask member of srcSubresource and dstSubresource must match", "1.3-extensions"}, + {"VUID-VkImageCopy-apiVersion-07941", "If the VK_KHR_maintenance1 extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the layerCount member of srcSubresource and dstSubresource must match", "1.3-extensions"}, {"VUID-VkImageCopy-dstSubresource-parameter", "dstSubresource must be a valid VkImageSubresourceLayers structure", "1.3-extensions"}, {"VUID-VkImageCopy-extent-06668", "extent.width must not be 0", "1.3-extensions"}, {"VUID-VkImageCopy-extent-06669", "extent.height must not be 0", "1.3-extensions"}, {"VUID-VkImageCopy-extent-06670", "extent.depth must not be 0", "1.3-extensions"}, {"VUID-VkImageCopy-srcSubresource-parameter", "srcSubresource must be a valid VkImageSubresourceLayers structure", "1.3-extensions"}, - {"VUID-VkImageCopy2-apiVersion-07940", "If the VK_KHR_sampler_ycbcr_conversion extension is not enabled and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the aspectMask member of srcSubresource and dstSubresource must match", "1.3-extensions"}, - {"VUID-VkImageCopy2-apiVersion-07941", "If the VK_KHR_maintenance1 extension is not enabled and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the layerCount member of srcSubresource and dstSubresource must match", "1.3-extensions"}, + {"VUID-VkImageCopy2-apiVersion-07940", "If the VK_KHR_sampler_ycbcr_conversion extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the aspectMask member of srcSubresource and dstSubresource must match", "1.3-extensions"}, + {"VUID-VkImageCopy2-apiVersion-07941", "If the VK_KHR_maintenance1 extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the layerCount member of srcSubresource and dstSubresource must match", "1.3-extensions"}, {"VUID-VkImageCopy2-dstSubresource-parameter", "dstSubresource must be a valid VkImageSubresourceLayers structure", "1.3-extensions"}, {"VUID-VkImageCopy2-extent-06668", "extent.width must not be 0", "1.3-extensions"}, {"VUID-VkImageCopy2-extent-06669", "extent.height must not be 0", "1.3-extensions"}, @@ -3719,13 +3723,13 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkImagePlaneMemoryRequirementsInfo-sType-sType", "sType must be VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO", "1.3-extensions"}, {"VUID-VkImageResolve-aspectMask-00266", "The aspectMask member of srcSubresource and dstSubresource must only contain VK_IMAGE_ASPECT_COLOR_BIT", "1.3-extensions"}, {"VUID-VkImageResolve-dstSubresource-parameter", "dstSubresource must be a valid VkImageSubresourceLayers structure", "1.3-extensions"}, - {"VUID-VkImageResolve-layerCount-08803", "If neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members must match", "1.3-extensions"}, + {"VUID-VkImageResolve-layerCount-08803", "If neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount member of srcSubresource and dstSubresource must match", "1.3-extensions"}, {"VUID-VkImageResolve-layerCount-08804", "If one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer", "1.3-extensions"}, {"VUID-VkImageResolve-maintenance5-08802", "If the maintenance5 feature is not enabled, the layerCount member of srcSubresource or dstSubresource must not be VK_REMAINING_ARRAY_LAYERS", "1.3-extensions"}, {"VUID-VkImageResolve-srcSubresource-parameter", "srcSubresource must be a valid VkImageSubresourceLayers structure", "1.3-extensions"}, {"VUID-VkImageResolve2-aspectMask-00266", "The aspectMask member of srcSubresource and dstSubresource must only contain VK_IMAGE_ASPECT_COLOR_BIT", "1.3-extensions"}, {"VUID-VkImageResolve2-dstSubresource-parameter", "dstSubresource must be a valid VkImageSubresourceLayers structure", "1.3-extensions"}, - {"VUID-VkImageResolve2-layerCount-08803", "If neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members must match", "1.3-extensions"}, + {"VUID-VkImageResolve2-layerCount-08803", "If neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount member of srcSubresource and dstSubresource must match", "1.3-extensions"}, {"VUID-VkImageResolve2-layerCount-08804", "If one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer", "1.3-extensions"}, {"VUID-VkImageResolve2-maintenance5-08802", "If the maintenance5 feature is not enabled, the layerCount member of srcSubresource or dstSubresource must not be VK_REMAINING_ARRAY_LAYERS", "1.3-extensions"}, {"VUID-VkImageResolve2-pNext-pNext", "pNext must be NULL", "1.3-extensions"}, @@ -3785,7 +3789,6 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkImageViewCaptureDescriptorDataInfoEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-None-02273", "The format features of the resultant image view must contain at least one bit", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-components-parameter", "components must be a valid VkComponentMapping structure", "1.3-extensions"}, - {"VUID-VkImageViewCreateInfo-externalFormatResolve-09358", "If the externalFormatResolve feature is not enabled and usage contains VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, then the image view's format features must contain at least one of VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, or VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-flags-02572", "If the fragmentDensityMapDynamic feature is not enabled, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-flags-03567", "If the fragmentDensityMapDeferred feature is not enabled, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-flags-03568", "If flags contains VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT", "1.3-extensions"}, @@ -3799,7 +3802,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkImageViewCreateInfo-image-01003", "If image was not created with VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT then viewType must not be VK_IMAGE_VIEW_TYPE_CUBE or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-image-01020", "If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-image-01583", "If image was created with the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, format must be compatible with, or must be an uncompressed format that is size-compatible with, the format used to create image", "1.3-extensions"}, - {"VUID-VkImageViewCreateInfo-image-01586", "If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, if the format of the image is a multi-planar format, and if subresourceRange.aspectMask is one of the multi-planar aspect mask bits, then format must be compatible with the VkFormat for the plane of the image format indicated by subresourceRange.aspectMask, as defined in Compatible formats of planes of multi-planar formats", "1.3-extensions"}, + {"VUID-VkImageViewCreateInfo-image-01586", "If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, if the format of the image is a multi-planar format, and if subresourceRange.aspectMask is one of the multi-planar aspect mask bits, then format must be compatible with the VkFormat for the plane of the image format indicated by subresourceRange.aspectMask, as defined in Compatible Formats of Planes of Multi-Planar Formats", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-image-01761", "If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, but without the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, and if the format of the image is not a multi-planar format, format must be compatible with the format used to create image, as defined in Format Compatibility Classes", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-image-01762", "If image was not created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, or if the format of the image is a multi-planar format and if subresourceRange.aspectMask is VK_IMAGE_ASPECT_COLOR_BIT, format must be identical to the format used to create image", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-image-02086", "If image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, viewType must be VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY", "1.3-extensions"}, @@ -3823,14 +3826,12 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkImageViewCreateInfo-image-08957", "If image has an QNX Screen external format, format must be VK_FORMAT_UNDEFINED", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-image-08958", "If image has an QNX Screen external format, the pNext chain must include a VkSamplerYcbcrConversionInfo structure with a conversion object created with the same external format as image", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-image-08959", "If image has an QNX Screen external format, all members of components must be the identity swizzle", "1.3-extensions"}, - {"VUID-VkImageViewCreateInfo-image-09360", "If image was created with a VkExternalFormatANDROID::externalFormat value of 0 and usage contains VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, then the image view's format features must contain at least one of VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, or VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-image-parameter", "image must be a valid VkImage handle", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-imageViewFormatReinterpretation-04466", "If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageViewFormatReinterpretation is VK_FALSE, the VkFormat in format must not contain a different number of components, or a different number of bits in each component, than the format of the VkImage in image", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-imageViewFormatSwizzle-04465", "If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageViewFormatSwizzle is VK_FALSE, all elements of components must have the identity swizzle", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-imageViewType-04973", "If viewType is VK_IMAGE_VIEW_TYPE_1D, VK_IMAGE_VIEW_TYPE_2D, or VK_IMAGE_VIEW_TYPE_3D; and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, then subresourceRange.layerCount must be 1", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-imageViewType-04974", "If viewType is VK_IMAGE_VIEW_TYPE_1D, VK_IMAGE_VIEW_TYPE_2D, or VK_IMAGE_VIEW_TYPE_3D; and subresourceRange.layerCount is VK_REMAINING_ARRAY_LAYERS, then the remaining number of layers must be 1", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-invocationMask-04993", "If the invocationMask feature is enabled, and if image was created with usage containing VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI, format must be VK_FORMAT_R8_UINT", "1.3-extensions"}, - {"VUID-VkImageViewCreateInfo-nullColorAttachmentWithExternalFormatResolve-09359", "If the nullColorAttachmentWithExternalFormatResolve property is VK_FALSE and usage contains VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, then the image view's format features must contain at least one of VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, or VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-pNext-01585", "If a VkImageFormatListCreateInfo structure was included in the pNext chain of the VkImageCreateInfo structure used when creating image and VkImageFormatListCreateInfo::viewFormatCount is not zero then format must be one of the formats in VkImageFormatListCreateInfo::pViewFormats", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-pNext-01970", "If the pNext chain includes a VkSamplerYcbcrConversionInfo structure with a conversion value other than VK_NULL_HANDLE, all members of components must have the identity swizzle", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-pNext-02662", "If the pNext chain includes a VkImageViewUsageCreateInfo structure, and image was not created with a VkImageStencilUsageCreateInfo structure included in the pNext chain of VkImageCreateInfo, its usage member must not include any bits that were not set in the usage member of the VkImageCreateInfo structure used to create image", "1.3-extensions"}, @@ -3869,6 +3870,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkImageViewCreateInfo-usage-04550", "If the attachmentFragmentShadingRate feature is enabled, and the usage for the image view includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, then the image view's format features must contain VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-usage-04551", "If the attachmentFragmentShadingRate feature is enabled, the usage for the image view includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, and layeredShadingRateAttachments is VK_FALSE, subresourceRange.layerCount must be 1", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-usage-08931", "If usage contains VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, then the image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV", "1.3-extensions"}, + {"VUID-VkImageViewCreateInfo-usage-08932", "If usage contains VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, and any of the following is true: the externalFormatResolve feature is not enabled the nullColorAttachmentWithExternalFormatResolve property is VK_FALSE image was created with an VkExternalFormatANDROID::externalFormat value of 0 then the image view's format features must contain at least one of VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT or VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-viewType-01004", "If the imageCubeArray feature is not enabled, viewType must not be VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-viewType-02960", "If viewType is VK_IMAGE_VIEW_TYPE_CUBE and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.layerCount must be 6", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-viewType-02961", "If viewType is VK_IMAGE_VIEW_TYPE_CUBE_ARRAY and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.layerCount must be a multiple of 6", "1.3-extensions"}, @@ -4106,7 +4108,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"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.3-extensions"}, {"VUID-VkMemoryAllocateInfo-allocationSize-06382", "If the parameters define an import operation from an VkBufferCollectionFUCHSIA, allocationSize must match VkMemoryRequirements::size value retrieved by vkGetImageMemoryRequirements or vkGetBufferMemoryRequirements for image-based or buffer-based collections respectively", "1.3-extensions"}, {"VUID-VkMemoryAllocateInfo-allocationSize-07897", "If the parameters do not define an import or export operation, allocationSize must be greater than 0", "1.3-extensions"}, - {"VUID-VkMemoryAllocateInfo-allocationSize-07899", "If the parameters define an export operation and the handle type is not VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, allocationSize must be greater than 0", "1.3-extensions"}, + {"VUID-VkMemoryAllocateInfo-allocationSize-07899", "If the parameters define an export operation and the handle type is not VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID , allocationSize must be greater than 0", "1.3-extensions"}, {"VUID-VkMemoryAllocateInfo-allocationSize-07902", "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", "1.3-extensions"}, {"VUID-VkMemoryAllocateInfo-allocationSize-07903", "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 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.3-extensions"}, {"VUID-VkMemoryAllocateInfo-allocationSize-08942", "If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX, allocationSize must be the size returned by vkGetScreenBufferPropertiesQNX for the QNX Screen buffer", "1.3-extensions"}, @@ -4266,7 +4268,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkMemoryDedicatedAllocateInfo-buffer-01436", "If buffer is not VK_NULL_HANDLE, buffer must have been created without VK_BUFFER_CREATE_SPARSE_BINDING_BIT set in VkBufferCreateInfo::flags", "1.3-extensions"}, {"VUID-VkMemoryDedicatedAllocateInfo-buffer-01877", "If buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, and the external handle was created by the Vulkan API, then the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory", "1.3-extensions"}, {"VUID-VkMemoryDedicatedAllocateInfo-buffer-01879", "If buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory", "1.3-extensions"}, - {"VUID-VkMemoryDedicatedAllocateInfo-buffer-02965", "If buffer is not VK_NULL_HANDLE and the memory is not an imported Android Hardware Buffer or an imported QNX Screen buffer, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer", "1.3-extensions"}, + {"VUID-VkMemoryDedicatedAllocateInfo-buffer-02965", "If buffer is not VK_NULL_HANDLE and the memory is not an imported Android Hardware Buffer or an imported QNX Screen buffer , VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer", "1.3-extensions"}, {"VUID-VkMemoryDedicatedAllocateInfo-buffer-04752", "If buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA, the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory", "1.3-extensions"}, {"VUID-VkMemoryDedicatedAllocateInfo-buffer-parameter", "If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle", "1.3-extensions"}, {"VUID-VkMemoryDedicatedAllocateInfo-commonparent", "Both of buffer, and image that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", "1.3-extensions"}, @@ -4275,7 +4277,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkMemoryDedicatedAllocateInfo-image-01797", "If image is not VK_NULL_HANDLE, image must not have been created with VK_IMAGE_CREATE_DISJOINT_BIT set in VkImageCreateInfo::flags", "1.3-extensions"}, {"VUID-VkMemoryDedicatedAllocateInfo-image-01876", "If image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, and the external handle was created by the Vulkan API, then the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory", "1.3-extensions"}, {"VUID-VkMemoryDedicatedAllocateInfo-image-01878", "If image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory", "1.3-extensions"}, - {"VUID-VkMemoryDedicatedAllocateInfo-image-02964", "If image is not VK_NULL_HANDLE and the memory is not an imported Android Hardware Buffer or an imported QNX Screen buffer, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the image", "1.3-extensions"}, + {"VUID-VkMemoryDedicatedAllocateInfo-image-02964", "If image is not VK_NULL_HANDLE and the memory is not an imported Android Hardware Buffer or an imported QNX Screen buffer , VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the image", "1.3-extensions"}, {"VUID-VkMemoryDedicatedAllocateInfo-image-04751", "If image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA, the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory", "1.3-extensions"}, {"VUID-VkMemoryDedicatedAllocateInfo-image-parameter", "If image is not VK_NULL_HANDLE, image must be a valid VkImage handle", "1.3-extensions"}, {"VUID-VkMemoryDedicatedAllocateInfo-sType-sType", "sType must be VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO", "1.3-extensions"}, @@ -4845,7 +4847,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00606", "If the logicOp feature is not enabled, logicOpEnable must be VK_FALSE", "1.3-extensions"}, {"VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00607", "If logicOpEnable is VK_TRUE, logicOp must be a valid VkLogicOp value", "1.3-extensions"}, {"VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605", "If the independentBlend feature is not enabled, all elements of pAttachments must be identical", "1.3-extensions"}, - {"VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-07353", "If attachmentCount is not 0, and any of VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, or VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT are not set, pAttachments must be a valid pointer to an array of attachmentCount valid VkPipelineColorBlendAttachmentState structures", "1.3-extensions"}, + {"VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-07353", "If attachmentCount is not 0 , and any of VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, or VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT are not set, pAttachments must be a valid pointer to an array of attachmentCount valid VkPipelineColorBlendAttachmentState structures", "1.3-extensions"}, {"VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-parameter", "If attachmentCount is not 0, and pAttachments is not NULL, pAttachments must be a valid pointer to an array of attachmentCount valid VkPipelineColorBlendAttachmentState structures", "1.3-extensions"}, {"VUID-VkPipelineColorBlendStateCreateInfo-pNext-pNext", "Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineColorBlendAdvancedStateCreateInfoEXT or VkPipelineColorWriteCreateInfoEXT", "1.3-extensions"}, {"VUID-VkPipelineColorBlendStateCreateInfo-rasterizationOrderColorAttachmentAccess-06465", "If the rasterizationOrderColorAttachmentAccess feature is not enabled, flags must not include VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT", "1.3-extensions"}, @@ -5086,9 +5088,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkPipelineShaderStageCreateInfo-stage-06685", "If stage is VK_SHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes to FragDepth in any execution path, all execution paths that are not exclusive to helper invocations must either discard the fragment, or write or initialize the value of FragDepth", "1.3-extensions"}, {"VUID-VkPipelineShaderStageCreateInfo-stage-06686", "If stage is VK_SHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes to FragStencilRefEXT in any execution path, all execution paths that are not exclusive to helper invocations must either discard the fragment, or write or initialize the value of FragStencilRefEXT", "1.3-extensions"}, {"VUID-VkPipelineShaderStageCreateInfo-stage-06844", "If a shader module identifier is specified for this stage, a VkShaderModuleCreateInfo structure must not be present in the pNext chain", "1.3-extensions"}, - {"VUID-VkPipelineShaderStageCreateInfo-stage-06845", "If a shader module identifier is not specified for this stage, module must be a valid VkShaderModule or there must be a valid VkShaderModuleCreateInfo structure in the pNext chain", "1.3-extensions"}, + {"VUID-VkPipelineShaderStageCreateInfo-stage-06845", "If a shader module identifier is not specified for this stage, module must be a valid VkShaderModule, or there must be a valid VkShaderModuleCreateInfo structure in the pNext chain", "1.3-extensions"}, {"VUID-VkPipelineShaderStageCreateInfo-stage-06848", "If a shader module identifier is specified for this stage, module must be VK_NULL_HANDLE", "1.3-extensions"}, - {"VUID-VkPipelineShaderStageCreateInfo-stage-08771", "If a shader module identifier is not specified for this stage, and neither the maintenance5 nor graphicsPipelineLibrary feature are enabled, module must be a valid VkShaderModule", "1.3-extensions"}, + {"VUID-VkPipelineShaderStageCreateInfo-stage-08771", "If a shader module identifier is not specified for this stage, module must be a valid VkShaderModule if none of the following features are enabled: graphicsPipelineLibrary maintenance5", "1.3-extensions"}, {"VUID-VkPipelineShaderStageCreateInfo-stage-parameter", "stage must be a valid VkShaderStageFlagBits value", "1.3-extensions"}, {"VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-identifierSize-06852", "identifierSize must be less-or-equal to VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT", "1.3-extensions"}, {"VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pIdentifier-parameter", "If identifierSize is not 0, pIdentifier must be a valid pointer to an array of identifierSize uint8_t values", "1.3-extensions"}, @@ -5442,6 +5444,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkRenderPassCreateInfo2-pAttachments-02523", "For any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL", "1.3-extensions"}, {"VUID-VkRenderPassCreateInfo2-pAttachments-04585", "If any element of pAttachments is used as a fragment shading rate attachment in any subpass, it must not be used as any other attachment in the render pass", "1.3-extensions"}, {"VUID-VkRenderPassCreateInfo2-pAttachments-04586", "If any element of pAttachments is used as a fragment shading rate attachment in any subpass, it must have an image format whose potential format features contain VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", "1.3-extensions"}, + {"VUID-VkRenderPassCreateInfo2-pAttachments-09387", "If any element of pAttachments is used as a fragment shading rate attachment, the loadOp for that attachment must not be VK_ATTACHMENT_LOAD_OP_CLEAR", "1.3-extensions"}, {"VUID-VkRenderPassCreateInfo2-pAttachments-parameter", "If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkAttachmentDescription2 structures", "1.3-extensions"}, {"VUID-VkRenderPassCreateInfo2-pCorrelatedViewMasks-03056", "The set of bits included in any element of pCorrelatedViewMasks must not overlap with the set of bits included in any other element of pCorrelatedViewMasks", "1.3-extensions"}, {"VUID-VkRenderPassCreateInfo2-pCorrelatedViewMasks-parameter", "If correlatedViewMaskCount is not 0, pCorrelatedViewMasks must be a valid pointer to an array of correlatedViewMaskCount uint32_t values", "1.3-extensions"}, @@ -5561,6 +5564,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkRenderingInfo-colorAttachmentCount-06101", "If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, if the resolveMode member of that element of pColorAttachments is not VK_RESOLVE_MODE_NONE, its resolveImageLayout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", "1.3-extensions"}, {"VUID-VkRenderingInfo-colorAttachmentCount-06106", "colorAttachmentCount must be less than or equal to VkPhysicalDeviceLimits::maxColorAttachments", "1.3-extensions"}, {"VUID-VkRenderingInfo-colorAttachmentCount-09320", "If colorAttachmentCount is not 1, the resolveMode member of any element of pColorAttachments must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID", "1.3-extensions"}, + {"VUID-VkRenderingInfo-flags-09381", "If flags includes VK_RENDERING_CONTENTS_INLINE_BIT_EXT then the nestedCommandBuffer feature must be enabled", "1.3-extensions"}, {"VUID-VkRenderingInfo-flags-parameter", "flags must be a valid combination of VkRenderingFlagBits values", "1.3-extensions"}, {"VUID-VkRenderingInfo-imageView-06107", "If the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, and the fragmentDensityMapNonSubsampledImages feature is not enabled, valid imageView and resolveImageView members of pDepthAttachment, pStencilAttachment, and each element of pColorAttachments must be a VkImageView created with VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", "1.3-extensions"}, {"VUID-VkRenderingInfo-imageView-06108", "If the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, and viewMask is not 0, imageView must have a layerCount greater than or equal to the index of the most significant bit in viewMask", "1.3-extensions"}, @@ -5952,6 +5956,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkSparseImageMemoryBind-extent-01108", "extent.width must either be a multiple of the sparse image block width of the image, or else (extent.width + offset.x) must equal the width of the image subresource", "1.3-extensions"}, {"VUID-VkSparseImageMemoryBind-extent-01110", "extent.height must either be a multiple of the sparse image block height of the image, or else (extent.height + offset.y) must equal the height of the image subresource", "1.3-extensions"}, {"VUID-VkSparseImageMemoryBind-extent-01112", "extent.depth must either be a multiple of the sparse image block depth of the image, or else (extent.depth + offset.z) must equal the depth of the image subresource", "1.3-extensions"}, + {"VUID-VkSparseImageMemoryBind-extent-09388", "extent.width must be greater than 0", "1.3-extensions"}, + {"VUID-VkSparseImageMemoryBind-extent-09389", "extent.height must be greater than 0", "1.3-extensions"}, + {"VUID-VkSparseImageMemoryBind-extent-09390", "extent.depth must be greater than 0", "1.3-extensions"}, {"VUID-VkSparseImageMemoryBind-flags-parameter", "flags must be a valid combination of VkSparseMemoryBindFlagBits values", "1.3-extensions"}, {"VUID-VkSparseImageMemoryBind-memory-01104", "If the sparseResidencyAliased feature is not enabled, and if any other resources are bound to ranges of memory, the range of memory being bound must not overlap with those bound ranges", "1.3-extensions"}, {"VUID-VkSparseImageMemoryBind-memory-01105", "memory and memoryOffset must match the memory requirements of the calling command's image, as described in section Resource Memory Association", "1.3-extensions"}, @@ -6053,6 +6060,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"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.3-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.3-extensions"}, {"VUID-VkSubmitInfo2KHR-variableSampleLocations-06013", "If the variableSampleLocations limit is not supported, and any commandBuffer member of an element of pCommandBufferInfos contains any suspended render pass instances, where a graphics pipeline has been bound, any pipelines bound in the render pass instance that resumes it, or any subsequent render pass instances that resume from that one and so on, must use the same sample locations", "1.3-extensions"}, + {"VUID-VkSubpassBeginInfo-contents-09382", "If contents is VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT, then nestedCommandBuffer must be enabled", "1.3-extensions"}, {"VUID-VkSubpassBeginInfo-contents-parameter", "contents must be a valid VkSubpassContents value", "1.3-extensions"}, {"VUID-VkSubpassBeginInfo-pNext-pNext", "pNext must be NULL", "1.3-extensions"}, {"VUID-VkSubpassBeginInfo-sType-sType", "sType must be VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO", "1.3-extensions"}, @@ -6194,7 +6202,6 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkSubpassDescription2-externalFormatResolve-09335", "If externalFormatResolve is not enabled and pResolveAttachments is not NULL, for each resolve attachment that does not have the value VK_ATTACHMENT_UNUSED, the corresponding color attachment must not have the value VK_ATTACHMENT_UNUSED", "1.3-extensions"}, {"VUID-VkSubpassDescription2-externalFormatResolve-09338", "If externalFormatResolve is not enabled and pResolveAttachments is not NULL, for each resolve attachment that is not VK_ATTACHMENT_UNUSED, the corresponding color attachment must not have a sample count of VK_SAMPLE_COUNT_1_BIT", "1.3-extensions"}, {"VUID-VkSubpassDescription2-externalFormatResolve-09339", "If externalFormatResolve is not enabled, each element of pResolveAttachments must have the same VkFormat as its corresponding color attachment", "1.3-extensions"}, - {"VUID-VkSubpassDescription2-externalFormatResolve-09340", "If the externalFormatResolve feature is not enabled, all attachments in pInputAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain at least VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", "1.3-extensions"}, {"VUID-VkSubpassDescription2-externalFormatResolve-09344", "If externalFormatResolve is enabled, pResolveAttachments is not NULL, and colorAttachmentCount is not 1, any element of pResolveAttachments that is not VK_ATTACHMENT_UNUSED, must not have a format of VK_FORMAT_UNDEFINED", "1.3-extensions"}, {"VUID-VkSubpassDescription2-externalFormatResolve-09345", "If externalFormatResolve is enabled, pResolveAttachments is not NULL, any element of pResolveAttachments is not VK_ATTACHMENT_UNUSED and has a format of VK_FORMAT_UNDEFINED, and the corresponding element of pColorAttachments is not VK_ATTACHMENT_UNUSED, the color attachment must have a samples value of 1", "1.3-extensions"}, {"VUID-VkSubpassDescription2-externalFormatResolve-09346", "If externalFormatResolve is enabled, pResolveAttachments is not NULL, and any element of pResolveAttachments is not VK_ATTACHMENT_UNUSED and has a format of VK_FORMAT_UNDEFINED, viewMask must be 0", "1.3-extensions"}, @@ -6212,14 +6219,13 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkSubpassDescription2-multiview-06558", "If the multiview feature is not enabled, viewMask must be 0", "1.3-extensions"}, {"VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09336", "If the nullColorAttachmentWithExternalFormatResolve property is VK_FALSE and pResolveAttachments is not NULL, for each resolve attachment that has a format of VK_FORMAT_UNDEFINED, the corresponding color attachment must not have the value VK_ATTACHMENT_UNUSED", "1.3-extensions"}, {"VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09337", "If the nullColorAttachmentWithExternalFormatResolve property is VK_TRUE and pResolveAttachments is not NULL, for each resolve attachment that has a format of VK_FORMAT_UNDEFINED, the corresponding color attachment must have the value VK_ATTACHMENT_UNUSED", "1.3-extensions"}, - {"VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09341", "If the nullColorAttachmentWithExternalFormatResolve property is VK_FALSE, all attachments in pInputAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain at least VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", "1.3-extensions"}, {"VUID-VkSubpassDescription2-pColorAttachments-02898", "All attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", "1.3-extensions"}, {"VUID-VkSubpassDescription2-pColorAttachments-03070", "If the VK_AMD_mixed_attachment_samples extension is enabled, all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have a sample count that is smaller than or equal to the sample count of pDepthStencilAttachment if it is not VK_ATTACHMENT_UNUSED", "1.3-extensions"}, {"VUID-VkSubpassDescription2-pColorAttachments-parameter", "If colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference2 structures", "1.3-extensions"}, {"VUID-VkSubpassDescription2-pDepthStencilAttachment-02900", "If pDepthStencilAttachment is not NULL and the attachment is not VK_ATTACHMENT_UNUSED then it must have an image format whose potential format features contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", "1.3-extensions"}, {"VUID-VkSubpassDescription2-pDepthStencilAttachment-04440", "An attachment must not be used in both pDepthStencilAttachment and pColorAttachments", "1.3-extensions"}, {"VUID-VkSubpassDescription2-pDepthStencilAttachment-parameter", "If pDepthStencilAttachment is not NULL, pDepthStencilAttachment must be a valid pointer to a valid VkAttachmentReference2 structure", "1.3-extensions"}, - {"VUID-VkSubpassDescription2-pInputAttachments-09342", "All attachments in pInputAttachments that are not VK_ATTACHMENT_UNUSED and do not have a non-zero value of VkExternalFormatANDROID::externalFormat must have image formats whose potential format features contain at least VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", "1.3-extensions"}, + {"VUID-VkSubpassDescription2-pInputAttachments-02897", "All attachments in pInputAttachments that are not VK_ATTACHMENT_UNUSED and any of the following is true: the externalFormatResolve feature is not enabled the nullColorAttachmentWithExternalFormatResolve property is VK_FALSE does not have a non-zero value of VkExternalFormatANDROID::externalFormat must have image formats whose potential format features contain at least VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", "1.3-extensions"}, {"VUID-VkSubpassDescription2-pInputAttachments-parameter", "If inputAttachmentCount is not 0, pInputAttachments must be a valid pointer to an array of inputAttachmentCount valid VkAttachmentReference2 structures", "1.3-extensions"}, {"VUID-VkSubpassDescription2-pNext-06870", "If the pNext chain includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then all attachments in pColorAttachments and pDepthStencilAttachment that are not VK_ATTACHMENT_UNUSED must have a sample count that is either VK_SAMPLE_COUNT_1_BIT or equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", "1.3-extensions"}, {"VUID-VkSubpassDescription2-pNext-06871", "If the pNext chain includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, and pDepthStencilAttachment is not NULL, does not have the value VK_ATTACHMENT_UNUSED, and has a sample count of VK_SAMPLE_COUNT_1_BIT, the pNext chain must also include a VkSubpassDescriptionDepthStencilResolve structure with pDepthStencilResolveAttachment that is either NULL or has the value VK_ATTACHMENT_UNUSED", "1.3-extensions"}, @@ -7930,8 +7936,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdCopyBufferToImage-dstImage-07966", "If dstImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"}, {"VUID-vkCmdCopyBufferToImage-dstImage-07969", "dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", "1.3-extensions"}, {"VUID-vkCmdCopyBufferToImage-dstImage-07973", "dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT", "1.3-extensions"}, - {"VUID-vkCmdCopyBufferToImage-dstImage-07975", "If dstImage 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 texel block size", "1.3-extensions"}, - {"VUID-vkCmdCopyBufferToImage-dstImage-07976", "If dstImage 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.3-extensions"}, + {"VUID-vkCmdCopyBufferToImage-dstImage-07975", "If dstImage does not have either a depth/stencil format or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the texel block size", "1.3-extensions"}, + {"VUID-vkCmdCopyBufferToImage-dstImage-07976", "If dstImage 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.3-extensions"}, {"VUID-vkCmdCopyBufferToImage-dstImage-07978", "If dstImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4", "1.3-extensions"}, {"VUID-vkCmdCopyBufferToImage-dstImage-07979", "If dstImage 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.3-extensions"}, {"VUID-vkCmdCopyBufferToImage-dstImage-07980", "If dstImage 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.3-extensions"}, @@ -7939,7 +7945,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdCopyBufferToImage-dstImage-07983", "If dstImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1", "1.3-extensions"}, {"VUID-vkCmdCopyBufferToImage-dstImage-parameter", "dstImage must be a valid VkImage handle", "1.3-extensions"}, {"VUID-vkCmdCopyBufferToImage-dstImageLayout-00180", "dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice", "1.3-extensions"}, - {"VUID-vkCmdCopyBufferToImage-dstImageLayout-01396", "dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR", "1.3-extensions"}, + {"VUID-vkCmdCopyBufferToImage-dstImageLayout-01396", "dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL", "1.3-extensions"}, {"VUID-vkCmdCopyBufferToImage-dstImageLayout-parameter", "dstImageLayout must be a valid VkImageLayout value", "1.3-extensions"}, {"VUID-vkCmdCopyBufferToImage-imageOffset-07738", "The imageOffset and imageExtent 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.3-extensions"}, {"VUID-vkCmdCopyBufferToImage-imageOffset-09104", "For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of dstImage", "1.3-extensions"}, @@ -7972,9 +7978,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdCopyBufferToImage2-renderpass", "This command must only be called outside of a render pass instance", "1.3-extensions"}, {"VUID-vkCmdCopyBufferToImage2-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"}, {"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.3-extensions"}, - {"VUID-vkCmdCopyImage-apiVersion-07932", "If the VK_KHR_maintenance1 extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and either srcImage or dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must each be 0, and srcSubresource.layerCount and dstSubresource.layerCount must each be 1", "1.3-extensions"}, - {"VUID-vkCmdCopyImage-apiVersion-07933", "If the VK_KHR_maintenance1 extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, srcImage and dstImage must have the same VkImageType", "1.3-extensions"}, - {"VUID-vkCmdCopyImage-apiVersion-08969", "If the VK_KHR_maintenance1 extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and srcImage or dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1", "1.3-extensions"}, + {"VUID-vkCmdCopyImage-apiVersion-07932", "If the VK_KHR_maintenance1 extension is not enabled, or VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and either srcImage or dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must both be 0, and srcSubresource.layerCount and dstSubresource.layerCount must both be 1", "1.3-extensions"}, + {"VUID-vkCmdCopyImage-apiVersion-07933", "If the VK_KHR_maintenance1 extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, srcImage and dstImage must have the same VkImageType", "1.3-extensions"}, + {"VUID-vkCmdCopyImage-apiVersion-08969", "If the VK_KHR_maintenance1 extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, srcImage or dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1", "1.3-extensions"}, {"VUID-vkCmdCopyImage-aspect-06662", "If the aspect member of any element of pRegions includes any flag other than VK_IMAGE_ASPECT_STENCIL_BIT or srcImage was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_SRC_BIT must have been included in the VkImageCreateInfo::usage used to create srcImage", "1.3-extensions"}, {"VUID-vkCmdCopyImage-aspect-06663", "If the aspect member of any element of pRegions includes any flag other than VK_IMAGE_ASPECT_STENCIL_BIT or dstImage was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create dstImage", "1.3-extensions"}, {"VUID-vkCmdCopyImage-aspect-06664", "If the aspect member of any element of pRegions includes VK_IMAGE_ASPECT_STENCIL_BIT, and srcImage was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_SRC_BIT must have been included in the VkImageStencilUsageCreateInfo::stencilUsage used to create srcImage", "1.3-extensions"}, @@ -8003,7 +8009,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdCopyImage-dstImage-08714", "If dstImage has a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be a single valid multi-planar aspect mask bit", "1.3-extensions"}, {"VUID-vkCmdCopyImage-dstImage-parameter", "dstImage must be a valid VkImage handle", "1.3-extensions"}, {"VUID-vkCmdCopyImage-dstImageLayout-00133", "dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice", "1.3-extensions"}, - {"VUID-vkCmdCopyImage-dstImageLayout-01395", "dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR", "1.3-extensions"}, + {"VUID-vkCmdCopyImage-dstImageLayout-01395", "dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL", "1.3-extensions"}, {"VUID-vkCmdCopyImage-dstImageLayout-parameter", "dstImageLayout must be a valid VkImageLayout value", "1.3-extensions"}, {"VUID-vkCmdCopyImage-dstOffset-00150", "For each element of pRegions, dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage", "1.3-extensions"}, {"VUID-vkCmdCopyImage-dstOffset-00151", "For each element of pRegions, dstOffset.y and (extent.height + dstOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage", "1.3-extensions"}, @@ -8040,12 +8046,12 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdCopyImage-srcImage-07966", "If srcImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"}, {"VUID-vkCmdCopyImage-srcImage-07969", "srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", "1.3-extensions"}, {"VUID-vkCmdCopyImage-srcImage-08713", "If srcImage has a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be a single valid multi-planar aspect mask bit", "1.3-extensions"}, - {"VUID-vkCmdCopyImage-srcImage-08793", "If srcImage and dstImage have the same VkImageType, and neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members must match", "1.3-extensions"}, + {"VUID-vkCmdCopyImage-srcImage-08793", "If srcImage and dstImage have the same VkImageType, for each element of pRegions, if neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members of srcSubresource or dstSubresource must match", "1.3-extensions"}, {"VUID-vkCmdCopyImage-srcImage-08794", "If srcImage and dstImage have the same VkImageType, and one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer", "1.3-extensions"}, {"VUID-vkCmdCopyImage-srcImage-09247", "If the VkFormat of each of srcImage and dstImage is a compressed image format, the formats must have the same texel block extent", "1.3-extensions"}, {"VUID-vkCmdCopyImage-srcImage-parameter", "srcImage must be a valid VkImage handle", "1.3-extensions"}, {"VUID-vkCmdCopyImage-srcImageLayout-00128", "srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice", "1.3-extensions"}, - {"VUID-vkCmdCopyImage-srcImageLayout-01917", "srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR", "1.3-extensions"}, + {"VUID-vkCmdCopyImage-srcImageLayout-01917", "srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL", "1.3-extensions"}, {"VUID-vkCmdCopyImage-srcImageLayout-parameter", "srcImageLayout must be a valid VkImageLayout value", "1.3-extensions"}, {"VUID-vkCmdCopyImage-srcOffset-00144", "For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage", "1.3-extensions"}, {"VUID-vkCmdCopyImage-srcOffset-00145", "For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage", "1.3-extensions"}, @@ -8101,8 +8107,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdCopyImageToBuffer-srcImage-07966", "If srcImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"}, {"VUID-vkCmdCopyImageToBuffer-srcImage-07969", "srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", "1.3-extensions"}, {"VUID-vkCmdCopyImageToBuffer-srcImage-07973", "srcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT", "1.3-extensions"}, - {"VUID-vkCmdCopyImageToBuffer-srcImage-07975", "If srcImage 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 texel block size", "1.3-extensions"}, - {"VUID-vkCmdCopyImageToBuffer-srcImage-07976", "If srcImage 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.3-extensions"}, + {"VUID-vkCmdCopyImageToBuffer-srcImage-07975", "If srcImage does not have either a depth/stencil format or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the texel block size", "1.3-extensions"}, + {"VUID-vkCmdCopyImageToBuffer-srcImage-07976", "If srcImage 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.3-extensions"}, {"VUID-vkCmdCopyImageToBuffer-srcImage-07978", "If srcImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4", "1.3-extensions"}, {"VUID-vkCmdCopyImageToBuffer-srcImage-07979", "If srcImage 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.3-extensions"}, {"VUID-vkCmdCopyImageToBuffer-srcImage-07980", "If srcImage 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.3-extensions"}, @@ -8110,7 +8116,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdCopyImageToBuffer-srcImage-07983", "If srcImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1", "1.3-extensions"}, {"VUID-vkCmdCopyImageToBuffer-srcImage-parameter", "srcImage must be a valid VkImage handle", "1.3-extensions"}, {"VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189", "srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice", "1.3-extensions"}, - {"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.3-extensions"}, + {"VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397", "srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL", "1.3-extensions"}, {"VUID-vkCmdCopyImageToBuffer-srcImageLayout-parameter", "srcImageLayout must be a valid VkImageLayout value", "1.3-extensions"}, {"VUID-vkCmdCopyImageToBuffer-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"}, {"VUID-vkCmdCopyImageToBuffer2-commandBuffer-01831", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image", "1.3-extensions"}, @@ -14956,6 +14962,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdExecuteCommands-commandBuffer-06533", "If vkCmdExecuteCommands is being called within a render pass instance and any recorded command in commandBuffer in the current subpass will write to an image subresource as an attachment, commands recorded in elements of pCommandBuffers must not read from the memory backing that image subresource in any other way", "1.3-extensions"}, {"VUID-vkCmdExecuteCommands-commandBuffer-06534", "If vkCmdExecuteCommands is being called within a render pass instance and any recorded command in commandBuffer in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, commands recorded in elements of pCommandBuffers must not write to that image subresource as an attachment", "1.3-extensions"}, {"VUID-vkCmdExecuteCommands-commandBuffer-07594", "commandBuffer must not have any queries other than VK_QUERY_TYPE_OCCLUSION and VK_QUERY_TYPE_PIPELINE_STATISTICS active", "1.3-extensions"}, + {"VUID-vkCmdExecuteCommands-commandBuffer-09375", "commandBuffer must not be a secondary command buffer unless the nestedCommandBuffer feature is enabled", "1.3-extensions"}, {"VUID-vkCmdExecuteCommands-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", "1.3-extensions"}, {"VUID-vkCmdExecuteCommands-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"}, {"VUID-vkCmdExecuteCommands-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"}, @@ -14966,6 +14973,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdExecuteCommands-flags-06026", "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, the flags member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the VkRenderingInfo::flags parameter to vkCmdBeginRendering, excluding VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT", "1.3-extensions"}, {"VUID-vkCmdExecuteCommands-imageView-06028", "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, if the imageView member of an element of the VkRenderingInfo::pColorAttachments parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the corresponding element of the pColorAttachmentFormats member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the format used to create that image view", "1.3-extensions"}, {"VUID-vkCmdExecuteCommands-imageView-07606", "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, if the imageView member of an element of the VkRenderingInfo::pColorAttachments parameter to vkCmdBeginRendering is VK_NULL_HANDLE, the corresponding element of the pColorAttachmentFormats member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be VK_FORMAT_UNDEFINED", "1.3-extensions"}, + {"VUID-vkCmdExecuteCommands-nestedCommandBuffer-09376", "If the nestedCommandBuffer feature is enabled, the command buffer nesting level of each element of pCommandBuffers must be less than maxCommandBufferNestingLevel", "1.3-extensions"}, + {"VUID-vkCmdExecuteCommands-nestedCommandBufferRendering-09377", "If the nestedCommandBufferRendering feature is not enabled, and commandBuffer is a secondary command buffer, commandBuffer must not have been recorded with VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT", "1.3-extensions"}, + {"VUID-vkCmdExecuteCommands-nestedCommandBufferSimultaneousUse-09378", "If the nestedCommandBufferSimultaneousUse feature is not enabled, and commandBuffer is a secondary command buffer, each element of pCommandBuffers must not have been recorded with VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT", "1.3-extensions"}, {"VUID-vkCmdExecuteCommands-pBeginInfo-06020", "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRenderPass, the render passes specified in the pBeginInfo->pInheritanceInfo->renderPass members of the vkBeginCommandBuffer commands used to begin recording each element of pCommandBuffers must be compatible with the current render pass", "1.3-extensions"}, {"VUID-vkCmdExecuteCommands-pBeginInfo-06025", "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, the render passes specified in the pBeginInfo->pInheritanceInfo->renderPass members of the vkBeginCommandBuffer commands used to begin recording each element of pCommandBuffers must be VK_NULL_HANDLE", "1.3-extensions"}, {"VUID-vkCmdExecuteCommands-pCommandBuffers-00088", "Each element of pCommandBuffers must have been allocated with a level of VK_COMMAND_BUFFER_LEVEL_SECONDARY", "1.3-extensions"}, @@ -15882,7 +15892,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdSetDiscardRectangleModeEXT-discardRectangleMode-parameter", "discardRectangleMode must be a valid VkDiscardRectangleModeEXT value", "1.3-extensions"}, {"VUID-vkCmdSetDiscardRectangleModeEXT-specVersion-07852", "The VK_EXT_discard_rectangles extension must be enabled, and the implementation must support at least specVersion 2 of this extension", "1.3-extensions"}, {"VUID-vkCmdSetDiscardRectangleModeEXT-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"}, - {"VUID-vkCmdSetEvent-commandBuffer-01152", "commandBuffer's current device mask must include exactly one physical device", "1.3-extensions"}, + {"VUID-vkCmdSetEvent-commandBuffer-01152", "The current device mask of commandBuffer must include exactly one physical device", "1.3-extensions"}, {"VUID-vkCmdSetEvent-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations", "1.3-extensions"}, {"VUID-vkCmdSetEvent-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"}, {"VUID-vkCmdSetEvent-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"}, @@ -15909,10 +15919,12 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdSetEvent2-commonparent", "Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice", "1.3-extensions"}, {"VUID-vkCmdSetEvent2-dependencyFlags-03825", "The dependencyFlags member of pDependencyInfo must be 0", "1.3-extensions"}, {"VUID-vkCmdSetEvent2-dstStageMask-03828", "The dstStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfo must only include pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from", "1.3-extensions"}, + {"VUID-vkCmdSetEvent2-dstStageMask-09392", "The dstStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfo must not include VK_PIPELINE_STAGE_2_HOST_BIT", "1.3-extensions"}, {"VUID-vkCmdSetEvent2-event-parameter", "event must be a valid VkEvent handle", "1.3-extensions"}, {"VUID-vkCmdSetEvent2-pDependencyInfo-parameter", "pDependencyInfo must be a valid pointer to a valid VkDependencyInfo structure", "1.3-extensions"}, {"VUID-vkCmdSetEvent2-renderpass", "This command must only be called outside of a render pass instance", "1.3-extensions"}, {"VUID-vkCmdSetEvent2-srcStageMask-03827", "The srcStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfo must only include pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from", "1.3-extensions"}, + {"VUID-vkCmdSetEvent2-srcStageMask-09391", "The srcStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfo must not include VK_PIPELINE_STAGE_2_HOST_BIT", "1.3-extensions"}, {"VUID-vkCmdSetEvent2-synchronization2-03824", "The synchronization2 feature must be enabled", "1.3-extensions"}, {"VUID-vkCmdSetExclusiveScissorEnableNV-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"}, {"VUID-vkCmdSetExclusiveScissorEnableNV-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"}, @@ -17035,6 +17047,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCreateAndroidSurfaceKHR-pSurface-parameter", "pSurface must be a valid pointer to a VkSurfaceKHR handle", "1.3-extensions"}, {"VUID-vkCreateBuffer-device-parameter", "device must be a valid VkDevice handle", "1.3-extensions"}, {"VUID-vkCreateBuffer-flags-00911", "If the flags member of pCreateInfo includes VK_BUFFER_CREATE_SPARSE_BINDING_BIT, and the extendedSparseAddressSpace feature is not enabled, creating this VkBuffer must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed VkPhysicalDeviceLimits::sparseAddressSpaceSize", "1.3-extensions"}, + {"VUID-vkCreateBuffer-flags-09383", "If the flags member of pCreateInfo includes VK_BUFFER_CREATE_SPARSE_BINDING_BIT, the extendedSparseAddressSpace feature is enabled, and the usage member of pCreateInfo contains bits not in VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseBufferUsageFlags, creating this VkBuffer must not cause the total required sparse memory for all currently valid sparse resources on the device, excluding VkBuffer created with usage member of pCreateInfo containing bits in VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseBufferUsageFlags and VkImage created with usage member of pCreateInfo containing bits in VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseImageUsageFlags, to exceed VkPhysicalDeviceLimits::sparseAddressSpaceSize", "1.3-extensions"}, + {"VUID-vkCreateBuffer-flags-09384", "If the flags member of pCreateInfo includes VK_BUFFER_CREATE_SPARSE_BINDING_BIT and the extendedSparseAddressSpace feature is enabled, creating this VkBuffer must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseAddressSpaceSize", "1.3-extensions"}, {"VUID-vkCreateBuffer-pAllocator-parameter", "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", "1.3-extensions"}, {"VUID-vkCreateBuffer-pBuffer-parameter", "pBuffer must be a valid pointer to a VkBuffer handle", "1.3-extensions"}, {"VUID-vkCreateBuffer-pCreateInfo-parameter", "pCreateInfo must be a valid pointer to a valid VkBufferCreateInfo structure", "1.3-extensions"}, @@ -17157,6 +17171,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCreateIOSSurfaceMVK-pSurface-parameter", "pSurface must be a valid pointer to a VkSurfaceKHR handle", "1.3-extensions"}, {"VUID-vkCreateImage-device-parameter", "device must be a valid VkDevice handle", "1.3-extensions"}, {"VUID-vkCreateImage-flags-00939", "If the flags member of pCreateInfo includes VK_IMAGE_CREATE_SPARSE_BINDING_BIT, and the extendedSparseAddressSpace feature is not enabled, creating this VkImage must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed VkPhysicalDeviceLimits::sparseAddressSpaceSize", "1.3-extensions"}, + {"VUID-vkCreateImage-flags-09385", "If the flags member of pCreateInfo includes VK_IMAGE_CREATE_SPARSE_BINDING_BIT, the extendedSparseAddressSpace feature is enabled, and the usage member of pCreateInfo contains bits not in VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseImageUsageFlags, creating this VkImage must not cause the total required sparse memory for all currently valid sparse resources on the device, excluding VkBuffer created with usage member of pCreateInfo containing bits in VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseBufferUsageFlags and VkImage created with usage member of pCreateInfo containing bits in VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseImageUsageFlags, to exceed VkPhysicalDeviceLimits::sparseAddressSpaceSize", "1.3-extensions"}, + {"VUID-vkCreateImage-flags-09386", "If the flags member of pCreateInfo includes VK_IMAGE_CREATE_SPARSE_BINDING_BIT and the extendedSparseAddressSpace feature is enabled, creating this VkImage must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseAddressSpaceSize", "1.3-extensions"}, {"VUID-vkCreateImage-pAllocator-parameter", "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", "1.3-extensions"}, {"VUID-vkCreateImage-pCreateInfo-parameter", "pCreateInfo must be a valid pointer to a valid VkImageCreateInfo structure", "1.3-extensions"}, {"VUID-vkCreateImage-pImage-parameter", "pImage must be a valid pointer to a VkImage handle", "1.3-extensions"}, @@ -17440,9 +17456,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parent", "If descriptorUpdateTemplate is a valid handle, it must have been created, allocated, or retrieved from device", "1.3-extensions"}, {"VUID-vkDestroyDescriptorUpdateTemplate-device-parameter", "device must be a valid VkDevice handle", "1.3-extensions"}, {"VUID-vkDestroyDescriptorUpdateTemplate-pAllocator-parameter", "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", "1.3-extensions"}, - {"VUID-vkDestroyDevice-device-00378", "All child objects created on device must have been destroyed prior to destroying device", "1.3-extensions"}, {"VUID-vkDestroyDevice-device-00379", "If VkAllocationCallbacks were provided when device was created, a compatible set of callbacks must be provided here", "1.3-extensions"}, {"VUID-vkDestroyDevice-device-00380", "If no VkAllocationCallbacks were provided when device was created, pAllocator must be NULL", "1.3-extensions"}, + {"VUID-vkDestroyDevice-device-05137", "All child objects created on device must have been destroyed prior to destroying device", "1.3-extensions"}, {"VUID-vkDestroyDevice-device-parameter", "If device is not NULL, device must be a valid VkDevice handle", "1.3-extensions"}, {"VUID-vkDestroyDevice-pAllocator-parameter", "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", "1.3-extensions"}, {"VUID-vkDestroyEvent-device-parameter", "device must be a valid VkDevice handle", "1.3-extensions"}, diff --git a/scripts/generators/object_tracker_generator.py b/scripts/generators/object_tracker_generator.py index 5e195b07756..b3e93179e21 100644 --- a/scripts/generators/object_tracker_generator.py +++ b/scripts/generators/object_tracker_generator.py @@ -39,7 +39,7 @@ def getUndestroyedObjectVUID(targetApiName: str, scope: str) -> str: case 'vulkan': per_scope = { 'instance': 'VUID-vkDestroyInstance-instance-00629', - 'device': 'VUID-vkDestroyDevice-device-00378' + 'device': 'VUID-vkDestroyDevice-device-05137' } return per_scope[scope] diff --git a/scripts/known_good.json b/scripts/known_good.json index f656c6b94f2..68625f728da 100755 --- a/scripts/known_good.json +++ b/scripts/known_good.json @@ -21,7 +21,7 @@ "sub_dir": "Vulkan-Headers", "build_dir": "Vulkan-Headers/build", "install_dir": "Vulkan-Headers/build/install", - "commit": "v1.3.267" + "commit": "v1.3.268" }, { "name": "Vulkan-Utility-Libraries", @@ -29,7 +29,7 @@ "sub_dir": "Vulkan-Utility-Libraries", "build_dir": "Vulkan-Utility-Libraries/build", "install_dir": "Vulkan-Utility-Libraries/build/install", - "commit": "v1.3.267", + "commit": "v1.3.268", "deps": [ { "var_name": "VULKAN_HEADERS_INSTALL_DIR", diff --git a/tests/layers/VkLayer_device_profile_api.json.in b/tests/layers/VkLayer_device_profile_api.json.in index d968aef88c2..d98bf2b76a3 100644 --- a/tests/layers/VkLayer_device_profile_api.json.in +++ b/tests/layers/VkLayer_device_profile_api.json.in @@ -4,7 +4,7 @@ "name": "VK_LAYER_LUNARG_device_profile_api", "type": "GLOBAL", "library_path": "@JSON_LIBRARY_PATH@", - "api_version": "1.3.267", + "api_version": "1.3.268", "implementation_version": "2", "description": "LunarG Device Profile Api Layer", "device_extensions": [ diff --git a/tests/unit/others.cpp b/tests/unit/others.cpp index 8d6c515f300..d3a28b2f104 100644 --- a/tests/unit/others.cpp +++ b/tests/unit/others.cpp @@ -1198,13 +1198,13 @@ TEST_F(VkLayerTest, LeakAnObject) { VkFence leaked_fence; ASSERT_EQ(VK_SUCCESS, vk::CreateFence(leaky_device, &fence_ci, nullptr, &leaked_fence)); - m_errorMonitor->SetDesiredFailureMsg(kErrorBit, "VUID-vkDestroyDevice-device-00378"); + m_errorMonitor->SetDesiredFailureMsg(kErrorBit, "VUID-vkDestroyDevice-device-05137"); vk::DestroyDevice(leaky_device, nullptr); m_errorMonitor->VerifyFound(); // There's no way we can destroy the fence at this point. Even though DestroyDevice failed, the loader has already removed // references to the device - m_errorMonitor->SetUnexpectedError("VUID-vkDestroyDevice-device-00378"); + m_errorMonitor->SetUnexpectedError("VUID-vkDestroyDevice-device-05137"); m_errorMonitor->SetUnexpectedError("UNASSIGNED-ObjectTracker-ObjectLeak"); } @@ -1249,13 +1249,13 @@ TEST_F(VkLayerTest, LeakABuffer) { VkBuffer buffer{}; ASSERT_EQ(VK_SUCCESS, vk::CreateBuffer(leaky_device, &buffer_create_info, nullptr, &buffer)); - m_errorMonitor->SetDesiredFailureMsg(kErrorBit, "VUID-vkDestroyDevice-device-00378"); + m_errorMonitor->SetDesiredFailureMsg(kErrorBit, "VUID-vkDestroyDevice-device-05137"); vk::DestroyDevice(leaky_device, nullptr); m_errorMonitor->VerifyFound(); // There's no way we can destroy the buffer at this point. // Even though DestroyDevice failed, the loader has already removed references to the device - m_errorMonitor->SetUnexpectedError("VUID-vkDestroyDevice-device-00378"); + m_errorMonitor->SetUnexpectedError("VUID-vkDestroyDevice-device-05137"); m_errorMonitor->SetUnexpectedError("UNASSIGNED-ObjectTracker-ObjectLeak"); } diff --git a/tests/unit/wsi.cpp b/tests/unit/wsi.cpp index bb5f2f43f12..6eb3a6c2078 100644 --- a/tests/unit/wsi.cpp +++ b/tests/unit/wsi.cpp @@ -1637,7 +1637,7 @@ TEST_F(NegativeWsi, LeakASwapchain) { // Warn about the surface/swapchain not being destroyed m_errorMonitor->SetDesiredFailureMsg(kErrorBit, "VUID-vkDestroyInstance-instance-00629"); - m_errorMonitor->SetDesiredFailureMsg(kErrorBit, "VUID-vkDestroyDevice-device-00378"); + m_errorMonitor->SetDesiredFailureMsg(kErrorBit, "VUID-vkDestroyDevice-device-05137"); ShutdownFramework(); // Destroy Instance/Device DestroySurfaceContext(surface_context); m_errorMonitor->VerifyFound();