diff --git a/layers/VkLayer_khronos_validation.json.in b/layers/VkLayer_khronos_validation.json.in index a2bf0fd5394..b9988526952 100644 --- a/layers/VkLayer_khronos_validation.json.in +++ b/layers/VkLayer_khronos_validation.json.in @@ -4,7 +4,7 @@ "name": "@JSON_LAYER_NAME@", "type": "GLOBAL", "library_path": "@JSON_LIBRARY_PATH@", - "api_version": "1.4.307", + "api_version": "1.4.309", "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 Validation Layer can be enabled to assist development by enabling developers to verify their applications correctly use the Vulkan API.", diff --git a/layers/vulkan/generated/device_features.cpp b/layers/vulkan/generated/device_features.cpp index b5826a3e4df..48484835836 100644 --- a/layers/vulkan/generated/device_features.cpp +++ b/layers/vulkan/generated/device_features.cpp @@ -1684,6 +1684,12 @@ void GetEnabledDeviceFeatures(const VkDeviceCreateInfo *pCreateInfo, DeviceFeatu features->vertexAttributeRobustness |= enabled->vertexAttributeRobustness == VK_TRUE; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV: { + const VkPhysicalDevicePresentMeteringFeaturesNV *enabled = + reinterpret_cast(pNext); + features->presentMetering |= enabled->presentMetering == VK_TRUE; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: { const VkPhysicalDeviceAccelerationStructureFeaturesKHR *enabled = reinterpret_cast(pNext); diff --git a/layers/vulkan/generated/device_features.h b/layers/vulkan/generated/device_features.h index 04e002267ad..2b8206f8528 100644 --- a/layers/vulkan/generated/device_features.h +++ b/layers/vulkan/generated/device_features.h @@ -654,6 +654,8 @@ struct DeviceFeatures { bool presentBarrier; // VkPhysicalDevicePresentIdFeaturesKHR bool presentId; + // VkPhysicalDevicePresentMeteringFeaturesNV + bool presentMetering; // VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT bool presentModeFifoLatestReady; // VkPhysicalDevicePresentWaitFeaturesKHR diff --git a/layers/vulkan/generated/enum_flag_bits.h b/layers/vulkan/generated/enum_flag_bits.h index 560daa82ba9..2c0a182bdb1 100644 --- a/layers/vulkan/generated/enum_flag_bits.h +++ b/layers/vulkan/generated/enum_flag_bits.h @@ -24,7 +24,7 @@ #include #include "vulkan/vulkan.h" // clang-format off -const uint32_t GeneratedVulkanHeaderVersion = 307; +const uint32_t GeneratedVulkanHeaderVersion = 309; 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; @@ -125,7 +125,6 @@ const VkImageConstraintsInfoFlagsFUCHSIA AllVkImageConstraintsInfoFlagBitsFUCHSI const VkFrameBoundaryFlagsEXT AllVkFrameBoundaryFlagBitsEXT = VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT; const VkBuildMicromapFlagsEXT AllVkBuildMicromapFlagBitsEXT = VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT|VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT|VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT; const VkMicromapCreateFlagsEXT AllVkMicromapCreateFlagBitsEXT = VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT; -const VkPhysicalDeviceSchedulingControlsFlagsARM AllVkPhysicalDeviceSchedulingControlsFlagBitsARM = VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM; const VkMemoryDecompressionMethodFlagsNV AllVkMemoryDecompressionMethodFlagBitsNV = VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV; const VkOpticalFlowUsageFlagsNV AllVkOpticalFlowUsageFlagBitsNV = VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV|VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV|VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV|VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV|VK_OPTICAL_FLOW_USAGE_COST_BIT_NV|VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV; const VkOpticalFlowGridSizeFlagsNV AllVkOpticalFlowGridSizeFlagBitsNV = VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV|VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV|VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV|VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV|VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV; diff --git a/layers/vulkan/generated/error_location_helper.cpp b/layers/vulkan/generated/error_location_helper.cpp index c3a9d41af47..d6e82a7cf5b 100644 --- a/layers/vulkan/generated/error_location_helper.cpp +++ b/layers/vulkan/generated/error_location_helper.cpp @@ -1463,6 +1463,7 @@ const char* String(Struct structure) { {"VkPhysicalDevicePortabilitySubsetPropertiesKHR", 47}, {"VkPhysicalDevicePresentBarrierFeaturesNV", 41}, {"VkPhysicalDevicePresentIdFeaturesKHR", 37}, + {"VkPhysicalDevicePresentMeteringFeaturesNV", 42}, {"VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT", 54}, {"VkPhysicalDevicePresentWaitFeaturesKHR", 39}, {"VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT", 56}, @@ -1743,6 +1744,7 @@ const char* String(Struct structure) { {"VkSemaphoreWaitInfo", 20}, {"VkSetDescriptorBufferOffsetsInfoEXT", 36}, {"VkSetLatencyMarkerInfoNV", 25}, + {"VkSetPresentConfigNV", 21}, {"VkSetStateFlagsIndirectCommandNV", 33}, {"VkShaderCreateInfoEXT", 22}, {"VkShaderModuleCreateInfo", 25}, @@ -3358,6 +3360,7 @@ const char* String(Field field) { {"numAvailableSgprs", 18}, {"numAvailableVgprs", 18}, {"numColumns", 11}, + {"numFramesPerBatch", 18}, {"numPhases", 10}, {"numPhysicalSgprs", 17}, {"numPhysicalVgprs", 17}, @@ -4073,6 +4076,7 @@ const char* String(Field field) { {"presentBarrier", 15}, {"presentBarrierEnable", 21}, {"presentBarrierSupported", 24}, + {"presentConfigFeedback", 22}, {"presentEndTimeUs", 17}, {"presentGravityX", 16}, {"presentGravityY", 16}, @@ -4080,6 +4084,7 @@ const char* String(Field field) { {"presentId", 10}, {"presentMargin", 14}, {"presentMask", 12}, + {"presentMetering", 16}, {"presentMode", 12}, {"presentModeCount", 17}, {"presentModeFifoLatestReady", 27}, @@ -5530,6 +5535,7 @@ const char* String(Extension extension) { {"VK_NV_partitioned_acceleration_structure", 41}, {"VK_NV_per_stage_descriptor_set", 31}, {"VK_NV_present_barrier", 22}, + {"VK_NV_present_metering", 23}, {"VK_NV_raw_access_chains", 24}, {"VK_NV_ray_tracing", 18}, {"VK_NV_ray_tracing_invocation_reorder", 37}, diff --git a/layers/vulkan/generated/error_location_helper.h b/layers/vulkan/generated/error_location_helper.h index 884ff9328f4..9b0b6eb1518 100644 --- a/layers/vulkan/generated/error_location_helper.h +++ b/layers/vulkan/generated/error_location_helper.h @@ -1457,6 +1457,7 @@ enum class Struct { VkPhysicalDevicePortabilitySubsetPropertiesKHR, VkPhysicalDevicePresentBarrierFeaturesNV, VkPhysicalDevicePresentIdFeaturesKHR, + VkPhysicalDevicePresentMeteringFeaturesNV, VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT, VkPhysicalDevicePresentWaitFeaturesKHR, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, @@ -1737,6 +1738,7 @@ enum class Struct { VkSemaphoreWaitInfo, VkSetDescriptorBufferOffsetsInfoEXT, VkSetLatencyMarkerInfoNV, + VkSetPresentConfigNV, VkSetStateFlagsIndirectCommandNV, VkShaderCreateInfoEXT, VkShaderModuleCreateInfo, @@ -3349,6 +3351,7 @@ enum class Field { numAvailableSgprs, numAvailableVgprs, numColumns, + numFramesPerBatch, numPhases, numPhysicalSgprs, numPhysicalVgprs, @@ -4064,6 +4067,7 @@ enum class Field { presentBarrier, presentBarrierEnable, presentBarrierSupported, + presentConfigFeedback, presentEndTimeUs, presentGravityX, presentGravityY, @@ -4071,6 +4075,7 @@ enum class Field { presentId, presentMargin, presentMask, + presentMetering, presentMode, presentModeCount, presentModeFifoLatestReady, @@ -5512,6 +5517,7 @@ enum class Extension { _VK_NV_partitioned_acceleration_structure, _VK_NV_per_stage_descriptor_set, _VK_NV_present_barrier, + _VK_NV_present_metering, _VK_NV_raw_access_chains, _VK_NV_ray_tracing, _VK_NV_ray_tracing_invocation_reorder, diff --git a/layers/vulkan/generated/feature_requirements_helper.cpp b/layers/vulkan/generated/feature_requirements_helper.cpp index f87e99edd9d..0a85d21ecac 100644 --- a/layers/vulkan/generated/feature_requirements_helper.cpp +++ b/layers/vulkan/generated/feature_requirements_helper.cpp @@ -4451,21 +4451,21 @@ FeatureAndName AddFeature(APIVersion api_version, vkt::Feature feature, void **i } #ifdef VK_ENABLE_BETA_EXTENSIONS - case Feature::constantAlphaColorBlendFactors : { - auto vk_struct = const_cast( - vku::FindStructInPNextChain(*inout_pnext_chain)); - if (!vk_struct) { - vk_struct = new VkPhysicalDevicePortabilitySubsetFeaturesKHR; - *vk_struct = vku::InitStructHelper(); - if (*inout_pnext_chain) { - vvl::PnextChainAdd(*inout_pnext_chain, vk_struct); - } else { - *inout_pnext_chain = vk_struct; + case Feature::constantAlphaColorBlendFactors : { + auto vk_struct = const_cast( + vku::FindStructInPNextChain(*inout_pnext_chain)); + if (!vk_struct) { + vk_struct = new VkPhysicalDevicePortabilitySubsetFeaturesKHR; + *vk_struct = vku::InitStructHelper(); + if (*inout_pnext_chain) { + vvl::PnextChainAdd(*inout_pnext_chain, vk_struct); + } else { + *inout_pnext_chain = vk_struct; + } } + return {&vk_struct->constantAlphaColorBlendFactors, + "VkPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactors"}; } - return {&vk_struct->constantAlphaColorBlendFactors, - "VkPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactors"}; - } #endif // VK_ENABLE_BETA_EXTENSIONS #ifdef VK_ENABLE_BETA_EXTENSIONS @@ -4740,6 +4740,21 @@ FeatureAndName AddFeature(APIVersion api_version, vkt::Feature feature, void **i return {&vk_struct->presentId, "VkPhysicalDevicePresentIdFeaturesKHR::presentId"}; } + case Feature::presentMetering: { + auto vk_struct = const_cast( + vku::FindStructInPNextChain(*inout_pnext_chain)); + if (!vk_struct) { + vk_struct = new VkPhysicalDevicePresentMeteringFeaturesNV; + *vk_struct = vku::InitStructHelper(); + if (*inout_pnext_chain) { + vvl::PnextChainAdd(*inout_pnext_chain, vk_struct); + } else { + *inout_pnext_chain = vk_struct; + } + } + return {&vk_struct->presentMetering, "VkPhysicalDevicePresentMeteringFeaturesNV::presentMetering"}; + } + case Feature::presentModeFifoLatestReady: { auto vk_struct = const_cast( vku::FindStructInPNextChain(*inout_pnext_chain)); diff --git a/layers/vulkan/generated/feature_requirements_helper.h b/layers/vulkan/generated/feature_requirements_helper.h index bf221404e6c..f8e45928eb8 100644 --- a/layers/vulkan/generated/feature_requirements_helper.h +++ b/layers/vulkan/generated/feature_requirements_helper.h @@ -644,6 +644,8 @@ enum class Feature { presentBarrier, // VkPhysicalDevicePresentIdFeaturesKHR presentId, + // VkPhysicalDevicePresentMeteringFeaturesNV + presentMetering, // VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT presentModeFifoLatestReady, // VkPhysicalDevicePresentWaitFeaturesKHR diff --git a/layers/vulkan/generated/pnext_chain_extraction.cpp b/layers/vulkan/generated/pnext_chain_extraction.cpp index e2f85866844..a571bc47df3 100644 --- a/layers/vulkan/generated/pnext_chain_extraction.cpp +++ b/layers/vulkan/generated/pnext_chain_extraction.cpp @@ -2794,6 +2794,16 @@ void PnextChainFree(void *chain) { header->pNext = nullptr; delete reinterpret_cast(header); break; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV: + PnextChainFree(header->pNext); + header->pNext = nullptr; + delete reinterpret_cast(header); + break; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV: + PnextChainFree(header->pNext); + header->pNext = nullptr; + delete reinterpret_cast(header); + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV: PnextChainFree(header->pNext); header->pNext = nullptr; @@ -3290,6 +3300,16 @@ void PnextChainFree(void *chain) { header->pNext = nullptr; delete reinterpret_cast(header); break; + case VK_STRUCTURE_TYPE_SET_PRESENT_CONFIG_NV: + PnextChainFree(header->pNext); + header->pNext = nullptr; + delete reinterpret_cast(header); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV: + PnextChainFree(header->pNext); + header->pNext = nullptr; + delete reinterpret_cast(header); + break; case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR: PnextChainFree(header->pNext); header->pNext = nullptr; diff --git a/layers/vulkan/generated/spirv_validation_helper.cpp b/layers/vulkan/generated/spirv_validation_helper.cpp index d85e8249acb..5e9aa296d4a 100644 --- a/layers/vulkan/generated/spirv_validation_helper.cpp +++ b/layers/vulkan/generated/spirv_validation_helper.cpp @@ -386,6 +386,7 @@ const std::unordered_multimap &GetSpirvExte {"SPV_KHR_relaxed_extended_instruction", {0, nullptr, &DeviceExtensions::vk_khr_shader_relaxed_extended_instruction, ""}}, {"SPV_NV_cooperative_matrix2", {0, nullptr, &DeviceExtensions::vk_nv_cooperative_matrix2, ""}}, {"SPV_NV_tensor_addressing", {0, nullptr, &DeviceExtensions::vk_nv_cooperative_matrix2, ""}}, + {"SPV_NV_linear_swept_spheres", {0, nullptr, &DeviceExtensions::vk_nv_ray_tracing_linear_swept_spheres, ""}}, {"SPV_NV_cluster_acceleration_structure", {0, nullptr, &DeviceExtensions::vk_nv_cluster_acceleration_structure, ""}}, {"SPV_NV_cooperative_vector", {0, nullptr, &DeviceExtensions::vk_nv_cooperative_vector, ""}}, }; @@ -1149,6 +1150,7 @@ static inline std::string SpvExtensionRequirments(std::string_view extension) { {"SPV_KHR_relaxed_extended_instruction", {{vvl::Extension::_VK_KHR_shader_relaxed_extended_instruction}}}, {"SPV_NV_cooperative_matrix2", {{vvl::Extension::_VK_NV_cooperative_matrix2}}}, {"SPV_NV_tensor_addressing", {{vvl::Extension::_VK_NV_cooperative_matrix2}}}, + {"SPV_NV_linear_swept_spheres", {{vvl::Extension::_VK_NV_ray_tracing_linear_swept_spheres}}}, {"SPV_NV_cluster_acceleration_structure", {{vvl::Extension::_VK_NV_cluster_acceleration_structure}}}, {"SPV_NV_cooperative_vector", {{vvl::Extension::_VK_NV_cooperative_vector}}}, }; diff --git a/layers/vulkan/generated/stateless_validation_helper.cpp b/layers/vulkan/generated/stateless_validation_helper.cpp index 60713a0af52..d7788269409 100644 --- a/layers/vulkan/generated/stateless_validation_helper.cpp +++ b/layers/vulkan/generated/stateless_validation_helper.cpp @@ -4524,6 +4524,23 @@ bool Context::ValidatePnextFeatureStructContents(const Location& loc, const VkBa } } break; + // Validation code for VkPhysicalDevicePresentMeteringFeaturesNV structure members + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV: { // Covers + // VUID-VkPhysicalDevicePresentMeteringFeaturesNV-sType-sType + + if (!IsExtEnabled(extensions.vk_nv_present_metering)) { + skip |= log.LogError(pnext_vuid, error_obj.handle, loc.dot(Field::pNext), + "includes a pointer to a VkStructureType " + "(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV), but its parent extension " + "VK_NV_present_metering has not been enabled."); + } + if (is_const_param) { + [[maybe_unused]] const Location pNext_loc = loc.pNext(Struct::VkPhysicalDevicePresentMeteringFeaturesNV); + VkPhysicalDevicePresentMeteringFeaturesNV* structure = (VkPhysicalDevicePresentMeteringFeaturesNV*)header; + skip |= ValidateBool32(pNext_loc.dot(Field::presentMetering), structure->presentMetering); + } + } break; + // Validation code for VkPhysicalDeviceAccelerationStructureFeaturesKHR structure members case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: { // Covers // VUID-VkPhysicalDeviceAccelerationStructureFeaturesKHR-sType-sType @@ -10564,6 +10581,66 @@ bool Context::ValidatePnextStructContents(const Location& loc, const VkBaseOutSt } } break; + // Validation code for VkAccelerationStructureGeometryLinearSweptSpheresDataNV structure members + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV: { // Covers + // VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-sType-sType + + if (!IsExtEnabled(extensions.vk_nv_ray_tracing_linear_swept_spheres)) { + skip |= log.LogError( + pnext_vuid, error_obj.handle, loc.dot(Field::pNext), + "includes a pointer to a VkStructureType " + "(VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV), but its parent extension " + "VK_NV_ray_tracing_linear_swept_spheres has not been enabled."); + } + if (is_const_param) { + [[maybe_unused]] const Location pNext_loc = + loc.pNext(Struct::VkAccelerationStructureGeometryLinearSweptSpheresDataNV); + VkAccelerationStructureGeometryLinearSweptSpheresDataNV* structure = + (VkAccelerationStructureGeometryLinearSweptSpheresDataNV*)header; + skip |= ValidateRangedEnum(pNext_loc.dot(Field::vertexFormat), vvl::Enum::VkFormat, structure->vertexFormat, + "VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-vertexFormat-parameter"); + + skip |= ValidateRangedEnum(pNext_loc.dot(Field::radiusFormat), vvl::Enum::VkFormat, structure->radiusFormat, + "VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-radiusFormat-parameter"); + + skip |= ValidateRangedEnum(pNext_loc.dot(Field::indexType), vvl::Enum::VkIndexType, structure->indexType, + "VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-indexType-parameter"); + + skip |= ValidateRangedEnum(pNext_loc.dot(Field::indexingMode), vvl::Enum::VkRayTracingLssIndexingModeNV, + structure->indexingMode, + "VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-indexingMode-parameter"); + + skip |= ValidateRangedEnum(pNext_loc.dot(Field::endCapsMode), vvl::Enum::VkRayTracingLssPrimitiveEndCapsModeNV, + structure->endCapsMode, + "VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-endCapsMode-parameter"); + } + } break; + + // Validation code for VkAccelerationStructureGeometrySpheresDataNV structure members + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV: { // Covers + // VUID-VkAccelerationStructureGeometrySpheresDataNV-sType-sType + + if (!IsExtEnabled(extensions.vk_nv_ray_tracing_linear_swept_spheres)) { + skip |= + log.LogError(pnext_vuid, error_obj.handle, loc.dot(Field::pNext), + "includes a pointer to a VkStructureType " + "(VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV), but its parent extension " + "VK_NV_ray_tracing_linear_swept_spheres has not been enabled."); + } + if (is_const_param) { + [[maybe_unused]] const Location pNext_loc = loc.pNext(Struct::VkAccelerationStructureGeometrySpheresDataNV); + VkAccelerationStructureGeometrySpheresDataNV* structure = (VkAccelerationStructureGeometrySpheresDataNV*)header; + skip |= ValidateRangedEnum(pNext_loc.dot(Field::vertexFormat), vvl::Enum::VkFormat, structure->vertexFormat, + "VUID-VkAccelerationStructureGeometrySpheresDataNV-vertexFormat-parameter"); + + skip |= ValidateRangedEnum(pNext_loc.dot(Field::radiusFormat), vvl::Enum::VkFormat, structure->radiusFormat, + "VUID-VkAccelerationStructureGeometrySpheresDataNV-radiusFormat-parameter"); + + skip |= ValidateRangedEnum(pNext_loc.dot(Field::indexType), vvl::Enum::VkIndexType, structure->indexType, + "VUID-VkAccelerationStructureGeometrySpheresDataNV-indexType-parameter"); + } + } break; + // Validation code for VkImageViewSampleWeightCreateInfoQCOM structure members case VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM: { // Covers // VUID-VkImageViewSampleWeightCreateInfoQCOM-sType-sType @@ -11130,6 +11207,17 @@ bool Context::ValidatePnextStructContents(const Location& loc, const VkBaseOutSt } break; #endif // VK_USE_PLATFORM_METAL_EXT + // Validation code for VkSetPresentConfigNV structure members + case VK_STRUCTURE_TYPE_SET_PRESENT_CONFIG_NV: { // Covers VUID-VkSetPresentConfigNV-sType-sType + + if (!IsExtEnabled(extensions.vk_nv_present_metering)) { + skip |= log.LogError( + pnext_vuid, error_obj.handle, loc.dot(Field::pNext), + "includes a pointer to a VkStructureType (VK_STRUCTURE_TYPE_SET_PRESENT_CONFIG_NV), but its parent extension " + "VK_NV_present_metering has not been enabled."); + } + } break; + // Validation code for VkWriteDescriptorSetAccelerationStructureKHR structure members case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR: { // Covers // VUID-VkWriteDescriptorSetAccelerationStructureKHR-sType-sType @@ -11433,6 +11521,7 @@ bool Instance::PreCallValidateCreateDevice(VkPhysicalDevice physicalDevice, cons VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT, @@ -18449,6 +18538,7 @@ bool Device::PreCallValidateQueuePresentKHR(VkQueue queue, const VkPresentInfoKH VK_STRUCTURE_TYPE_PRESENT_ID_KHR, VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR, VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE, + VK_STRUCTURE_TYPE_SET_PRESENT_CONFIG_NV, VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT, VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT}; @@ -29174,9 +29264,16 @@ bool Device::PreCallValidateCmdBuildAccelerationStructuresKHR( if (pInfos[infoIndex].pGeometries != nullptr) { for (uint32_t geometryIndex = 0; geometryIndex < pInfos[infoIndex].geometryCount; ++geometryIndex) { [[maybe_unused]] const Location pGeometries_loc = pInfos_loc.dot(Field::pGeometries, geometryIndex); - skip |= context.ValidateStructPnext( - pGeometries_loc, pInfos[infoIndex].pGeometries[geometryIndex].pNext, 0, nullptr, - GeneratedVulkanHeaderVersion, "VUID-VkAccelerationStructureGeometryKHR-pNext-pNext", kVUIDUndefined, true); + constexpr std::array allowed_structs_VkAccelerationStructureGeometryKHR = { + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV}; + + skip |= context.ValidateStructPnext(pGeometries_loc, pInfos[infoIndex].pGeometries[geometryIndex].pNext, + allowed_structs_VkAccelerationStructureGeometryKHR.size(), + allowed_structs_VkAccelerationStructureGeometryKHR.data(), + GeneratedVulkanHeaderVersion, + "VUID-VkAccelerationStructureGeometryKHR-pNext-pNext", + "VUID-VkAccelerationStructureGeometryKHR-sType-unique", true); skip |= context.ValidateRangedEnum(pGeometries_loc.dot(Field::geometryType), vvl::Enum::VkGeometryTypeKHR, pInfos[infoIndex].pGeometries[geometryIndex].geometryType, @@ -29196,9 +29293,16 @@ bool Device::PreCallValidateCmdBuildAccelerationStructuresKHR( if (pInfos[infoIndex].ppGeometries != nullptr) { for (uint32_t geometryIndex = 0; geometryIndex < pInfos[infoIndex].geometryCount; ++geometryIndex) { [[maybe_unused]] const Location ppGeometries_loc = pInfos_loc.dot(Field::ppGeometries, geometryIndex); - skip |= context.ValidateStructPnext( - ppGeometries_loc, pInfos[infoIndex].ppGeometries[geometryIndex]->pNext, 0, nullptr, - GeneratedVulkanHeaderVersion, "VUID-VkAccelerationStructureGeometryKHR-pNext-pNext", kVUIDUndefined, true); + constexpr std::array allowed_structs_VkAccelerationStructureGeometryKHR = { + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV}; + + skip |= context.ValidateStructPnext(ppGeometries_loc, pInfos[infoIndex].ppGeometries[geometryIndex]->pNext, + allowed_structs_VkAccelerationStructureGeometryKHR.size(), + allowed_structs_VkAccelerationStructureGeometryKHR.data(), + GeneratedVulkanHeaderVersion, + "VUID-VkAccelerationStructureGeometryKHR-pNext-pNext", + "VUID-VkAccelerationStructureGeometryKHR-sType-unique", true); skip |= context.ValidateRangedEnum(ppGeometries_loc.dot(Field::geometryType), vvl::Enum::VkGeometryTypeKHR, pInfos[infoIndex].ppGeometries[geometryIndex]->geometryType, @@ -29265,9 +29369,16 @@ bool Device::PreCallValidateCmdBuildAccelerationStructuresIndirectKHR(VkCommandB if (pInfos[infoIndex].pGeometries != nullptr) { for (uint32_t geometryIndex = 0; geometryIndex < pInfos[infoIndex].geometryCount; ++geometryIndex) { [[maybe_unused]] const Location pGeometries_loc = pInfos_loc.dot(Field::pGeometries, geometryIndex); - skip |= context.ValidateStructPnext( - pGeometries_loc, pInfos[infoIndex].pGeometries[geometryIndex].pNext, 0, nullptr, - GeneratedVulkanHeaderVersion, "VUID-VkAccelerationStructureGeometryKHR-pNext-pNext", kVUIDUndefined, true); + constexpr std::array allowed_structs_VkAccelerationStructureGeometryKHR = { + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV}; + + skip |= context.ValidateStructPnext(pGeometries_loc, pInfos[infoIndex].pGeometries[geometryIndex].pNext, + allowed_structs_VkAccelerationStructureGeometryKHR.size(), + allowed_structs_VkAccelerationStructureGeometryKHR.data(), + GeneratedVulkanHeaderVersion, + "VUID-VkAccelerationStructureGeometryKHR-pNext-pNext", + "VUID-VkAccelerationStructureGeometryKHR-sType-unique", true); skip |= context.ValidateRangedEnum(pGeometries_loc.dot(Field::geometryType), vvl::Enum::VkGeometryTypeKHR, pInfos[infoIndex].pGeometries[geometryIndex].geometryType, @@ -29287,9 +29398,16 @@ bool Device::PreCallValidateCmdBuildAccelerationStructuresIndirectKHR(VkCommandB if (pInfos[infoIndex].ppGeometries != nullptr) { for (uint32_t geometryIndex = 0; geometryIndex < pInfos[infoIndex].geometryCount; ++geometryIndex) { [[maybe_unused]] const Location ppGeometries_loc = pInfos_loc.dot(Field::ppGeometries, geometryIndex); - skip |= context.ValidateStructPnext( - ppGeometries_loc, pInfos[infoIndex].ppGeometries[geometryIndex]->pNext, 0, nullptr, - GeneratedVulkanHeaderVersion, "VUID-VkAccelerationStructureGeometryKHR-pNext-pNext", kVUIDUndefined, true); + constexpr std::array allowed_structs_VkAccelerationStructureGeometryKHR = { + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV}; + + skip |= context.ValidateStructPnext(ppGeometries_loc, pInfos[infoIndex].ppGeometries[geometryIndex]->pNext, + allowed_structs_VkAccelerationStructureGeometryKHR.size(), + allowed_structs_VkAccelerationStructureGeometryKHR.data(), + GeneratedVulkanHeaderVersion, + "VUID-VkAccelerationStructureGeometryKHR-pNext-pNext", + "VUID-VkAccelerationStructureGeometryKHR-sType-unique", true); skip |= context.ValidateRangedEnum(ppGeometries_loc.dot(Field::geometryType), vvl::Enum::VkGeometryTypeKHR, pInfos[infoIndex].ppGeometries[geometryIndex]->geometryType, @@ -29356,9 +29474,16 @@ bool Device::PreCallValidateBuildAccelerationStructuresKHR(VkDevice device, VkDe if (pInfos[infoIndex].pGeometries != nullptr) { for (uint32_t geometryIndex = 0; geometryIndex < pInfos[infoIndex].geometryCount; ++geometryIndex) { [[maybe_unused]] const Location pGeometries_loc = pInfos_loc.dot(Field::pGeometries, geometryIndex); - skip |= context.ValidateStructPnext( - pGeometries_loc, pInfos[infoIndex].pGeometries[geometryIndex].pNext, 0, nullptr, - GeneratedVulkanHeaderVersion, "VUID-VkAccelerationStructureGeometryKHR-pNext-pNext", kVUIDUndefined, true); + constexpr std::array allowed_structs_VkAccelerationStructureGeometryKHR = { + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV}; + + skip |= context.ValidateStructPnext(pGeometries_loc, pInfos[infoIndex].pGeometries[geometryIndex].pNext, + allowed_structs_VkAccelerationStructureGeometryKHR.size(), + allowed_structs_VkAccelerationStructureGeometryKHR.data(), + GeneratedVulkanHeaderVersion, + "VUID-VkAccelerationStructureGeometryKHR-pNext-pNext", + "VUID-VkAccelerationStructureGeometryKHR-sType-unique", true); skip |= context.ValidateRangedEnum(pGeometries_loc.dot(Field::geometryType), vvl::Enum::VkGeometryTypeKHR, pInfos[infoIndex].pGeometries[geometryIndex].geometryType, @@ -29378,9 +29503,16 @@ bool Device::PreCallValidateBuildAccelerationStructuresKHR(VkDevice device, VkDe if (pInfos[infoIndex].ppGeometries != nullptr) { for (uint32_t geometryIndex = 0; geometryIndex < pInfos[infoIndex].geometryCount; ++geometryIndex) { [[maybe_unused]] const Location ppGeometries_loc = pInfos_loc.dot(Field::ppGeometries, geometryIndex); - skip |= context.ValidateStructPnext( - ppGeometries_loc, pInfos[infoIndex].ppGeometries[geometryIndex]->pNext, 0, nullptr, - GeneratedVulkanHeaderVersion, "VUID-VkAccelerationStructureGeometryKHR-pNext-pNext", kVUIDUndefined, true); + constexpr std::array allowed_structs_VkAccelerationStructureGeometryKHR = { + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV}; + + skip |= context.ValidateStructPnext(ppGeometries_loc, pInfos[infoIndex].ppGeometries[geometryIndex]->pNext, + allowed_structs_VkAccelerationStructureGeometryKHR.size(), + allowed_structs_VkAccelerationStructureGeometryKHR.data(), + GeneratedVulkanHeaderVersion, + "VUID-VkAccelerationStructureGeometryKHR-pNext-pNext", + "VUID-VkAccelerationStructureGeometryKHR-sType-unique", true); skip |= context.ValidateRangedEnum(ppGeometries_loc.dot(Field::geometryType), vvl::Enum::VkGeometryTypeKHR, pInfos[infoIndex].ppGeometries[geometryIndex]->geometryType, @@ -29697,9 +29829,16 @@ bool Device::PreCallValidateGetAccelerationStructureBuildSizesKHR(VkDevice devic if (pBuildInfo->pGeometries != nullptr) { for (uint32_t geometryIndex = 0; geometryIndex < pBuildInfo->geometryCount; ++geometryIndex) { [[maybe_unused]] const Location pGeometries_loc = pBuildInfo_loc.dot(Field::pGeometries, geometryIndex); - skip |= context.ValidateStructPnext(pGeometries_loc, pBuildInfo->pGeometries[geometryIndex].pNext, 0, nullptr, - GeneratedVulkanHeaderVersion, - "VUID-VkAccelerationStructureGeometryKHR-pNext-pNext", kVUIDUndefined, true); + constexpr std::array allowed_structs_VkAccelerationStructureGeometryKHR = { + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV}; + + skip |= + context.ValidateStructPnext(pGeometries_loc, pBuildInfo->pGeometries[geometryIndex].pNext, + allowed_structs_VkAccelerationStructureGeometryKHR.size(), + allowed_structs_VkAccelerationStructureGeometryKHR.data(), + GeneratedVulkanHeaderVersion, "VUID-VkAccelerationStructureGeometryKHR-pNext-pNext", + "VUID-VkAccelerationStructureGeometryKHR-sType-unique", true); skip |= context.ValidateRangedEnum(pGeometries_loc.dot(Field::geometryType), vvl::Enum::VkGeometryTypeKHR, pBuildInfo->pGeometries[geometryIndex].geometryType, @@ -29719,9 +29858,16 @@ bool Device::PreCallValidateGetAccelerationStructureBuildSizesKHR(VkDevice devic if (pBuildInfo->ppGeometries != nullptr) { for (uint32_t geometryIndex = 0; geometryIndex < pBuildInfo->geometryCount; ++geometryIndex) { [[maybe_unused]] const Location ppGeometries_loc = pBuildInfo_loc.dot(Field::ppGeometries, geometryIndex); - skip |= context.ValidateStructPnext(ppGeometries_loc, pBuildInfo->ppGeometries[geometryIndex]->pNext, 0, nullptr, - GeneratedVulkanHeaderVersion, - "VUID-VkAccelerationStructureGeometryKHR-pNext-pNext", kVUIDUndefined, true); + constexpr std::array allowed_structs_VkAccelerationStructureGeometryKHR = { + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV}; + + skip |= + context.ValidateStructPnext(ppGeometries_loc, pBuildInfo->ppGeometries[geometryIndex]->pNext, + allowed_structs_VkAccelerationStructureGeometryKHR.size(), + allowed_structs_VkAccelerationStructureGeometryKHR.data(), + GeneratedVulkanHeaderVersion, "VUID-VkAccelerationStructureGeometryKHR-pNext-pNext", + "VUID-VkAccelerationStructureGeometryKHR-sType-unique", true); skip |= context.ValidateRangedEnum(ppGeometries_loc.dot(Field::geometryType), vvl::Enum::VkGeometryTypeKHR, pBuildInfo->ppGeometries[geometryIndex]->geometryType, diff --git a/layers/vulkan/generated/test_icd_helper.h b/layers/vulkan/generated/test_icd_helper.h index 3b6cfdce487..ecf6c78fc87 100644 --- a/layers/vulkan/generated/test_icd_helper.h +++ b/layers/vulkan/generated/test_icd_helper.h @@ -492,6 +492,7 @@ static const std::unordered_map device_extension_map = { {VK_EXT_EXTERNAL_MEMORY_METAL_EXTENSION_NAME, VK_EXT_EXTERNAL_MEMORY_METAL_SPEC_VERSION}, #endif // VK_USE_PLATFORM_METAL_EXT {VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME, VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION}, + {VK_NV_PRESENT_METERING_EXTENSION_NAME, VK_NV_PRESENT_METERING_SPEC_VERSION}, {VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME, VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION}, {VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME, VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION}, {VK_KHR_RAY_QUERY_EXTENSION_NAME, VK_KHR_RAY_QUERY_SPEC_VERSION}, diff --git a/layers/vulkan/generated/valid_flag_values.cpp b/layers/vulkan/generated/valid_flag_values.cpp index 6b57d4f4178..15439215875 100644 --- a/layers/vulkan/generated/valid_flag_values.cpp +++ b/layers/vulkan/generated/valid_flag_values.cpp @@ -1327,8 +1327,6 @@ std::string stateless::Context::DescribeFlagBitmaskValue64(vvl::FlagBitmask flag return string_VkBufferUsageFlags2(value); case vvl::FlagBitmask::VkAccessFlagBits3KHR: return string_VkAccessFlags3KHR(value); - case vvl::FlagBitmask::VkPhysicalDeviceSchedulingControlsFlagBitsARM: - return string_VkPhysicalDeviceSchedulingControlsFlagsARM(value); case vvl::FlagBitmask::VkMemoryDecompressionMethodFlagBitsNV: return string_VkMemoryDecompressionMethodFlagsNV(value); diff --git a/layers/vulkan/generated/vk_extension_helper.cpp b/layers/vulkan/generated/vk_extension_helper.cpp index 85645bf65e0..a636966430b 100644 --- a/layers/vulkan/generated/vk_extension_helper.cpp +++ b/layers/vulkan/generated/vk_extension_helper.cpp @@ -420,6 +420,7 @@ vvl::Extension GetExtension(std::string extension) { {"VK_ARM_pipeline_opacity_micromap", vvl::Extension::_VK_ARM_pipeline_opacity_micromap}, {"VK_EXT_external_memory_metal", vvl::Extension::_VK_EXT_external_memory_metal}, {"VK_EXT_vertex_attribute_robustness", vvl::Extension::_VK_EXT_vertex_attribute_robustness}, + {"VK_NV_present_metering", vvl::Extension::_VK_NV_present_metering}, {"VK_KHR_acceleration_structure", vvl::Extension::_VK_KHR_acceleration_structure}, {"VK_KHR_ray_tracing_pipeline", vvl::Extension::_VK_KHR_ray_tracing_pipeline}, {"VK_KHR_ray_query", vvl::Extension::_VK_KHR_ray_query}, diff --git a/layers/vulkan/generated/vk_extension_helper.h b/layers/vulkan/generated/vk_extension_helper.h index 0a09b15daa4..8e8281878d8 100644 --- a/layers/vulkan/generated/vk_extension_helper.h +++ b/layers/vulkan/generated/vk_extension_helper.h @@ -641,6 +641,7 @@ struct DeviceExtensions : public InstanceExtensions { ExtEnabled vk_arm_pipeline_opacity_micromap{kNotEnabled}; ExtEnabled vk_ext_external_memory_metal{kNotEnabled}; ExtEnabled vk_ext_vertex_attribute_robustness{kNotEnabled}; + ExtEnabled vk_nv_present_metering{kNotEnabled}; ExtEnabled vk_khr_acceleration_structure{kNotEnabled}; ExtEnabled vk_khr_ray_tracing_pipeline{kNotEnabled}; ExtEnabled vk_khr_ray_query{kNotEnabled}; @@ -995,8 +996,7 @@ struct DeviceExtensions : public InstanceExtensions { Info(&DeviceExtensions::vk_khr_maintenance8, {{{&DeviceExtensions::vk_feature_version_1_1, "VK_VERSION_1_1"}}})}, {vvl::Extension::_VK_KHR_video_maintenance2, Info(&DeviceExtensions::vk_khr_video_maintenance2, - {{{&DeviceExtensions::vk_khr_video_decode_queue, VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME}, - {&DeviceExtensions::vk_khr_video_encode_queue, VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME}}})}, + {{{&DeviceExtensions::vk_khr_video_queue, VK_KHR_VIDEO_QUEUE_EXTENSION_NAME}}})}, {vvl::Extension::_VK_KHR_depth_clamp_zero_one, Info(&DeviceExtensions::vk_khr_depth_clamp_zero_one, {{{&DeviceExtensions::vk_khr_get_physical_device_properties2, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME}}})}, @@ -1752,6 +1752,7 @@ struct DeviceExtensions : public InstanceExtensions { Info(&DeviceExtensions::vk_ext_vertex_attribute_robustness, {{{&DeviceExtensions::vk_khr_get_physical_device_properties2, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME}}})}, + {vvl::Extension::_VK_NV_present_metering, Info(&DeviceExtensions::vk_nv_present_metering, {})}, {vvl::Extension::_VK_KHR_acceleration_structure, Info(&DeviceExtensions::vk_khr_acceleration_structure, {{{&DeviceExtensions::vk_feature_version_1_1, "VK_VERSION_1_1"}, @@ -2196,6 +2197,7 @@ constexpr bool IsDeviceExtension(vvl::Extension extension) { case vvl::Extension::_VK_ARM_pipeline_opacity_micromap: case vvl::Extension::_VK_EXT_external_memory_metal: case vvl::Extension::_VK_EXT_vertex_attribute_robustness: + case vvl::Extension::_VK_NV_present_metering: case vvl::Extension::_VK_KHR_acceleration_structure: case vvl::Extension::_VK_KHR_ray_tracing_pipeline: case vvl::Extension::_VK_KHR_ray_query: diff --git a/layers/vulkan/generated/vk_validation_error_messages.h b/layers/vulkan/generated/vk_validation_error_messages.h index b096d19cf23..ea06fa81790 100644 --- a/layers/vulkan/generated/vk_validation_error_messages.h +++ b/layers/vulkan/generated/vk_validation_error_messages.h @@ -1,6 +1,6 @@ // *** THIS FILE IS GENERATED - DO NOT EDIT *** // See generate_spec_error_message.py for modifications -// Based on Vulkan specification version: 1.4.307 +// Based on Vulkan specification version: 1.4.309 /*************************************************************************** * @@ -103,9 +103,11 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-CullMaskKHR-CullMaskKHR-06737", "The variable decorated with CullMaskKHR must be declared as a scalar 32-bit integer value", "chapters/interfaces.html"}, {"VUID-CullPrimitiveEXT-CullPrimitiveEXT-07034", "The CullPrimitiveEXT decoration must be used only within the MeshEXT Execution Model", "chapters/interfaces.html"}, {"VUID-CullPrimitiveEXT-CullPrimitiveEXT-07035", "The variable decorated with CullPrimitiveEXT must be declared using the Output Storage Class", "chapters/interfaces.html"}, - {"VUID-CullPrimitiveEXT-CullPrimitiveEXT-07036", "The variable decorated with CullPrimitiveEXT must be declared as an array of boolean values", "chapters/interfaces.html"}, - {"VUID-CullPrimitiveEXT-CullPrimitiveEXT-07037", "The size of the array decorated with CullPrimitiveEXT must match the value specified by OutputPrimitivesEXT", "chapters/interfaces.html"}, + {"VUID-CullPrimitiveEXT-CullPrimitiveEXT-07036", "CullPrimitiveEXT must decorate a scalar boolean member of a structure decorated as Block, or decorate a variable of type OpTypeArray of boolean values.", "chapters/interfaces.html"}, {"VUID-CullPrimitiveEXT-CullPrimitiveEXT-07038", "The variable decorated with CullPrimitiveEXT within the MeshEXT Execution Model must also be decorated with the PerPrimitiveEXT decoration", "chapters/interfaces.html"}, + {"VUID-CullPrimitiveEXT-CullPrimitiveEXT-10589", "If CullPrimitiveEXT is declared as an array of boolean values, the size of the array must match the value specified by OutputPrimitivesEXT", "chapters/interfaces.html"}, + {"VUID-CullPrimitiveEXT-CullPrimitiveEXT-10590", "If CullPrimitiveEXT decorates a member of a structure, the variable declaration of the containing Block type must have an array size that matches the value specified by OutputPrimitivesEXT", "chapters/interfaces.html"}, + {"VUID-CullPrimitiveEXT-CullPrimitiveEXT-10591", "There must be only one declaration of the CullPrimitiveEXT associated with a entry point's interface.", "chapters/interfaces.html"}, {"VUID-CurrentRayTimeNV-CurrentRayTimeNV-04942", "The CurrentRayTimeNV decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model", "chapters/interfaces.html"}, {"VUID-CurrentRayTimeNV-CurrentRayTimeNV-04943", "The variable decorated with CurrentRayTimeNV must be declared using the Input Storage Class", "chapters/interfaces.html"}, {"VUID-CurrentRayTimeNV-CurrentRayTimeNV-04944", "The variable decorated with CurrentRayTimeNV must be declared as a scalar 32-bit floating-point value", "chapters/interfaces.html"}, @@ -213,8 +215,11 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-Layer-Layer-04273", "If the shaderOutputLayer feature is not enabled then the Layer decoration must be used only within the Geometry or Fragment Execution Model", "chapters/interfaces.html"}, {"VUID-Layer-Layer-04274", "The variable decorated with Layer within the MeshEXT, MeshNV, Vertex, TessellationEvaluation, or Geometry Execution Model must be declared using the Output Storage Class", "chapters/interfaces.html"}, {"VUID-Layer-Layer-04275", "The variable decorated with Layer within the Fragment Execution Model must be declared using the Input Storage Class", "chapters/interfaces.html"}, - {"VUID-Layer-Layer-04276", "The variable decorated with Layer must be declared as a scalar 32-bit integer value", "chapters/interfaces.html"}, + {"VUID-Layer-Layer-04276", "The variable decorated with Layer must be declared as a scalar 32-bit integer value for all supported execution models except MeshEXT.", "chapters/interfaces.html"}, {"VUID-Layer-Layer-07039", "The variable decorated with Layer within the MeshEXT Execution Model must also be decorated with the PerPrimitiveEXT decoration", "chapters/interfaces.html"}, + {"VUID-Layer-Layer-10592", "Layer within the MeshEXT Execution Model must decorate a scalar 32-bit integer member of a structure decorated as Block, or decorate a variable of type OpTypeArray of scalar 32-bit integer values.", "chapters/interfaces.html"}, + {"VUID-Layer-Layer-10593", "If Layer is declared as an array of boolean values, the size of the array must match the value specified by OutputPrimitivesEXT", "chapters/interfaces.html"}, + {"VUID-Layer-Layer-10594", "If Layer decorates a member of a structure, the variable declaration of the containing Block type must have an array size that matches the value specified by OutputPrimitivesEXT", "chapters/interfaces.html"}, {"VUID-LayerPerViewNV-LayerPerViewNV-04277", "The LayerPerViewNV decoration must be used only within the MeshNV Execution Model", "chapters/interfaces.html"}, {"VUID-LayerPerViewNV-LayerPerViewNV-04278", "The variable decorated with LayerPerViewNV must be declared using the Output Storage Class", "chapters/interfaces.html"}, {"VUID-LayerPerViewNV-LayerPerViewNV-04279", "The variable decorated with LayerPerViewNV must also be decorated with the PerViewNV decoration", "chapters/interfaces.html"}, @@ -276,8 +281,11 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-PrimitiveId-PrimitiveId-04334", "The variable decorated with PrimitiveId within the TessellationControl, TessellationEvaluation, Fragment, IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model must be declared using the Input Storage Class", "chapters/interfaces.html"}, {"VUID-PrimitiveId-PrimitiveId-04335", "The variable decorated with PrimitiveId within the Geometry Execution Model must be declared using the Input or Output Storage Class", "chapters/interfaces.html"}, {"VUID-PrimitiveId-PrimitiveId-04336", "The variable decorated with PrimitiveId within the MeshEXT or MeshNV Execution Model must be declared using the Output Storage Class", "chapters/interfaces.html"}, - {"VUID-PrimitiveId-PrimitiveId-04337", "The variable decorated with PrimitiveId must be declared as a scalar 32-bit integer value", "chapters/interfaces.html"}, + {"VUID-PrimitiveId-PrimitiveId-04337", "The variable decorated with PrimitiveId must be declared as a scalar 32-bit integer value for all supported execution models except MeshEXT", "chapters/interfaces.html"}, {"VUID-PrimitiveId-PrimitiveId-07040", "The variable decorated with PrimitiveId within the MeshEXT Execution Model must also be decorated with the PerPrimitiveEXT decoration", "chapters/interfaces.html"}, + {"VUID-PrimitiveId-PrimitiveId-10595", "PrimitiveId within the MeshEXT Execution Model must decorate a scalar 32-bit integer member of a structure decorated as Block, or decorate a variable of type OpTypeArray of 32-bit integer values.", "chapters/interfaces.html"}, + {"VUID-PrimitiveId-PrimitiveId-10596", "If PrimitiveId is declared as an array of 32-bit integer values, within the MeshEXT Execution Model, size of the array must match the value specified by OutputPrimitivesEXT", "chapters/interfaces.html"}, + {"VUID-PrimitiveId-PrimitiveId-10597", "If PrimitiveId decorates a member of a structure, the variable declaration of the containing Block type must have an array size that matches the value specified by OutputPrimitivesEXT", "chapters/interfaces.html"}, {"VUID-PrimitiveIndicesNV-OutputLinesNV-04343", "If the Execution Mode is OutputLinesNV, then the array decorated with PrimitiveIndicesNV must be the size of two times the value specified by OutputPrimitivesNV", "chapters/interfaces.html"}, {"VUID-PrimitiveIndicesNV-OutputPoints-04342", "If the Execution Mode is OutputPoints, then the array decorated with PrimitiveIndicesNV must be the size of the value specified by OutputPrimitivesNV", "chapters/interfaces.html"}, {"VUID-PrimitiveIndicesNV-OutputTrianglesNV-04344", "If the Execution Mode is OutputTrianglesNV, then the array decorated with PrimitiveIndicesNV must be the size of three times the value specified by OutputPrimitivesNV", "chapters/interfaces.html"}, @@ -299,11 +307,14 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07046", "The size of the array decorated with PrimitivePointIndicesEXT must match the value specified by OutputPrimitivesEXT", "chapters/interfaces.html"}, {"VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04484", "The PrimitiveShadingRateKHR decoration must be used only within the MeshEXT, MeshNV, Vertex, or Geometry Execution Model", "chapters/interfaces.html"}, {"VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04485", "The variable decorated with PrimitiveShadingRateKHR must be declared using the Output Storage Class", "chapters/interfaces.html"}, - {"VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04486", "The variable decorated with PrimitiveShadingRateKHR must be declared as a scalar 32-bit integer value", "chapters/interfaces.html"}, + {"VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04486", "The variable decorated with PrimitiveShadingRateKHR must be declared as a scalar 32-bit integer value for all supported execution models except MeshEXT", "chapters/interfaces.html"}, {"VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04487", "The value written to PrimitiveShadingRateKHR must include no more than one of Vertical2Pixels and Vertical4Pixels", "chapters/interfaces.html"}, {"VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04488", "The value written to PrimitiveShadingRateKHR must include no more than one of Horizontal2Pixels and Horizontal4Pixels", "chapters/interfaces.html"}, {"VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04489", "The value written to PrimitiveShadingRateKHR must not have any bits set other than those defined by Fragment Shading Rate Flags enumerants in the SPIR-V specification", "chapters/interfaces.html"}, {"VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-07059", "The variable decorated with PrimitiveShadingRateKHR within the MeshEXT Execution Model must also be decorated with the PerPrimitiveEXT decoration", "chapters/interfaces.html"}, + {"VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-10598", "PrimitiveShadingRateKHR within the MeshEXT Execution Model must decorate a scalar 32-bit integer member of a structure decorated as Block, or decorate a variable of type OpTypeArray of 32-bit integer values.", "chapters/interfaces.html"}, + {"VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-10599", "If PrimitiveShadingRateKHR is declared as an array of boolean values, the size of the array must match the value specified by OutputPrimitivesEXT", "chapters/interfaces.html"}, + {"VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-10600", "If PrimitiveShadingRateKHR decorates a member of a structure, the variable declaration of the containing Block type must have an array size that matches the value specified by OutputPrimitivesEXT", "chapters/interfaces.html"}, {"VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07053", "The PrimitiveTriangleIndicesEXT decoration must be used only within the MeshEXT Execution Model", "chapters/interfaces.html"}, {"VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07054", "The PrimitiveTriangleIndicesEXT decoration must be used with the OutputTrianglesEXT Execution Mode", "chapters/interfaces.html"}, {"VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07055", "The variable decorated with PrimitiveTriangleIndicesEXT must be declared using the Output Storage Class", "chapters/interfaces.html"}, @@ -598,13 +609,15 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-StandaloneSpirv-Component-04921", "If the Component decoration is used on an OpVariable that has a OpTypeVector type with a Component Type with a Width that is less than or equal to 32, the sum of its Component Count and the Component decoration value must be less than or equal to 4", "appendices/spirvenv.html"}, {"VUID-StandaloneSpirv-Component-04922", "If the Component decoration is used on an OpVariable that has a OpTypeVector type with a Component Type with a Width that is equal to 64, the sum of two times its Component Count and the Component decoration value must be less than or equal to 4", "appendices/spirvenv.html"}, {"VUID-StandaloneSpirv-Component-04923", "The Component decorations value must not be 1 or 3 for scalar or two-component 64-bit data types", "appendices/spirvenv.html"}, - {"VUID-StandaloneSpirv-Component-04924", "The Component decorations must not be used with any type that is not a scalar or vector, or an array of such a type", "appendices/spirvenv.html"}, {"VUID-StandaloneSpirv-Component-07703", "The Component decorations must not be used for a 64-bit vector type with more than two components", "appendices/spirvenv.html"}, + {"VUID-StandaloneSpirv-Component-10583", "The Component decorations must not be used with any type that is not a scalar, vector, array of scalars or vectors, or an array of arrays of scalars or vectors", "appendices/spirvenv.html"}, {"VUID-StandaloneSpirv-DerivativeGroupLinearKHR-10152", "For compute, mesh, or task shaders using the DerivativeGroupLinearKHR execution mode, the product of the dimensions of the local workgroup size must be a multiple of four", "appendices/spirvenv.html"}, {"VUID-StandaloneSpirv-DerivativeGroupLinearNV-04778", "For compute shaders using the DerivativeGroupLinearNV execution mode, the product of the dimensions of the local workgroup size must be a multiple of four", "appendices/spirvenv.html"}, {"VUID-StandaloneSpirv-DerivativeGroupQuadsKHR-10151", "For compute, mesh, or task shaders using the DerivativeGroupQuadsKHR execution mode, the first two dimensions of the local workgroup size must be a multiple of two", "appendices/spirvenv.html"}, {"VUID-StandaloneSpirv-DerivativeGroupQuadsNV-04684", "For compute shaders using the DerivativeGroupQuadsNV execution mode, the first two dimensions of the local workgroup size must be a multiple of two", "appendices/spirvenv.html"}, {"VUID-StandaloneSpirv-DescriptorSet-06491", "If a variable is decorated by DescriptorSet or Binding, the Storage Class must correspond to an entry in Shader Resource and Storage Class Correspondence", "appendices/spirvenv.html"}, + {"VUID-StandaloneSpirv-Execution-10584", "If the Execution Model of an entry point is not TessellationControl or Geometry, its interface definition must not include any variables in the Input storage class decorated with Component that are arrays of arrays of scalars or vectors", "appendices/spirvenv.html"}, + {"VUID-StandaloneSpirv-Execution-10585", "If the Execution Model of an entry point is not MeshNV, its interface definition must not include any variables in the Output storage class decorated with Component that are arrays of arrays of scalars or vectors", "appendices/spirvenv.html"}, {"VUID-StandaloneSpirv-ExecutionModel-07320", "If the Execution Model is TessellationControl, and the MemoryModel is GLSL450, the Scope for memory must not be Workgroup", "appendices/spirvenv.html"}, {"VUID-StandaloneSpirv-FPRoundingMode-04675", "Rounding modes other than round-to-nearest-even and round-towards-zero must not be used for the FPRoundingMode decoration", "appendices/spirvenv.html"}, {"VUID-StandaloneSpirv-Flat-04670", "The Flat, NoPerspective, Sample, and Centroid decorations must only be used on variables with the Output or Input Storage Class", "appendices/spirvenv.html"}, @@ -624,6 +637,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-StandaloneSpirv-Input-06778", "Variables with a Storage Class of Input in a fragment shader stage that are decorated with PerVertexKHR must be declared as arrays", "appendices/spirvenv.html"}, {"VUID-StandaloneSpirv-Input-07290", "Variables with a Storage Class of Input or Output and a type of OpTypeBool must be decorated with the BuiltIn decoration", "appendices/spirvenv.html"}, {"VUID-StandaloneSpirv-Input-09557", "The pointers of any Input or Output Interface user-defined variables must not contain any PhysicalStorageBuffer Storage Class pointers", "appendices/spirvenv.html"}, + {"VUID-StandaloneSpirv-Input-10588", "Variables in the Input storage class in the TessellationControl, TessellationEvaluation, Geometry, or Fragment execution model must not have overlapping Component and Location decorations as defined by Location and Component Assignment", "appendices/spirvenv.html"}, + {"VUID-StandaloneSpirv-Input-10604", "Any variable in the Input storage class in the Fragment execution model must not have an assigned Location shared with another variable with different decorations for PerVertexKHR, Flat, NoPerspective, Sample, or Centroid", "appendices/spirvenv.html"}, {"VUID-StandaloneSpirv-InputAttachmentArrayDynamicIndexing-10131", "If the InputAttachmentArrayDynamicIndexing capability is not declared, and an instruction accesses memory through an input attachment, the input attachmnet through which that memory is accessed must be determined by constant integral expressions", "appendices/spirvenv.html"}, {"VUID-StandaloneSpirv-InputAttachmentIndex-06678", "Variables decorated with InputAttachmentIndex must be in the UniformConstant Storage Class", "appendices/spirvenv.html"}, {"VUID-StandaloneSpirv-Invariant-04677", "Variables decorated with Invariant and variables with structure types that have any members decorated with Invariant must be in the Output or Input Storage Class, Invariant used on an Input Storage Class variable or structure member has no effect", "appendices/spirvenv.html"}, @@ -697,6 +712,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-StandaloneSpirv-OpVariable-04734", "Any OpVariable with an Initializer operand and Workgroup as its Storage Class operand must use OpConstantNull as the initializer", "appendices/spirvenv.html"}, {"VUID-StandaloneSpirv-OpVariable-06673", "There must not be more than one OpVariable in the PushConstant Storage Class listed in the Interface for each OpEntryPoint", "appendices/spirvenv.html"}, {"VUID-StandaloneSpirv-OriginLowerLeft-04653", "The OriginLowerLeft Execution Mode must not be used; fragment entry points must declare OriginUpperLeft", "appendices/spirvenv.html"}, + {"VUID-StandaloneSpirv-Output-10586", "Variables in the Output storage class in the Vertex, TessellationControl, TessellationEvaluation, or Geometry execution model must not have overlapping Component and Location decorations as defined by Location and Component Assignment", "appendices/spirvenv.html"}, + {"VUID-StandaloneSpirv-Output-10587", "Variables in the Output storage class in the Fragment execution model must not have both identical Index decorations and overlapping Component and Location decorations as defined by Location and Component Assignment", "appendices/spirvenv.html"}, {"VUID-StandaloneSpirv-PerVertexKHR-06777", "The PerVertexKHR decoration must only be used on variables with the Input Storage Class in a fragment shader", "appendices/spirvenv.html"}, {"VUID-StandaloneSpirv-PhysicalStorageBuffer64-04708", "If the PhysicalStorageBuffer64 addressing model is enabled, all instructions that support memory access operands and that use a physical pointer must include the Aligned operand", "appendices/spirvenv.html"}, {"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", "appendices/spirvenv.html"}, @@ -776,8 +793,11 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-ViewportIndex-ViewportIndex-04405", "If the shaderOutputViewportIndex feature is not enabled then the ViewportIndex decoration must be used only within the Geometry or Fragment Execution Model", "chapters/interfaces.html"}, {"VUID-ViewportIndex-ViewportIndex-04406", "The variable decorated with ViewportIndex within the MeshEXT, MeshNV, Vertex, TessellationEvaluation, or Geometry Execution Model must be declared using the Output Storage Class", "chapters/interfaces.html"}, {"VUID-ViewportIndex-ViewportIndex-04407", "The variable decorated with ViewportIndex within the Fragment Execution Model must be declared using the Input Storage Class", "chapters/interfaces.html"}, - {"VUID-ViewportIndex-ViewportIndex-04408", "The variable decorated with ViewportIndex must be declared as a scalar 32-bit integer value", "chapters/interfaces.html"}, + {"VUID-ViewportIndex-ViewportIndex-04408", "The variable decorated with ViewportIndex must be declared as a scalar 32-bit integer value for all supported execution models except MeshEXT", "chapters/interfaces.html"}, {"VUID-ViewportIndex-ViewportIndex-07060", "The variable decorated with ViewportIndex within the MeshEXT Execution Model must also be decorated with the PerPrimitiveEXT decoration", "chapters/interfaces.html"}, + {"VUID-ViewportIndex-ViewportIndex-10601", "ViewportIndex within the MeshEXT Execution Model must decorate a scalar boolean member of a structure decorated as Block, or decorate a variable of type OpTypeArray of boolean values.", "chapters/interfaces.html"}, + {"VUID-ViewportIndex-ViewportIndex-10602", "If ViewportIndex is declared as an array of boolean values, the size of the array must match the value specified by OutputPrimitivesEXT", "chapters/interfaces.html"}, + {"VUID-ViewportIndex-ViewportIndex-10603", "If ViewportIndex decorates a member of a structure, the variable declaration of the containing Block type must have an array size that matches the value specified by OutputPrimitivesEXT", "chapters/interfaces.html"}, {"VUID-ViewportMaskNV-ViewportMaskNV-04409", "The ViewportMaskNV decoration must be used only within the Vertex, MeshNV, TessellationEvaluation, or Geometry Execution Model", "chapters/interfaces.html"}, {"VUID-ViewportMaskNV-ViewportMaskNV-04410", "The variable decorated with ViewportMaskNV must be declared using the Output Storage Class", "chapters/interfaces.html"}, {"VUID-ViewportMaskNV-ViewportMaskNV-04411", "The variable decorated with ViewportMaskNV must be declared as an array of 32-bit integer values", "chapters/interfaces.html"}, @@ -812,7 +832,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03795", "If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR and the geometryType member of either pGeometries or ppGeometries is VK_GEOMETRY_TYPE_TRIANGLES_KHR, the total number of triangles in all geometries must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxPrimitiveCount", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-parameter", "type must be a valid VkAccelerationStructureTypeKHR value", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03656", "For geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, if the geometry uses indices, the offset primitiveOffset from VkAccelerationStructureGeometryTrianglesDataKHR::indexData must be a multiple of the element size of VkAccelerationStructureGeometryTrianglesDataKHR::indexType", "chapters/accelstructures.html"}, - {"VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03657", "For geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, if the geometry does not use indices, the offset primitiveOffset from VkAccelerationStructureGeometryTrianglesDataKHR::vertexData must be a multiple of the component size of VkAccelerationStructureGeometryTrianglesDataKHR::vertexFormat", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03657", "For geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, if the geometry does not use indices, the offset primitiveOffset from VkAccelerationStructureGeometryTrianglesDataKHR::vertexData must be a multiple of: the size of the format specified in VkAccelerationStructureGeometryTrianglesDataKHR::vertexFormat, if that format is a packed format the component size of the VkAccelerationStructureGeometryTrianglesDataKHR::vertexFormat, if that format is not a packed format", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03659", "For geometries of type VK_GEOMETRY_TYPE_AABBS_KHR, the offset primitiveOffset from VkAccelerationStructureGeometryAabbsDataKHR::data must be a multiple of 8", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03660", "For geometries of type VK_GEOMETRY_TYPE_INSTANCES_KHR, the offset primitiveOffset from VkAccelerationStructureGeometryInstancesDataKHR::data must be a multiple of 16", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureBuildRangeInfoKHR-transformOffset-03658", "For geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, the offset transformOffset from VkAccelerationStructureGeometryTrianglesDataKHR::transformData must be a multiple of 16", "chapters/accelstructures.html"}, @@ -866,8 +886,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkAccelerationStructureGeometryKHR-flags-parameter", "flags must be a valid combination of VkGeometryFlagBitsKHR values", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometryKHR-geometryType-parameter", "geometryType must be a valid VkGeometryTypeKHR value", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometryKHR-instances-parameter", "If geometryType is VK_GEOMETRY_TYPE_INSTANCES_KHR, the instances member of geometry must be a valid VkAccelerationStructureGeometryInstancesDataKHR structure", "chapters/accelstructures.html"}, - {"VUID-VkAccelerationStructureGeometryKHR-pNext-pNext", "pNext must be NULL", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryKHR-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 VkAccelerationStructureGeometryLinearSweptSpheresDataNV or VkAccelerationStructureGeometrySpheresDataNV", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometryKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryKHR-sType-unique", "The sType value of each struct in the pNext chain must be unique", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometryKHR-triangles-parameter", "If geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, the triangles member of geometry must be a valid VkAccelerationStructureGeometryTrianglesDataKHR structure", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-None-10419", "The linearSweptSpheres feature must be enabled", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-endCapsMode-parameter", "endCapsMode must be a valid VkRayTracingLssPrimitiveEndCapsModeNV value", "chapters/accelstructures.html"}, @@ -876,7 +897,6 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-indexType-parameter", "indexType must be a valid VkIndexType value", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-indexingMode-10427", "If indexingMode is VK_RAY_TRACING_LSS_INDEXING_MODE_SUCCESSIVE_NV, indexData must not be NULL", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-indexingMode-parameter", "indexingMode must be a valid VkRayTracingLssIndexingModeNV value", "chapters/accelstructures.html"}, - {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-pNext-pNext", "pNext must be NULL", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-radiusData-10425", "The memory address in radiusData must not be 0 or `NULL'", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-radiusData-10426", "All values referenced in radiusData must be greater than or equal to 0", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-radiusData-parameter", "radiusData must be a valid VkDeviceOrHostAddressConstKHR union", "chapters/accelstructures.html"}, @@ -894,7 +914,6 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkAccelerationStructureGeometrySpheresDataNV-indexData-10437", "If indexData is not NULL, indexType must be one of VK_INDEX_TYPE_UINT16 or VK_INDEX_TYPE_UINT32", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometrySpheresDataNV-indexData-parameter", "indexData must be a valid VkDeviceOrHostAddressConstKHR union", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometrySpheresDataNV-indexType-parameter", "indexType must be a valid VkIndexType value", "chapters/accelstructures.html"}, - {"VUID-VkAccelerationStructureGeometrySpheresDataNV-pNext-pNext", "pNext must be NULL", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometrySpheresDataNV-radiusData-10433", "The memory address in radiusData must not be 0 or `NULL'", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometrySpheresDataNV-radiusData-10436", "All values referenced in radiusData must be greater than or equal to 0", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometrySpheresDataNV-radiusData-parameter", "radiusData must be a valid VkDeviceOrHostAddressConstKHR union", "chapters/accelstructures.html"}, @@ -5203,7 +5222,6 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR", "chapters/limits.html"}, {"VUID-VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT", "chapters/features.html"}, {"VUID-VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV", "chapters/features.html"}, - {"VUID-VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV-maxFragmentShadingRateInvocationCount-parameter", "maxFragmentShadingRateInvocationCount must be a valid VkSampleCountFlagBits value", "chapters/limits.html"}, {"VUID-VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV", "chapters/limits.html"}, {"VUID-VkPhysicalDeviceFragmentShadingRateFeaturesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR", "chapters/features.html"}, {"VUID-VkPhysicalDeviceFragmentShadingRateKHR-pNext-pNext", "pNext must be NULL", "chapters/primsrast.html"}, @@ -5337,6 +5355,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkPhysicalDevicePortabilitySubsetPropertiesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR", "chapters/limits.html"}, {"VUID-VkPhysicalDevicePresentBarrierFeaturesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV", "chapters/features.html"}, {"VUID-VkPhysicalDevicePresentIdFeaturesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR", "chapters/features.html"}, + {"VUID-VkPhysicalDevicePresentMeteringFeaturesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV", "chapters/features.html"}, {"VUID-VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT", "chapters/features.html"}, {"VUID-VkPhysicalDevicePresentWaitFeaturesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR", "chapters/features.html"}, {"VUID-VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT", "chapters/features.html"}, @@ -5378,8 +5397,6 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkPhysicalDeviceScalarBlockLayoutFeatures-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES", "chapters/features.html"}, {"VUID-VkPhysicalDeviceSchedulingControlsFeaturesARM-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM", "chapters/features.html"}, {"VUID-VkPhysicalDeviceSchedulingControlsPropertiesARM-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM", "chapters/devsandqueues.html"}, - {"VUID-VkPhysicalDeviceSchedulingControlsPropertiesARM-schedulingControlsFlags-parameter", "schedulingControlsFlags must be a valid combination of VkPhysicalDeviceSchedulingControlsFlagBitsARM values", "chapters/devsandqueues.html"}, - {"VUID-VkPhysicalDeviceSchedulingControlsPropertiesARM-schedulingControlsFlags-requiredbitmask", "schedulingControlsFlags must not be 0", "chapters/devsandqueues.html"}, {"VUID-VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES", "chapters/features.html"}, {"VUID-VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV", "chapters/features.html"}, {"VUID-VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT", "chapters/features.html"}, @@ -5815,7 +5832,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-identifierSize-06852", "identifierSize must be less-or-equal to VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT", "chapters/pipelines.html"}, {"VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pIdentifier-parameter", "If identifierSize is not 0, pIdentifier must be a valid pointer to an array of identifierSize uint8_t values", "chapters/pipelines.html"}, {"VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pNext-06850", "If this structure is included in a pNext chain and identifierSize is not equal to 0, the shaderModuleIdentifier feature must be enabled", "chapters/pipelines.html"}, - {"VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pNext-06851", "If this struct is included in a pNext chain of VkPipelineShaderStageCreateInfo and identifierSize is not equal to 0, the pipeline must be created with the VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT flag set", "chapters/pipelines.html"}, + {"VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pNext-06851", "If this structure is included in a pNext chain of VkPipelineShaderStageCreateInfo and identifierSize is not equal to 0, the pipeline must be created with the VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT flag set", "chapters/pipelines.html"}, {"VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT", "chapters/pipelines.html"}, {"VUID-VkPipelineShaderStageNodeCreateInfoAMDX-pName-parameter", "If pName is not NULL, pName must be a null-terminated UTF-8 string", "chapters/executiongraphs.html"}, {"VUID-VkPipelineShaderStageNodeCreateInfoAMDX-sType-sType", "sType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX", "chapters/executiongraphs.html"}, @@ -5896,7 +5913,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkPresentInfoKHR-pImageIndices-01430", "Each element of pImageIndices must be the index of a presentable image acquired from the swapchain specified by the corresponding element of the pSwapchains array, and the presented image subresource must be in the VK_IMAGE_LAYOUT_PRESENT_SRC_KHR or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR layout at the time the operation is executed on a VkDevice", "chapters/VK_KHR_surface/wsi.html"}, {"VUID-VkPresentInfoKHR-pImageIndices-parameter", "pImageIndices must be a valid pointer to an array of swapchainCount uint32_t values", "chapters/VK_KHR_surface/wsi.html"}, {"VUID-VkPresentInfoKHR-pNext-06235", "If a VkPresentIdKHR structure is included in the pNext chain, and the presentId feature is not enabled, each presentIds entry in that structure must be NULL", "chapters/VK_KHR_surface/wsi.html"}, - {"VUID-VkPresentInfoKHR-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 VkDeviceGroupPresentInfoKHR, VkDisplayPresentInfoKHR, VkFrameBoundaryEXT, VkPresentFrameTokenGGP, VkPresentIdKHR, VkPresentRegionsKHR, VkPresentTimesInfoGOOGLE, VkSwapchainPresentFenceInfoEXT, or VkSwapchainPresentModeInfoEXT", "chapters/VK_KHR_surface/wsi.html"}, + {"VUID-VkPresentInfoKHR-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 VkDeviceGroupPresentInfoKHR, VkDisplayPresentInfoKHR, VkFrameBoundaryEXT, VkPresentFrameTokenGGP, VkPresentIdKHR, VkPresentRegionsKHR, VkPresentTimesInfoGOOGLE, VkSetPresentConfigNV, VkSwapchainPresentFenceInfoEXT, or VkSwapchainPresentModeInfoEXT", "chapters/VK_KHR_surface/wsi.html"}, {"VUID-VkPresentInfoKHR-pResults-parameter", "If pResults is not NULL, pResults must be a valid pointer to an array of swapchainCount VkResult values", "chapters/VK_KHR_surface/wsi.html"}, {"VUID-VkPresentInfoKHR-pSwapchain-09231", "Elements of pSwapchain must be unique", "chapters/VK_KHR_surface/wsi.html"}, {"VUID-VkPresentInfoKHR-pSwapchains-09199", "If any element of the pSwapchains array has been created with VkSwapchainPresentModesCreateInfoEXT, all of the elements of this array must be created with VkSwapchainPresentModesCreateInfoEXT", "chapters/VK_KHR_surface/wsi.html"}, @@ -6708,6 +6725,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkSetDescriptorBufferOffsetsInfoEXT-stageFlags-requiredbitmask", "stageFlags must not be 0", "chapters/descriptorsets.html"}, {"VUID-VkSetLatencyMarkerInfoNV-marker-parameter", "marker must be a valid VkLatencyMarkerNV value", "chapters/VK_KHR_surface/wsi.html"}, {"VUID-VkSetLatencyMarkerInfoNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV", "chapters/VK_KHR_surface/wsi.html"}, + {"VUID-VkSetPresentConfigNV-numFramesPerBatch-10581", "numFramesPerBatch must not be larger than 8", "chapters/VK_KHR_surface/wsi.html"}, + {"VUID-VkSetPresentConfigNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_SET_PRESENT_CONFIG_NV", "chapters/VK_KHR_surface/wsi.html"}, {"VUID-VkShaderCreateInfoEXT-codeSize-08735", "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, codeSize must be a multiple of 4", "chapters/shaders.html"}, {"VUID-VkShaderCreateInfoEXT-codeSize-arraylength", "codeSize must be greater than 0", "chapters/shaders.html"}, {"VUID-VkShaderCreateInfoEXT-codeType-08872", "If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the type of subdivision", "chapters/shaders.html"}, @@ -10275,6 +10294,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDraw-firstAttachment-07478", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", "chapters/drawing.html"}, {"VUID-vkCmdDraw-firstAttachment-07479", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", "chapters/drawing.html"}, {"VUID-vkCmdDraw-flags-02696", "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", "chapters/drawing.html"}, + {"VUID-vkCmdDraw-flags-10582", "If the current render pass instance was begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must not have VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT set unless VK_RENDERING_CONTENTS_INLINE_BIT_KHR is also set", "chapters/drawing.html"}, {"VUID-vkCmdDraw-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match", "chapters/drawing.html"}, {"VUID-vkCmdDraw-format-08936", "If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit", "chapters/drawing.html"}, {"VUID-vkCmdDraw-format-08937", "If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component", "chapters/drawing.html"}, @@ -10580,6 +10600,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07478", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", "chapters/drawing.html"}, {"VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07479", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", "chapters/drawing.html"}, {"VUID-vkCmdDrawClusterHUAWEI-flags-02696", "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", "chapters/drawing.html"}, + {"VUID-vkCmdDrawClusterHUAWEI-flags-10582", "If the current render pass instance was begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must not have VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT set unless VK_RENDERING_CONTENTS_INLINE_BIT_KHR is also set", "chapters/drawing.html"}, {"VUID-vkCmdDrawClusterHUAWEI-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match", "chapters/drawing.html"}, {"VUID-vkCmdDrawClusterHUAWEI-groupCountX-07820", "groupCountX must be less than or equal to VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI::maxWorkGroupCount[0]", "chapters/drawing.html"}, {"VUID-vkCmdDrawClusterHUAWEI-groupCountY-07821", "groupCountY must be less than or equal to VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI::maxWorkGroupCount[1]", "chapters/drawing.html"}, @@ -10885,6 +10906,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07478", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", "chapters/drawing.html"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07479", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", "chapters/drawing.html"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-flags-02696", "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", "chapters/drawing.html"}, + {"VUID-vkCmdDrawClusterIndirectHUAWEI-flags-10582", "If the current render pass instance was begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must not have VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT set unless VK_RENDERING_CONTENTS_INLINE_BIT_KHR is also set", "chapters/drawing.html"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match", "chapters/drawing.html"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06172", "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", "chapters/drawing.html"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06173", "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", "chapters/drawing.html"}, @@ -11202,6 +11224,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndexed-firstAttachment-07478", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndexed-firstAttachment-07479", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndexed-flags-02696", "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", "chapters/drawing.html"}, + {"VUID-vkCmdDrawIndexed-flags-10582", "If the current render pass instance was begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must not have VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT set unless VK_RENDERING_CONTENTS_INLINE_BIT_KHR is also set", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndexed-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndexed-format-08936", "If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndexed-format-08937", "If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component", "chapters/drawing.html"}, @@ -11531,6 +11554,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndexedIndirect-firstAttachment-07478", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndexedIndirect-firstAttachment-07479", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndexedIndirect-flags-02696", "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", "chapters/drawing.html"}, + {"VUID-vkCmdDrawIndexedIndirect-flags-10582", "If the current render pass instance was begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must not have VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT set unless VK_RENDERING_CONTENTS_INLINE_BIT_KHR is also set", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndexedIndirect-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndexedIndirect-format-08936", "If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndexedIndirect-format-08937", "If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component", "chapters/drawing.html"}, @@ -11861,6 +11885,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07478", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07479", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndexedIndirectCount-flags-02696", "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", "chapters/drawing.html"}, + {"VUID-vkCmdDrawIndexedIndirectCount-flags-10582", "If the current render pass instance was begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must not have VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT set unless VK_RENDERING_CONTENTS_INLINE_BIT_KHR is also set", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndexedIndirectCount-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndexedIndirectCount-format-08936", "If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndexedIndirectCount-format-08937", "If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component", "chapters/drawing.html"}, @@ -12190,6 +12215,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndirect-firstAttachment-07478", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndirect-firstAttachment-07479", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndirect-flags-02696", "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", "chapters/drawing.html"}, + {"VUID-vkCmdDrawIndirect-flags-10582", "If the current render pass instance was begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must not have VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT set unless VK_RENDERING_CONTENTS_INLINE_BIT_KHR is also set", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndirect-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndirect-format-08936", "If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndirect-format-08937", "If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component", "chapters/drawing.html"}, @@ -12515,6 +12541,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07478", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07479", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndirectByteCountEXT-flags-02696", "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", "chapters/drawing.html"}, + {"VUID-vkCmdDrawIndirectByteCountEXT-flags-10582", "If the current render pass instance was begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must not have VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT set unless VK_RENDERING_CONTENTS_INLINE_BIT_KHR is also set", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndirectByteCountEXT-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndirectByteCountEXT-format-08936", "If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndirectByteCountEXT-format-08937", "If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component", "chapters/drawing.html"}, @@ -12848,6 +12875,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndirectCount-firstAttachment-07478", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndirectCount-firstAttachment-07479", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndirectCount-flags-02696", "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", "chapters/drawing.html"}, + {"VUID-vkCmdDrawIndirectCount-flags-10582", "If the current render pass instance was begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must not have VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT set unless VK_RENDERING_CONTENTS_INLINE_BIT_KHR is also set", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndirectCount-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndirectCount-format-08936", "If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit", "chapters/drawing.html"}, {"VUID-vkCmdDrawIndirectCount-format-08937", "If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component", "chapters/drawing.html"}, @@ -13162,6 +13190,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07478", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07479", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksEXT-flags-02696", "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", "chapters/drawing.html"}, + {"VUID-vkCmdDrawMeshTasksEXT-flags-10582", "If the current render pass instance was begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must not have VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT set unless VK_RENDERING_CONTENTS_INLINE_BIT_KHR is also set", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksEXT-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksEXT-imageView-06172", "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksEXT-imageView-06173", "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", "chapters/drawing.html"}, @@ -13472,6 +13501,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07478", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07479", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-flags-02696", "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", "chapters/drawing.html"}, + {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-flags-10582", "If the current render pass instance was begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must not have VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT set unless VK_RENDERING_CONTENTS_INLINE_BIT_KHR is also set", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06172", "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06173", "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", "chapters/drawing.html"}, @@ -13785,6 +13815,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07478", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07479", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-flags-02696", "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", "chapters/drawing.html"}, + {"VUID-vkCmdDrawMeshTasksIndirectCountNV-flags-10582", "If the current render pass instance was begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must not have VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT set unless VK_RENDERING_CONTENTS_INLINE_BIT_KHR is also set", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06172", "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06173", "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", "chapters/drawing.html"}, @@ -14096,6 +14127,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07478", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07479", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-flags-02696", "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", "chapters/drawing.html"}, + {"VUID-vkCmdDrawMeshTasksIndirectEXT-flags-10582", "If the current render pass instance was begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must not have VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT set unless VK_RENDERING_CONTENTS_INLINE_BIT_KHR is also set", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06172", "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06173", "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", "chapters/drawing.html"}, @@ -14405,6 +14437,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07478", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07479", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-flags-02696", "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", "chapters/drawing.html"}, + {"VUID-vkCmdDrawMeshTasksIndirectNV-flags-10582", "If the current render pass instance was begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must not have VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT set unless VK_RENDERING_CONTENTS_INLINE_BIT_KHR is also set", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06172", "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06173", "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", "chapters/drawing.html"}, @@ -14704,6 +14737,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMeshTasksNV-firstAttachment-07478", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksNV-firstAttachment-07479", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksNV-flags-02696", "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", "chapters/drawing.html"}, + {"VUID-vkCmdDrawMeshTasksNV-flags-10582", "If the current render pass instance was begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must not have VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT set unless VK_RENDERING_CONTENTS_INLINE_BIT_KHR is also set", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksNV-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksNV-imageView-06172", "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", "chapters/drawing.html"}, {"VUID-vkCmdDrawMeshTasksNV-imageView-06173", "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", "chapters/drawing.html"}, @@ -15024,6 +15058,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMultiEXT-firstAttachment-07478", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", "chapters/drawing.html"}, {"VUID-vkCmdDrawMultiEXT-firstAttachment-07479", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", "chapters/drawing.html"}, {"VUID-vkCmdDrawMultiEXT-flags-02696", "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", "chapters/drawing.html"}, + {"VUID-vkCmdDrawMultiEXT-flags-10582", "If the current render pass instance was begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must not have VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT set unless VK_RENDERING_CONTENTS_INLINE_BIT_KHR is also set", "chapters/drawing.html"}, {"VUID-vkCmdDrawMultiEXT-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match", "chapters/drawing.html"}, {"VUID-vkCmdDrawMultiEXT-format-08936", "If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit", "chapters/drawing.html"}, {"VUID-vkCmdDrawMultiEXT-format-08937", "If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component", "chapters/drawing.html"}, @@ -15350,6 +15385,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07478", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", "chapters/drawing.html"}, {"VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07479", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", "chapters/drawing.html"}, {"VUID-vkCmdDrawMultiIndexedEXT-flags-02696", "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", "chapters/drawing.html"}, + {"VUID-vkCmdDrawMultiIndexedEXT-flags-10582", "If the current render pass instance was begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must not have VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT set unless VK_RENDERING_CONTENTS_INLINE_BIT_KHR is also set", "chapters/drawing.html"}, {"VUID-vkCmdDrawMultiIndexedEXT-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match", "chapters/drawing.html"}, {"VUID-vkCmdDrawMultiIndexedEXT-format-08936", "If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit", "chapters/drawing.html"}, {"VUID-vkCmdDrawMultiIndexedEXT-format-08937", "If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component", "chapters/drawing.html"}, @@ -15933,6 +15969,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdExecuteGeneratedCommandsEXT-firstAttachment-07478", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", "chapters/device_generated_commands/generatedcommands.html"}, {"VUID-vkCmdExecuteGeneratedCommandsEXT-firstAttachment-07479", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", "chapters/device_generated_commands/generatedcommands.html"}, {"VUID-vkCmdExecuteGeneratedCommandsEXT-flags-02696", "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", "chapters/device_generated_commands/generatedcommands.html"}, + {"VUID-vkCmdExecuteGeneratedCommandsEXT-flags-10582", "If the current render pass instance was begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must not have VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT set unless VK_RENDERING_CONTENTS_INLINE_BIT_KHR is also set", "chapters/device_generated_commands/generatedcommands.html"}, {"VUID-vkCmdExecuteGeneratedCommandsEXT-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match", "chapters/device_generated_commands/generatedcommands.html"}, {"VUID-vkCmdExecuteGeneratedCommandsEXT-imageView-06172", "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment", "chapters/device_generated_commands/generatedcommands.html"}, {"VUID-vkCmdExecuteGeneratedCommandsEXT-imageView-06173", "If the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment", "chapters/device_generated_commands/generatedcommands.html"}, @@ -16263,6 +16300,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07478", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass", "chapters/device_generated_commands/generatedcommands.html"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07479", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled", "chapters/device_generated_commands/generatedcommands.html"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-flags-02696", "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", "chapters/device_generated_commands/generatedcommands.html"}, + {"VUID-vkCmdExecuteGeneratedCommandsNV-flags-10582", "If the current render pass instance was begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must not have VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT set unless VK_RENDERING_CONTENTS_INLINE_BIT_KHR is also set", "chapters/device_generated_commands/generatedcommands.html"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-format-07753", "If a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match", "chapters/device_generated_commands/generatedcommands.html"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-format-08936", "If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit", "chapters/device_generated_commands/generatedcommands.html"}, {"VUID-vkCmdExecuteGeneratedCommandsNV-format-08937", "If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component", "chapters/device_generated_commands/generatedcommands.html"}, diff --git a/scripts/known_good.json b/scripts/known_good.json index 2fbdca250ca..d9eee53767a 100644 --- a/scripts/known_good.json +++ b/scripts/known_good.json @@ -7,7 +7,7 @@ "sub_dir": "Vulkan-Headers", "build_dir": "Vulkan-Headers/build", "install_dir": "Vulkan-Headers/build/install", - "commit": "v1.4.307" + "commit": "v1.4.309" }, { "name": "Vulkan-Utility-Libraries", @@ -15,7 +15,7 @@ "sub_dir": "Vulkan-Utility-Libraries", "build_dir": "Vulkan-Utility-Libraries/build", "install_dir": "Vulkan-Utility-Libraries/build/install", - "commit": "v1.4.307", + "commit": "v1.4.309", "deps": [ { "var_name": "VULKAN_HEADERS_INSTALL_DIR", @@ -110,7 +110,7 @@ "sub_dir": "Vulkan-Loader", "build_dir": "Vulkan-Loader/build", "install_dir": "Vulkan-Loader/build/install", - "commit": "v1.4.307", + "commit": "v1.4.309", "build_step": "skip", "optional": [ "tests" @@ -136,7 +136,7 @@ "sub_dir": "Vulkan-Tools", "build_dir": "Vulkan-Tools/build", "install_dir": "Vulkan-Tools/build/install", - "commit": "v1.4.307", + "commit": "v1.4.309", "build_step": "skip", "optional": [ "tests" @@ -153,4 +153,4 @@ "googletest": "GOOGLETEST_INSTALL_DIR", "mimalloc": "MIMALLOC_INSTALL_DIR" } -} +} \ No newline at end of file diff --git a/tests/layers/VkLayer_device_profile_api.json.in b/tests/layers/VkLayer_device_profile_api.json.in index 04a09014a16..6e3e2b5befc 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.4.307", + "api_version": "1.4.309", "implementation_version": "2", "description": "LunarG Device Profile Api Layer", "device_extensions": [