diff --git a/build-android/known_good.json b/build-android/known_good.json index b3dab92da83..accfd71432b 100755 --- a/build-android/known_good.json +++ b/build-android/known_good.json @@ -16,7 +16,7 @@ "name": "Vulkan-Headers", "url": "https://github.com/KhronosGroup/Vulkan-Headers.git", "sub_dir": "Vulkan-Headers", - "commit": "v1.3.256" + "commit": "v1.3.257" }, { "name": "SPIRV-Tools", diff --git a/layers/CMakeLists.txt b/layers/CMakeLists.txt index 127b14e1879..f20596c8416 100644 --- a/layers/CMakeLists.txt +++ b/layers/CMakeLists.txt @@ -175,7 +175,8 @@ if (VVL_CODEGEN) find_package(Python3 REQUIRED QUIET) add_custom_target(vvl_codegen COMMAND Python3::Interpreter "${VVL_SOURCE_DIR}/scripts/generate_source.py" - ${VULKAN_HEADERS_REGISTRY_DIRECTORY} "${SPIRV_HEADERS_INSTALL_DIR}/include/spirv/unified1" + "${VULKAN_HEADERS_INSTALL_DIR}/${CMAKE_INSTALL_DATADIR}/vulkan/registry" + "${SPIRV_HEADERS_INSTALL_DIR}/include/spirv/unified1" --incremental --generated-version ${VulkanHeaders_VERSION} --api ${API_TYPE} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${API_TYPE}/generated ) diff --git a/layers/VkLayer_khronos_validation.json.in b/layers/VkLayer_khronos_validation.json.in index 8599ab8437d..d56708b50f6 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.256", + "api_version": "1.3.257", "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/core_checks/cc_shader.cpp b/layers/core_checks/cc_shader.cpp index a0d9b3af1c6..01424eb1638 100644 --- a/layers/core_checks/cc_shader.cpp +++ b/layers/core_checks/cc_shader.cpp @@ -964,7 +964,7 @@ VkComponentTypeNV GetComponentType(const Instruction *insn) { case 64: return insn->Word(3) != 0 ? VK_COMPONENT_TYPE_SINT64_NV : VK_COMPONENT_TYPE_UINT64_NV; default: - return VK_COMPONENT_TYPE_MAX_ENUM_NV; + return VK_COMPONENT_TYPE_MAX_ENUM_KHR; } case spv::OpTypeFloat: switch (insn->Word(2)) { @@ -975,10 +975,10 @@ VkComponentTypeNV GetComponentType(const Instruction *insn) { case 64: return VK_COMPONENT_TYPE_FLOAT64_NV; default: - return VK_COMPONENT_TYPE_MAX_ENUM_NV; + return VK_COMPONENT_TYPE_MAX_ENUM_KHR; } default: - return VK_COMPONENT_TYPE_MAX_ENUM_NV; + return VK_COMPONENT_TYPE_MAX_ENUM_KHR; } } @@ -999,7 +999,7 @@ bool CoreChecks::ValidateCooperativeMatrix(const SHADER_MODULE_STATE &module_sta VkComponentTypeNV component_type; bool all_constant; - CoopMatType() : scope(0), rows(0), cols(0), component_type(VK_COMPONENT_TYPE_MAX_ENUM_NV), all_constant(false) {} + CoopMatType() : scope(0), rows(0), cols(0), component_type(VK_COMPONENT_TYPE_MAX_ENUM_KHR), all_constant(false) {} void Init(uint32_t id, const SHADER_MODULE_STATE &module_state, const safe_VkSpecializationInfo *spec, const vvl::unordered_map &id_to_spec_id) { diff --git a/layers/vulkan/generated/enum_flag_bits.h b/layers/vulkan/generated/enum_flag_bits.h index 644c277d53e..d0fef2aaf72 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" -const uint32_t GeneratedVulkanHeaderVersion = 256; +const uint32_t GeneratedVulkanHeaderVersion = 257; 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/spirv_validation_helper.cpp b/layers/vulkan/generated/spirv_validation_helper.cpp index 25a9e67bf4d..4f690b391c0 100644 --- a/layers/vulkan/generated/spirv_validation_helper.cpp +++ b/layers/vulkan/generated/spirv_validation_helper.cpp @@ -399,6 +399,7 @@ static const std::unordered_multimap spirvExtens {"SPV_EXT_shader_tile_image", {0, nullptr, &DeviceExtensions::vk_ext_shader_tile_image, ""}}, {"SPV_EXT_opacity_micromap", {0, nullptr, &DeviceExtensions::vk_ext_opacity_micromap, ""}}, {"SPV_KHR_cooperative_matrix", {0, nullptr, &DeviceExtensions::vk_khr_cooperative_matrix, ""}}, + {"SPV_ARM_core_builtins", {0, nullptr, &DeviceExtensions::vk_arm_shader_core_builtins, ""}}, }; // clang-format on diff --git a/layers/vulkan/generated/valid_enum_values.cpp b/layers/vulkan/generated/valid_enum_values.cpp index 181c0bdc66b..46be5245401 100644 --- a/layers/vulkan/generated/valid_enum_values.cpp +++ b/layers/vulkan/generated/valid_enum_values.cpp @@ -1362,38 +1362,6 @@ std::vector ValidationObject::ValidParamValues() return values; } -template<> -std::vector ValidationObject::ValidParamValues() const { - constexpr std::array CoreVkComponentTypeNVEnums = {VK_COMPONENT_TYPE_FLOAT16_NV, VK_COMPONENT_TYPE_FLOAT32_NV, VK_COMPONENT_TYPE_FLOAT64_NV, VK_COMPONENT_TYPE_SINT8_NV, VK_COMPONENT_TYPE_SINT16_NV, VK_COMPONENT_TYPE_SINT32_NV, VK_COMPONENT_TYPE_SINT64_NV, VK_COMPONENT_TYPE_UINT8_NV, VK_COMPONENT_TYPE_UINT16_NV, VK_COMPONENT_TYPE_UINT32_NV, VK_COMPONENT_TYPE_UINT64_NV}; - static const vvl::unordered_map> ExtendedVkComponentTypeNVEnums = { - }; - std::vector values(CoreVkComponentTypeNVEnums.cbegin(), CoreVkComponentTypeNVEnums.cend()); - std::set unique_exts; - for (const auto& [extension, enums]: ExtendedVkComponentTypeNVEnums) { - if (IsExtEnabled(device_extensions.*extension)) { - unique_exts.insert(enums.cbegin(), enums.cend()); - } - } - std::copy(unique_exts.cbegin(), unique_exts.cend(), std::back_inserter(values)); - return values; -} - -template<> -std::vector ValidationObject::ValidParamValues() const { - constexpr std::array CoreVkScopeNVEnums = {VK_SCOPE_DEVICE_NV, VK_SCOPE_WORKGROUP_NV, VK_SCOPE_SUBGROUP_NV, VK_SCOPE_QUEUE_FAMILY_NV}; - static const vvl::unordered_map> ExtendedVkScopeNVEnums = { - }; - std::vector values(CoreVkScopeNVEnums.cbegin(), CoreVkScopeNVEnums.cend()); - std::set unique_exts; - for (const auto& [extension, enums]: ExtendedVkScopeNVEnums) { - if (IsExtEnabled(device_extensions.*extension)) { - unique_exts.insert(enums.cbegin(), enums.cend()); - } - } - std::copy(unique_exts.cbegin(), unique_exts.cend(), std::back_inserter(values)); - return values; -} - template<> std::vector ValidationObject::ValidParamValues() const { constexpr std::array CoreVkCoverageReductionModeNVEnums = {VK_COVERAGE_REDUCTION_MODE_MERGE_NV, VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV}; diff --git a/layers/vulkan/generated/valid_enum_values.h b/layers/vulkan/generated/valid_enum_values.h index a1dc7d4e1e3..2c18f8e6a79 100644 --- a/layers/vulkan/generated/valid_enum_values.h +++ b/layers/vulkan/generated/valid_enum_values.h @@ -99,8 +99,6 @@ template<> std::vector ValidationObject::ValidP template<> std::vector ValidationObject::ValidParamValues() const; template<> std::vector ValidationObject::ValidParamValues() const; template<> std::vector ValidationObject::ValidParamValues() const; -template<> std::vector ValidationObject::ValidParamValues() const; -template<> std::vector ValidationObject::ValidParamValues() const; template<> std::vector ValidationObject::ValidParamValues() const; template<> std::vector ValidationObject::ValidParamValues() const; #ifdef VK_USE_PLATFORM_WIN32_KHR diff --git a/layers/vulkan/generated/vk_enum_string_helper.h b/layers/vulkan/generated/vk_enum_string_helper.h index a21e24002fb..2daf711f017 100644 --- a/layers/vulkan/generated/vk_enum_string_helper.h +++ b/layers/vulkan/generated/vk_enum_string_helper.h @@ -4163,48 +4163,6 @@ static inline const char* string_VkValidationFeatureDisableEXT(VkValidationFeatu return "Unhandled VkValidationFeatureDisableEXT"; } } -static inline const char* string_VkComponentTypeNV(VkComponentTypeNV input_value) { - switch (input_value) { - case VK_COMPONENT_TYPE_FLOAT16_NV: - return "VK_COMPONENT_TYPE_FLOAT16_NV"; - case VK_COMPONENT_TYPE_FLOAT32_NV: - return "VK_COMPONENT_TYPE_FLOAT32_NV"; - case VK_COMPONENT_TYPE_FLOAT64_NV: - return "VK_COMPONENT_TYPE_FLOAT64_NV"; - case VK_COMPONENT_TYPE_SINT8_NV: - return "VK_COMPONENT_TYPE_SINT8_NV"; - case VK_COMPONENT_TYPE_SINT16_NV: - return "VK_COMPONENT_TYPE_SINT16_NV"; - case VK_COMPONENT_TYPE_SINT32_NV: - return "VK_COMPONENT_TYPE_SINT32_NV"; - case VK_COMPONENT_TYPE_SINT64_NV: - return "VK_COMPONENT_TYPE_SINT64_NV"; - case VK_COMPONENT_TYPE_UINT8_NV: - return "VK_COMPONENT_TYPE_UINT8_NV"; - case VK_COMPONENT_TYPE_UINT16_NV: - return "VK_COMPONENT_TYPE_UINT16_NV"; - case VK_COMPONENT_TYPE_UINT32_NV: - return "VK_COMPONENT_TYPE_UINT32_NV"; - case VK_COMPONENT_TYPE_UINT64_NV: - return "VK_COMPONENT_TYPE_UINT64_NV"; - default: - return "Unhandled VkComponentTypeNV"; - } -} -static inline const char* string_VkScopeNV(VkScopeNV input_value) { - switch (input_value) { - case VK_SCOPE_DEVICE_NV: - return "VK_SCOPE_DEVICE_NV"; - case VK_SCOPE_WORKGROUP_NV: - return "VK_SCOPE_WORKGROUP_NV"; - case VK_SCOPE_SUBGROUP_NV: - return "VK_SCOPE_SUBGROUP_NV"; - case VK_SCOPE_QUEUE_FAMILY_NV: - return "VK_SCOPE_QUEUE_FAMILY_NV"; - default: - return "Unhandled VkScopeNV"; - } -} static inline const char* string_VkCoverageReductionModeNV(VkCoverageReductionModeNV input_value) { switch (input_value) { case VK_COVERAGE_REDUCTION_MODE_MERGE_NV: diff --git a/layers/vulkan/generated/vk_validation_error_messages.h b/layers/vulkan/generated/vk_validation_error_messages.h index 66b159bcb8f..4d36d72033a 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.256 */ +/* Vulkan specification version: 1.3.257 */ /* * Vulkan * @@ -553,9 +553,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-StandaloneSpirv-LocalSize-06426", "For each compute shader entry point, either a LocalSize or LocalSizeId {ExecutionMode}, or an object decorated with the WorkgroupSize decoration must be specified", "1.3-extensions"}, {"VUID-StandaloneSpirv-Location-04915", "The Location or Component decorations must not be used with BuiltIn", "1.3-extensions"}, {"VUID-StandaloneSpirv-Location-04916", "The Location decorations must be used on user-defined variables", "1.3-extensions"}, - {"VUID-StandaloneSpirv-Location-04917", "If a user-defined variables points to a Block decorated OpTypeStruct, then the OpVariable must have a Location decoration", "1.3-extensions"}, - {"VUID-StandaloneSpirv-Location-04918", "If a user-defined variable has a Location decoration, and the variable points to a OpTypeStruct, then the members of that structure must not have Location decorations", "1.3-extensions"}, - {"VUID-StandaloneSpirv-Location-04919", "If a user-defined variable does not have a Location decoration, and the variable points to a Block decorated OpTypeStruct, then each member of the struct must have a Location decoration", "1.3-extensions"}, + {"VUID-StandaloneSpirv-Location-04917", "If a user-defined variable is a pointer to a Block decorated OpTypeStruct, then the OpVariable must have a Location decoration", "1.3-extensions"}, + {"VUID-StandaloneSpirv-Location-04918", "If a user-defined variable has a Location decoration, and the variable is a pointer to a OpTypeStruct, then the members of that structure must not have Location decorations", "1.3-extensions"}, + {"VUID-StandaloneSpirv-Location-04919", "If a user-defined variable does not have a Location decoration, and the variable is a pointer to a Block decorated OpTypeStruct, then each member of the struct must have a Location decoration", "1.3-extensions"}, {"VUID-StandaloneSpirv-Location-06672", "The Location or Component decorations must only be used with the Input, Output, RayPayloadKHR, IncomingRayPayloadKHR, HitAttributeKHR, HitObjectAttributeNV, CallableDataKHR, IncomingCallableDataKHR, or ShaderRecordBufferKHR storage classes", "1.3-extensions"}, {"VUID-StandaloneSpirv-MeshEXT-07102", "The module must not contain both an entry point that uses the TaskEXT or MeshEXT {ExecutionModel} and an entry point that uses the TaskNV or MeshNV {ExecutionModel}", "1.3-extensions"}, {"VUID-StandaloneSpirv-MeshEXT-07106", "In mesh shaders using the MeshEXT {ExecutionModel} OpSetMeshOutputsEXT must be called before any outputs are written", "1.3-extensions"}, @@ -624,7 +624,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-StandaloneSpirv-PhysicalStorageBuffer64-04709", "If the PhysicalStorageBuffer64 addressing model is enabled, any access chain instruction that accesses into a RowMajor matrix must only be used as the Pointer operand to OpLoad or OpStore", "1.3-extensions"}, {"VUID-StandaloneSpirv-PhysicalStorageBuffer64-04710", "If the PhysicalStorageBuffer64 addressing model is enabled, OpConvertUToPtr and OpConvertPtrToU must use an integer type whose Width is 64", "1.3-extensions"}, {"VUID-StandaloneSpirv-PixelCenterInteger-04654", "The PixelCenterInteger {ExecutionMode} must not be used (pixels are always centered at half-integer coordinates)", "1.3-extensions"}, - {"VUID-StandaloneSpirv-Pointer-08973", "The {StorageClass} of the Pointer operand to OpCooperativeMatrixLoadKHR or OpCooperativeMatrixStoreKHR must be limited to Workgroup, CrossWorkgroup, StorageBuffer, or PhysicalStorageBuffer.", "1.3-extensions"}, + {"VUID-StandaloneSpirv-Pointer-08973", "The {StorageClass} of the Pointer operand to OpCooperativeMatrixLoadKHR or OpCooperativeMatrixStoreKHR must be limited to Workgroup, StorageBuffer, or PhysicalStorageBuffer.", "1.3-extensions"}, {"VUID-StandaloneSpirv-PushConstant-06675", "Any variable in the PushConstant or StorageBuffer storage class must be decorated as Block", "1.3-extensions"}, {"VUID-StandaloneSpirv-PushConstant-06808", "Any variable in the PushConstant {StorageClass} must be typed as OpTypeStruct", "1.3-extensions"}, {"VUID-StandaloneSpirv-RayPayloadKHR-04698", "RayPayloadKHR {StorageClass} must only be used in ray generation, closest hit or miss shaders", "1.3-extensions"}, @@ -2210,6 +2210,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00906", "deviceMask must not be zero", "1.3-extensions"}, {"VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00907", "deviceMask must be a subset of the command buffer's initial device mask", "1.3-extensions"}, {"VUID-VkDeviceGroupRenderPassBeginInfo-deviceRenderAreaCount-00908", "deviceRenderAreaCount must either be zero or equal to the number of physical devices in the logical device", "1.3-extensions"}, + {"VUID-VkDeviceGroupRenderPassBeginInfo-extent-08998", "The extent.width member of any element of pDeviceRenderAreas must be greater than 0", "1.3-extensions"}, + {"VUID-VkDeviceGroupRenderPassBeginInfo-extent-08999", "The extent.height member of any element of pDeviceRenderAreas must be greater than 0", "1.3-extensions"}, {"VUID-VkDeviceGroupRenderPassBeginInfo-offset-06166", "The offset.x member of any element of pDeviceRenderAreas must be greater than or equal to 0", "1.3-extensions"}, {"VUID-VkDeviceGroupRenderPassBeginInfo-offset-06167", "The offset.y member of any element of pDeviceRenderAreas must be greater than or equal to 0", "1.3-extensions"}, {"VUID-VkDeviceGroupRenderPassBeginInfo-offset-06168", "The sum of the offset.x and extent.width members of any element of pDeviceRenderAreas must be less than or equal to maxFramebufferWidth", "1.3-extensions"}, @@ -3436,7 +3438,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkImageViewCreateInfo-image-02400", "If image has an Android 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-02401", "If image has an Android external format, all members of components must be the identity swizzle", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-image-02571", "If image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, subresourceRange.levelCount must be 1", "1.3-extensions"}, - {"VUID-VkImageViewCreateInfo-image-02724", "If image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.baseArrayLayer must be less than the depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Miplevel Sizing", "1.3-extensions"}, + {"VUID-VkImageViewCreateInfo-image-02724", "If image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.baseArrayLayer must be less than the depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Mip Level Sizing", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-image-03569", "If image was created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT and usage containing VK_IMAGE_USAGE_SAMPLED_BIT, subresourceRange.layerCount must be less than or equal to VkPhysicalDeviceFragmentDensityMap2PropertiesEXT::maxSubsampledArrayLayers", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-image-04441", "image must have been created with a usage value containing at least one of the usages defined in the valid image usage list for image views", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-image-04817", "If image was created with usage containing VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR, or VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, then the viewType must be VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY", "1.3-extensions"}, @@ -3485,7 +3487,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkImageViewCreateInfo-subResourceRange-01021", "viewType must be compatible with the type of image as shown in the view type compatibility table", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-subresourceRange-01478", "subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-subresourceRange-01718", "If subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created", "1.3-extensions"}, - {"VUID-VkImageViewCreateInfo-subresourceRange-02725", "If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.layerCount must be non-zero and subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Miplevel Sizing", "1.3-extensions"}, + {"VUID-VkImageViewCreateInfo-subresourceRange-02725", "If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.layerCount must be non-zero and subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Mip Level Sizing", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-subresourceRange-06725", "If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, image is not a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT or VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT set, or viewType is not VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.layerCount must be non-zero and subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-subresourceRange-07818", "subresourceRange.aspectMask must only have at most 1 valid multi-planar aspect mask", "1.3-extensions"}, {"VUID-VkImageViewCreateInfo-subresourceRange-parameter", "subresourceRange must be a valid VkImageSubresourceRange structure", "1.3-extensions"}, @@ -3526,8 +3528,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkImageViewSlicedCreateInfoEXT-None-07871", "The imageSlicedViewOf3D feature must be enabled on the device", "1.3-extensions"}, {"VUID-VkImageViewSlicedCreateInfoEXT-image-07869", "image must have been created with imageType equal to VK_IMAGE_TYPE_3D", "1.3-extensions"}, {"VUID-VkImageViewSlicedCreateInfoEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT", "1.3-extensions"}, - {"VUID-VkImageViewSlicedCreateInfoEXT-sliceCount-07868", "If sliceCount is not VK_REMAINING_3D_SLICES_EXT, it must be be non-zero and sliceOffset + sliceCount must be less than or equal to the effective view depth as specified in Image Miplevel Sizing", "1.3-extensions"}, - {"VUID-VkImageViewSlicedCreateInfoEXT-sliceOffset-07867", "sliceOffset must be less than the effective view depth as specified in Image Miplevel Sizing", "1.3-extensions"}, + {"VUID-VkImageViewSlicedCreateInfoEXT-sliceCount-07868", "If sliceCount is not VK_REMAINING_3D_SLICES_EXT, it must be be non-zero and sliceOffset + sliceCount must be less than or equal to the effective view depth as specified in Image Mip Level Sizing", "1.3-extensions"}, + {"VUID-VkImageViewSlicedCreateInfoEXT-sliceOffset-07867", "sliceOffset must be less than the effective view depth as specified in Image Mip Level Sizing", "1.3-extensions"}, {"VUID-VkImageViewSlicedCreateInfoEXT-viewType-07909", "viewType must be VK_IMAGE_VIEW_TYPE_3D", "1.3-extensions"}, {"VUID-VkImageViewUsageCreateInfo-sType-sType", "sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO", "1.3-extensions"}, {"VUID-VkImageViewUsageCreateInfo-usage-parameter", "usage must be a valid combination of VkImageUsageFlagBits values", "1.3-extensions"}, @@ -4634,7 +4636,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkPipelineShaderStageCreateInfo-pName-parameter", "pName must be a null-terminated UTF-8 string", "1.3-extensions"}, {"VUID-VkPipelineShaderStageCreateInfo-pNext-02754", "If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain, flags must not have the VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT flag set", "1.3-extensions"}, {"VUID-VkPipelineShaderStageCreateInfo-pNext-02755", "If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain, the subgroupSizeControl feature must be enabled, and stage must be a valid bit specified in requiredSubgroupSizeStages", "1.3-extensions"}, - {"VUID-VkPipelineShaderStageCreateInfo-pNext-02756", "If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain and stage is VK_SHADER_STAGE_COMPUTE_BIT, the local workgroup size of the shader must be less than or equal to the product of VkPipelineShaderStageRequiredSubgroupSizeCreateInfo::requiredSubgroupSize and maxComputeWorkgroupSubgroups", "1.3-extensions"}, + {"VUID-VkPipelineShaderStageCreateInfo-pNext-02756", "If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain and stage is VK_SHADER_STAGE_COMPUTE_BIT, VK_SHADER_STAGE_MESH_BIT_EXT, or VK_SHADER_STAGE_TASK_BIT_EXT, the local workgroup size of the shader must be less than or equal to the product of VkPipelineShaderStageRequiredSubgroupSizeCreateInfo::requiredSubgroupSize and maxComputeWorkgroupSubgroups", "1.3-extensions"}, {"VUID-VkPipelineShaderStageCreateInfo-pNext-02757", "If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain, and flags has the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT flag set, the local workgroup size in the X dimension of the pipeline must be a multiple of VkPipelineShaderStageRequiredSubgroupSizeCreateInfo::requiredSubgroupSize", "1.3-extensions"}, {"VUID-VkPipelineShaderStageCreateInfo-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 VkDebugUtilsObjectNameInfoEXT, VkPipelineRobustnessCreateInfoEXT, VkPipelineShaderStageModuleIdentifierCreateInfoEXT, VkPipelineShaderStageRequiredSubgroupSizeCreateInfo, VkShaderModuleCreateInfo, or VkShaderModuleValidationCacheCreateInfoEXT", "1.3-extensions"}, {"VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-06849", "If a shader module identifier is not specified, the shader code used by the pipeline must be valid as described by the Khronos SPIR-V Specification after applying the specializations provided in pSpecializationInfo, if any, and then converting all specialization constants into fixed constants", "1.3-extensions"}, @@ -4794,7 +4796,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkQueryPoolVideoEncodeFeedbackCreateInfoKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR", "1.3-extensions"}, {"VUID-VkQueueFamilyCheckpointProperties2NV-sType-sType", "sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV", "1.3-extensions"}, {"VUID-VkQueueFamilyCheckpointPropertiesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV", "1.3-extensions"}, - {"VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-priorities-parameter", "Any given element of priorities must be a valid VkQueueGlobalPriorityKHR value", "1.3-extensions"}, + {"VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-priorities-parameter", "Each element of priorities must be a valid VkQueueGlobalPriorityKHR value", "1.3-extensions"}, {"VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR", "1.3-extensions"}, {"VUID-VkQueueFamilyProperties2-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 VkQueueFamilyCheckpointProperties2NV, VkQueueFamilyCheckpointPropertiesNV, VkQueueFamilyGlobalPriorityPropertiesKHR, VkQueueFamilyQueryResultStatusPropertiesKHR, or VkQueueFamilyVideoPropertiesKHR", "1.3-extensions"}, {"VUID-VkQueueFamilyProperties2-sType-sType", "sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2", "1.3-extensions"}, @@ -4927,6 +4929,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkRenderPassAttachmentBeginInfo-pAttachments-07010", "If multisampled-render-to-single-sampled is enabled for any subpass, all element of pAttachments which have a sample count equal to VK_SAMPLE_COUNT_1_BIT must have a format that supports the sample count specified in VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", "1.3-extensions"}, {"VUID-VkRenderPassAttachmentBeginInfo-pAttachments-parameter", "If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkImageView handles", "1.3-extensions"}, {"VUID-VkRenderPassAttachmentBeginInfo-sType-sType", "sType must be VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO", "1.3-extensions"}, + {"VUID-VkRenderPassBeginInfo-None-08996", "If VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.width must be greater than 0", "1.3-extensions"}, + {"VUID-VkRenderPassBeginInfo-None-08997", "If VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.height must be greater than 0", "1.3-extensions"}, {"VUID-VkRenderPassBeginInfo-clearValueCount-00902", "clearValueCount must be greater than the largest attachment index in renderPass specifying a loadOp (or stencilLoadOp, if the attachment has a depth/stencil format) of VK_ATTACHMENT_LOAD_OP_CLEAR", "1.3-extensions"}, {"VUID-VkRenderPassBeginInfo-clearValueCount-04962", "If clearValueCount is not 0, pClearValues must be a valid pointer to an array of clearValueCount VkClearValue unions", "1.3-extensions"}, {"VUID-VkRenderPassBeginInfo-commonparent", "Both of framebuffer, and renderPass must have been created, allocated, or retrieved from the same VkDevice", "1.3-extensions"}, @@ -4988,8 +4992,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkRenderPassCreateInfo-subpassCount-arraylength", "subpassCount must be greater than 0", "1.3-extensions"}, {"VUID-VkRenderPassCreateInfo2-None-03049", "If any two subpasses operate on attachments with overlapping ranges of the same VkDeviceMemory object, and at least one subpass writes to that area of VkDeviceMemory, a subpass dependency must be included (either directly or via some intermediate subpasses) between them", "1.3-extensions"}, {"VUID-VkRenderPassCreateInfo2-attachment-02525", "If the attachment member of any element of the pInputAttachments member of any element of pSubpasses is not VK_ATTACHMENT_UNUSED, the aspectMask member of that element of pInputAttachments must only include aspects that are present in images of the format specified by the element of pAttachments specified by attachment", "1.3-extensions"}, - {"VUID-VkRenderPassCreateInfo2-attachment-03050", "If the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or the attachment indexed by any element of pPreserveAttachments in any given element of pSubpasses is bound to a range of a VkDeviceMemory object that overlaps with any other attachment in any subpass (including the same subpass), the VkAttachmentDescription2 structures describing them must include VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT in flags", "1.3-extensions"}, - {"VUID-VkRenderPassCreateInfo2-attachment-03051", "If the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or any element of pPreserveAttachments in any given element of pSubpasses is not VK_ATTACHMENT_UNUSED, then it must be less than attachmentCount", "1.3-extensions"}, + {"VUID-VkRenderPassCreateInfo2-attachment-03050", "If the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or the attachment indexed by any element of pPreserveAttachments in any element of pSubpasses is bound to a range of a VkDeviceMemory object that overlaps with any other attachment in any subpass (including the same subpass), the VkAttachmentDescription2 structures describing them must include VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT in flags", "1.3-extensions"}, + {"VUID-VkRenderPassCreateInfo2-attachment-03051", "If the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or any element of pPreserveAttachments in any element of pSubpasses is not VK_ATTACHMENT_UNUSED, then it must be less than attachmentCount", "1.3-extensions"}, {"VUID-VkRenderPassCreateInfo2-attachment-06244", "If the attachment member of the pDepthStencilAttachment member of an element of pSubpasses is not VK_ATTACHMENT_UNUSED, the layout member of that same structure is either VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, and the pNext chain of that structure does not include a VkAttachmentReferenceStencilLayout structure, then the element of pAttachments with an index equal to attachment must not have a format that includes both depth and stencil components", "1.3-extensions"}, {"VUID-VkRenderPassCreateInfo2-attachment-06245", "If the attachment member of the pDepthStencilAttachment member of an element of pSubpasses is not VK_ATTACHMENT_UNUSED and the layout member of that same structure is either VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, then the element of pAttachments with an index equal to attachment must have a format that includes only a stencil component", "1.3-extensions"}, {"VUID-VkRenderPassCreateInfo2-attachment-06246", "If the attachment member of the pDepthStencilAttachment member of an element of pSubpasses is not VK_ATTACHMENT_UNUSED and the layout member of that same structure is either VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, then the element of pAttachments with an index equal to attachment must not have a format that includes only a stencil component", "1.3-extensions"}, @@ -5100,6 +5104,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06156", "If imageView is not VK_NULL_HANDLE, the quotient of shadingRateAttachmentTexelSize.height and shadingRateAttachmentTexelSize.width must be less than or equal to maxFragmentShadingRateAttachmentTexelSizeAspectRatio", "1.3-extensions"}, {"VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-parameter", "If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle", "1.3-extensions"}, {"VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR", "1.3-extensions"}, + {"VUID-VkRenderingInfo-None-08994", "If VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.width must be greater than 0", "1.3-extensions"}, + {"VUID-VkRenderingInfo-None-08995", "If VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.height must be greater than 0", "1.3-extensions"}, {"VUID-VkRenderingInfo-colorAttachmentCount-06087", "If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, that imageView must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT", "1.3-extensions"}, {"VUID-VkRenderingInfo-colorAttachmentCount-06090", "If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, the layout member of that element of pColorAttachments must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL", "1.3-extensions"}, {"VUID-VkRenderingInfo-colorAttachmentCount-06091", "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_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL", "1.3-extensions"}, @@ -5744,13 +5750,13 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"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"}, {"VUID-VkSubpassDescription2-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 VkFragmentShadingRateAttachmentInfoKHR, VkMultisampledRenderToSingleSampledInfoEXT, VkRenderPassCreationControlEXT, VkRenderPassSubpassFeedbackCreateInfoEXT, or VkSubpassDescriptionDepthStencilResolve", "1.3-extensions"}, - {"VUID-VkSubpassDescription2-pPreserveAttachments-03074", "Any given element of pPreserveAttachments must not also be an element of any other member of the subpass description", "1.3-extensions"}, + {"VUID-VkSubpassDescription2-pPreserveAttachments-03074", "Each element of pPreserveAttachments must not also be an element of any other member of the subpass description", "1.3-extensions"}, {"VUID-VkSubpassDescription2-pPreserveAttachments-parameter", "If preserveAttachmentCount is not 0, pPreserveAttachments must be a valid pointer to an array of preserveAttachmentCount uint32_t values", "1.3-extensions"}, {"VUID-VkSubpassDescription2-pResolveAttachments-02899", "All attachments in pResolveAttachments 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-pResolveAttachments-03065", "If 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-pResolveAttachments-03066", "If 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-pResolveAttachments-03067", "If pResolveAttachments is not NULL, each resolve attachment that is not VK_ATTACHMENT_UNUSED must have a sample count of VK_SAMPLE_COUNT_1_BIT", "1.3-extensions"}, - {"VUID-VkSubpassDescription2-pResolveAttachments-03068", "Any given element of pResolveAttachments must have the same VkFormat as its corresponding color attachment", "1.3-extensions"}, + {"VUID-VkSubpassDescription2-pResolveAttachments-03068", "Each element of pResolveAttachments must have the same VkFormat as its corresponding color attachment", "1.3-extensions"}, {"VUID-VkSubpassDescription2-pResolveAttachments-parameter", "If colorAttachmentCount is not 0, and pResolveAttachments is not NULL, pResolveAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference2 structures", "1.3-extensions"}, {"VUID-VkSubpassDescription2-pipelineBindPoint-04953", "pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS or VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI", "1.3-extensions"}, {"VUID-VkSubpassDescription2-pipelineBindPoint-parameter", "pipelineBindPoint must be a valid VkPipelineBindPoint value", "1.3-extensions"}, @@ -6344,7 +6350,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkWriteDescriptorSet-descriptorType-04150", "If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER the imageLayout member of each element of pImageInfo must be a member of the list given in Combined Image Sampler", "1.3-extensions"}, {"VUID-VkWriteDescriptorSet-descriptorType-04151", "If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT the imageLayout member of each element of pImageInfo must be a member of the list given in Input Attachment", "1.3-extensions"}, {"VUID-VkWriteDescriptorSet-descriptorType-04152", "If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE the imageLayout member of each element of pImageInfo must be a member of the list given in Storage Image", "1.3-extensions"}, - {"VUID-VkWriteDescriptorSet-descriptorType-06450", "If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must have either been created without a VkImageViewMinLodCreateInfoEXT present in the pNext chain or with a VkImageViewMinLodCreateInfoEXT::minLod of 0.0", "1.3-extensions"}, + {"VUID-VkWriteDescriptorSet-descriptorType-06450", "If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must have either been created without a VkImageViewMinLodCreateInfoEXT included in the pNext chain or with a VkImageViewMinLodCreateInfoEXT::minLod of 0.0", "1.3-extensions"}, {"VUID-VkWriteDescriptorSet-descriptorType-06942", "If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, the imageView member of each element of pImageInfo must have been created with a view created with an image created with VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM", "1.3-extensions"}, {"VUID-VkWriteDescriptorSet-descriptorType-06943", "If descriptorType is VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, the imageView member of each element of pImageInfo must have been created with a view created with an image created with VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM", "1.3-extensions"}, {"VUID-VkWriteDescriptorSet-descriptorType-07683", "If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must not be VK_NULL_HANDLE", "1.3-extensions"}, @@ -8056,7 +8062,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDraw-None-04914", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", "1.3-extensions"}, {"VUID-vkCmdDraw-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"}, {"VUID-vkCmdDraw-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"}, - {"VUID-vkCmdDraw-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, + {"VUID-vkCmdDraw-None-06539", "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, {"VUID-vkCmdDraw-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"}, {"VUID-vkCmdDraw-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDraw-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"}, @@ -8100,7 +8106,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDraw-None-07831", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDraw-None-07832", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDraw-None-07833", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDraw-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDraw-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDraw-None-07835", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDraw-None-07836", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDraw-None-07837", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -8142,7 +8148,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDraw-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDraw-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDraw-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDraw-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDraw-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDraw-None-08621", "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDraw-None-08622", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDraw-None-08623", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -8217,7 +8223,6 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDraw-None-08696", "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", "1.3-extensions"}, {"VUID-vkCmdDraw-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"}, {"VUID-vkCmdDraw-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"}, - {"VUID-vkCmdDraw-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"}, {"VUID-vkCmdDraw-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"}, {"VUID-vkCmdDraw-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDraw-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"}, @@ -8227,6 +8232,10 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDraw-None-08882", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDraw-None-08883", "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDraw-None-08885", "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", "1.3-extensions"}, + {"VUID-vkCmdDraw-None-09000", "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDraw-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDraw-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDraw-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"}, {"VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, {"VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"}, {"VUID-vkCmdDraw-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, @@ -8370,7 +8379,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawClusterHUAWEI-None-04877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"}, - {"VUID-vkCmdDrawClusterHUAWEI-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, + {"VUID-vkCmdDrawClusterHUAWEI-None-06539", "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"}, @@ -8417,7 +8426,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawClusterHUAWEI-None-07831", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-07832", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-07833", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawClusterHUAWEI-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawClusterHUAWEI-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-07835", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-07836", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-07837", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -8458,7 +8467,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawClusterHUAWEI-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawClusterHUAWEI-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawClusterHUAWEI-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-08621", "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-08622", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-08623", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -8533,12 +8542,15 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawClusterHUAWEI-None-08696", "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"}, - {"VUID-vkCmdDrawClusterHUAWEI-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawClusterHUAWEI-None-09000", "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawClusterHUAWEI-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawClusterHUAWEI-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawClusterHUAWEI-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, @@ -8678,7 +8690,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-04877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"}, - {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, + {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-06539", "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"}, @@ -8724,7 +8736,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-07831", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-07832", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-07833", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-07835", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-07836", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-07837", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -8765,7 +8777,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08621", "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08622", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08623", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -8840,12 +8852,15 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08696", "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"}, - {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-09000", "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, @@ -8995,7 +9010,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndexed-None-04914", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"}, - {"VUID-vkCmdDrawIndexed-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexed-None-06539", "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"}, @@ -9040,7 +9055,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndexed-None-07831", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-07832", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-07833", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawIndexed-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexed-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-07835", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-07836", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-07837", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -9082,7 +9097,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndexed-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawIndexed-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexed-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-08621", "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-08622", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-08623", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -9157,7 +9172,6 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndexed-None-08696", "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"}, - {"VUID-vkCmdDrawIndexed-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"}, @@ -9167,6 +9181,10 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndexed-None-08882", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-08883", "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-08885", "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexed-None-09000", "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexed-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexed-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexed-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, @@ -9319,7 +9337,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndexedIndirect-None-04914", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"}, - {"VUID-vkCmdDrawIndexedIndirect-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexedIndirect-None-06539", "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"}, @@ -9364,7 +9382,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndexedIndirect-None-07831", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-07832", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-07833", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawIndexedIndirect-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexedIndirect-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-07835", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-07836", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-07837", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -9406,7 +9424,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndexedIndirect-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawIndexedIndirect-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexedIndirect-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-08621", "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-08622", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-08623", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -9481,7 +9499,6 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndexedIndirect-None-08696", "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"}, - {"VUID-vkCmdDrawIndexedIndirect-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"}, @@ -9491,6 +9508,10 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndexedIndirect-None-08882", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-08883", "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-None-08885", "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexedIndirect-None-09000", "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexedIndirect-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexedIndirect-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexedIndirect-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, @@ -9652,7 +9673,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndexedIndirectCount-None-04914", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"}, - {"VUID-vkCmdDrawIndexedIndirectCount-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexedIndirectCount-None-06539", "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"}, @@ -9697,7 +9718,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndexedIndirectCount-None-07831", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-07832", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-07833", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawIndexedIndirectCount-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexedIndirectCount-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-07835", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-07836", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-07837", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -9739,7 +9760,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndexedIndirectCount-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawIndexedIndirectCount-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexedIndirectCount-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-08621", "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-08622", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-08623", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -9814,7 +9835,6 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndexedIndirectCount-None-08696", "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"}, - {"VUID-vkCmdDrawIndexedIndirectCount-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"}, @@ -9824,6 +9844,10 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndexedIndirectCount-None-08882", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-08883", "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-None-08885", "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexedIndirectCount-None-09000", "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexedIndirectCount-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexedIndirectCount-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexedIndirectCount-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"}, {"VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, @@ -9989,7 +10013,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndirect-None-04914", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"}, - {"VUID-vkCmdDrawIndirect-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirect-None-06539", "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"}, @@ -10033,7 +10057,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndirect-None-07831", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-07832", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-07833", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawIndirect-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirect-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-07835", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-07836", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-07837", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -10075,7 +10099,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndirect-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawIndirect-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirect-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-08621", "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-08622", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-08623", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -10150,7 +10174,6 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndirect-None-08696", "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"}, - {"VUID-vkCmdDrawIndirect-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"}, @@ -10160,6 +10183,10 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndirect-None-08882", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-08883", "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-None-08885", "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirect-None-09000", "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirect-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirect-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirect-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"}, {"VUID-vkCmdDrawIndirect-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, @@ -10319,7 +10346,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndirectByteCountEXT-None-04914", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"}, - {"VUID-vkCmdDrawIndirectByteCountEXT-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirectByteCountEXT-None-06539", "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"}, @@ -10363,7 +10390,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndirectByteCountEXT-None-07831", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-07832", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-07833", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawIndirectByteCountEXT-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirectByteCountEXT-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-07835", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-07836", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-07837", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -10405,7 +10432,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndirectByteCountEXT-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawIndirectByteCountEXT-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirectByteCountEXT-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-08621", "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-08622", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-08623", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -10480,7 +10507,6 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndirectByteCountEXT-None-08696", "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"}, - {"VUID-vkCmdDrawIndirectByteCountEXT-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"}, @@ -10490,6 +10516,10 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndirectByteCountEXT-None-08882", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-08883", "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-08885", "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirectByteCountEXT-None-09000", "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirectByteCountEXT-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirectByteCountEXT-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirectByteCountEXT-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, @@ -10648,7 +10678,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndirectCount-None-04914", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"}, - {"VUID-vkCmdDrawIndirectCount-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirectCount-None-06539", "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"}, @@ -10692,7 +10722,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndirectCount-None-07831", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-07832", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-07833", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawIndirectCount-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirectCount-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-07835", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-07836", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-07837", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -10734,7 +10764,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndirectCount-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawIndirectCount-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirectCount-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-08621", "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-08622", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-08623", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -10809,7 +10839,6 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndirectCount-None-08696", "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"}, - {"VUID-vkCmdDrawIndirectCount-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"}, @@ -10819,6 +10848,10 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndirectCount-None-08882", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-08883", "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-None-08885", "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirectCount-None-09000", "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirectCount-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirectCount-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirectCount-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, @@ -10975,7 +11008,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksEXT-None-04877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksEXT-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksEXT-None-06539", "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"}, @@ -11021,7 +11054,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksEXT-None-07831", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-07832", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-07833", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksEXT-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksEXT-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-07835", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-07836", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-07837", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -11062,7 +11095,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksEXT-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksEXT-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksEXT-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-08621", "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-08622", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-08623", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -11137,12 +11170,15 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksEXT-None-08696", "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksEXT-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksEXT-None-09000", "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksEXT-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksEXT-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksEXT-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, @@ -11288,7 +11324,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06539", "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"}, @@ -11334,7 +11370,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07831", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07832", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07833", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07835", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07836", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07837", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -11375,7 +11411,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08621", "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08622", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08623", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -11450,12 +11486,15 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08696", "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09000", "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, @@ -11609,7 +11648,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539", "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"}, @@ -11655,7 +11694,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07831", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07832", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07833", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07835", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07836", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07837", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -11696,7 +11735,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08621", "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08622", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08623", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -11771,12 +11810,15 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08696", "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09000", "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, @@ -11929,7 +11971,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-04877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-06539", "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"}, @@ -11975,7 +12017,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-07831", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-07832", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-07833", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-07835", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-07836", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-07837", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -12016,7 +12058,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08621", "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08622", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08623", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -12091,12 +12133,15 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08696", "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-09000", "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, @@ -12244,7 +12289,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksIndirectNV-None-04877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksIndirectNV-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectNV-None-06539", "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"}, @@ -12290,7 +12335,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksIndirectNV-None-07831", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-07832", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-07833", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksIndirectNV-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectNV-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-07835", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-07836", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-07837", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -12331,7 +12376,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08621", "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08622", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08623", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -12406,12 +12451,15 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08696", "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectNV-None-09000", "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectNV-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectNV-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksIndirectNV-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, @@ -12559,7 +12607,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksNV-None-04877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksNV-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksNV-None-06539", "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"}, @@ -12605,7 +12653,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksNV-None-07831", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-07832", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-07833", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksNV-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksNV-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-07835", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-07836", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-07837", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -12646,7 +12694,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksNV-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksNV-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksNV-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-08621", "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-08622", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-08623", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -12721,12 +12769,15 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksNV-None-08696", "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"}, - {"VUID-vkCmdDrawMeshTasksNV-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-08879", "All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-None-08880", "If there is no bound graphics pipeline and the attachmentFeedbackLoopDynamicState feature is enabled on the device, vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksNV-None-09000", "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksNV-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksNV-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMeshTasksNV-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"}, {"VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, @@ -12873,7 +12924,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMultiEXT-None-04933", "The multiDraw feature must be enabled", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"}, - {"VUID-vkCmdDrawMultiEXT-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, + {"VUID-vkCmdDrawMultiEXT-None-06539", "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"}, @@ -12917,7 +12968,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMultiEXT-None-07831", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-07832", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-07833", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawMultiEXT-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMultiEXT-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-07835", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-07836", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-07837", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -12959,7 +13010,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMultiEXT-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawMultiEXT-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMultiEXT-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-08621", "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-08622", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-08623", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -13034,7 +13085,6 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMultiEXT-None-08696", "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"}, - {"VUID-vkCmdDrawMultiEXT-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"}, @@ -13044,6 +13094,10 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMultiEXT-None-08882", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-08883", "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-08885", "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", "1.3-extensions"}, + {"VUID-vkCmdDrawMultiEXT-None-09000", "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMultiEXT-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMultiEXT-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMultiEXT-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, @@ -13199,7 +13253,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMultiIndexedEXT-None-04937", "The multiDraw feature must be enabled", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"}, - {"VUID-vkCmdDrawMultiIndexedEXT-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, + {"VUID-vkCmdDrawMultiIndexedEXT-None-06539", "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"}, @@ -13244,7 +13298,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMultiIndexedEXT-None-07831", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-07832", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-07833", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawMultiIndexedEXT-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMultiIndexedEXT-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-07835", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-07836", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-07837", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -13286,7 +13340,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMultiIndexedEXT-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdDrawMultiIndexedEXT-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMultiIndexedEXT-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-08621", "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-08622", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-08623", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -13361,7 +13415,6 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMultiIndexedEXT-None-08696", "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"}, - {"VUID-vkCmdDrawMultiIndexedEXT-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"}, @@ -13371,6 +13424,10 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMultiIndexedEXT-None-08882", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-08883", "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-08885", "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", "1.3-extensions"}, + {"VUID-vkCmdDrawMultiIndexedEXT-None-09000", "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMultiIndexedEXT-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMultiIndexedEXT-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdDrawMultiIndexedEXT-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, @@ -13686,7 +13743,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdExecuteGeneratedCommandsNV-None-04914", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-06537", "Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command", "1.3-extensions"}, - {"VUID-vkCmdExecuteGeneratedCommandsNV-None-06539", "If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, + {"VUID-vkCmdExecuteGeneratedCommandsNV-None-06539", "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-06666", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-06886", "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled", "1.3-extensions"}, @@ -13730,7 +13787,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdExecuteGeneratedCommandsNV-None-07831", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-07832", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-07833", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdExecuteGeneratedCommandsNV-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdExecuteGeneratedCommandsNV-None-07834", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-07835", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-07836", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-07837", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -13772,7 +13829,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08617", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08618", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08619", "If a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, - {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08620", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08621", "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08622", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08623", "If a shader object is bound to any graphics stage, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, @@ -13847,7 +13904,6 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08696", "If there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08698", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08699", "If any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound", "1.3-extensions"}, - {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08753", "If any recorded command in the current subpass writes to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment or as a sampled or storage image per the rules defined for feedback loops", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08876", "If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08878", "All bound graphics shader objects must have been created with identical or identically defined push constant ranges", "1.3-extensions"}, @@ -13857,6 +13913,10 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08882", "If a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08883", "If a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-None-08885", "There must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages", "1.3-extensions"}, + {"VUID-vkCmdExecuteGeneratedCommandsNV-None-09000", "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdExecuteGeneratedCommandsNV-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdExecuteGeneratedCommandsNV-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"}, + {"VUID-vkCmdExecuteGeneratedCommandsNV-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, @@ -14559,7 +14619,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-extraPrimitiveOverestimationSize-07428", "extraPrimitiveOverestimationSize must be in the range of 0.0 to VkPhysicalDeviceConservativeRasterizationPropertiesEXT::maxExtraPrimitiveOverestimationSize inclusive", "1.3-extensions"}, {"VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"}, {"VUID-vkCmdSetFragmentShadingRateEnumNV-attachmentFragmentShadingRate-04582", "If the attachmentFragmentShadingRate feature is not enabled, combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR", "1.3-extensions"}, - {"VUID-vkCmdSetFragmentShadingRateEnumNV-combinerOps-parameter", "Any given element of combinerOps must be a valid VkFragmentShadingRateCombinerOpKHR value", "1.3-extensions"}, + {"VUID-vkCmdSetFragmentShadingRateEnumNV-combinerOps-parameter", "Each element of combinerOps must be a valid VkFragmentShadingRateCombinerOpKHR value", "1.3-extensions"}, {"VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"}, {"VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"}, {"VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"}, @@ -14573,7 +14633,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdSetFragmentShadingRateEnumNV-supersampleFragmentShadingRates-04577", "If supersampleFragmentShadingRates is not enabled, shadingRate must not be VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV, or VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV", "1.3-extensions"}, {"VUID-vkCmdSetFragmentShadingRateEnumNV-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"}, {"VUID-vkCmdSetFragmentShadingRateKHR-attachmentFragmentShadingRate-04511", "If the attachmentFragmentShadingRate feature is not enabled, combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR", "1.3-extensions"}, - {"VUID-vkCmdSetFragmentShadingRateKHR-combinerOps-parameter", "Any given element of combinerOps must be a valid VkFragmentShadingRateCombinerOpKHR value", "1.3-extensions"}, + {"VUID-vkCmdSetFragmentShadingRateKHR-combinerOps-parameter", "Each element of combinerOps must be a valid VkFragmentShadingRateCombinerOpKHR value", "1.3-extensions"}, {"VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics operations", "1.3-extensions"}, {"VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"}, {"VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"}, @@ -16821,8 +16881,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkGetQueryPoolResults-queryType-03229", "If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then pData and stride must be multiples of the size of VkPerformanceCounterResultKHR", "1.3-extensions"}, {"VUID-vkGetQueryPoolResults-queryType-03230", "If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, flags must not contain VK_QUERY_RESULT_WITH_AVAILABILITY_BIT, VK_QUERY_RESULT_PARTIAL_BIT or VK_QUERY_RESULT_64_BIT", "1.3-extensions"}, {"VUID-vkGetQueryPoolResults-queryType-03231", "If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the queryPool must have been recorded once for each pass as retrieved via a call to vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR", "1.3-extensions"}, - {"VUID-vkGetQueryPoolResults-queryType-04519", "If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then stride must be large enough to contain VkQueryPoolPerformanceCreateInfoKHR::counterIndexCount used to create queryPool times the size of VkPerformanceCounterResultKHR", "1.3-extensions"}, + {"VUID-vkGetQueryPoolResults-queryType-04519", "If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then stride must be large enough to contain the VkQueryPoolPerformanceCreateInfoKHR::counterIndexCount used to create queryPool times the size of VkPerformanceCounterResultKHR", "1.3-extensions"}, {"VUID-vkGetQueryPoolResults-queryType-04810", "If the queryType used to create queryPool was VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR, then flags must include VK_QUERY_RESULT_WITH_STATUS_BIT_KHR", "1.3-extensions"}, + {"VUID-vkGetQueryPoolResults-stride-08993", "If VK_QUERY_RESULT_WITH_AVAILABILITY_BIT is set, stride must be large enough to contain the unsigned integer representing availability or status in addition to the query result.", "1.3-extensions"}, {"VUID-vkGetQueueCheckpointData2NV-pCheckpointData-parameter", "If the value referenced by pCheckpointDataCount is not 0, and pCheckpointData is not NULL, pCheckpointData must be a valid pointer to an array of pCheckpointDataCount VkCheckpointData2NV structures", "1.3-extensions"}, {"VUID-vkGetQueueCheckpointData2NV-pCheckpointDataCount-parameter", "pCheckpointDataCount must be a valid pointer to a uint32_t value", "1.3-extensions"}, {"VUID-vkGetQueueCheckpointData2NV-queue-03892", "The device that queue belongs to must be in the lost state", "1.3-extensions"}, diff --git a/scripts/known_good.json b/scripts/known_good.json index 4708daf77b3..244b4e9f317 100755 --- a/scripts/known_good.json +++ b/scripts/known_good.json @@ -18,7 +18,7 @@ "sub_dir": "Vulkan-Headers", "build_dir": "Vulkan-Headers/build", "install_dir": "Vulkan-Headers/build/install", - "commit": "v1.3.256" + "commit": "v1.3.257" }, { "name": "SPIRV-Headers", diff --git a/tests/layers/VkLayer_device_profile_api.json.in b/tests/layers/VkLayer_device_profile_api.json.in index e8a6b22042b..35c59f3bc7d 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.256", + "api_version": "1.3.257", "implementation_version": "2", "description": "LunarG Device Profile Api Layer", "device_extensions": [