diff --git a/layers/VkLayer_khronos_validation.json.in b/layers/VkLayer_khronos_validation.json.in index 5ed7a36a705..7d0f2c53885 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.3.296", + "api_version": "1.3.297", "implementation_version": "1", "description": "Khronos Validation Layer", "introduction": "The main, comprehensive Khronos validation layer.\n\nVulkan is an Explicit API, enabling direct control over how GPUs actually work. By design, minimal error checking is done inside a Vulkan driver. Applications have full control and responsibility for correct operation. Any errors in how Vulkan is used can result in a crash. \n\nThe Khronos Valiation Layer can be enabled to assist development by enabling developers to verify their applications correctly use the Vulkan API.", diff --git a/layers/vulkan/generated/device_features.cpp b/layers/vulkan/generated/device_features.cpp index f6c7e6387b2..30f9df7ac33 100644 --- a/layers/vulkan/generated/device_features.cpp +++ b/layers/vulkan/generated/device_features.cpp @@ -1087,6 +1087,12 @@ void GetEnabledDeviceFeatures(const VkDeviceCreateInfo *pCreateInfo, DeviceFeatu features->primitiveTopologyPatchListRestart |= enabled->primitiveTopologyPatchListRestart == VK_TRUE; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT: { + const VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT *enabled = + reinterpret_cast(pNext); + features->presentModeFifoLatestReady |= enabled->presentModeFifoLatestReady == VK_TRUE; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI: { const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI *enabled = reinterpret_cast(pNext); diff --git a/layers/vulkan/generated/device_features.h b/layers/vulkan/generated/device_features.h index b290669f13f..46cfe09764d 100644 --- a/layers/vulkan/generated/device_features.h +++ b/layers/vulkan/generated/device_features.h @@ -621,6 +621,8 @@ struct DeviceFeatures { bool presentBarrier; // VkPhysicalDevicePresentIdFeaturesKHR bool presentId; + // VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT + bool presentModeFifoLatestReady; // VkPhysicalDevicePresentWaitFeaturesKHR bool presentWait; // VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT diff --git a/layers/vulkan/generated/enum_flag_bits.h b/layers/vulkan/generated/enum_flag_bits.h index 1112caddd49..8613b346749 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 = 296; +const uint32_t GeneratedVulkanHeaderVersion = 297; const VkAccessFlags AllVkAccessFlagBits = VK_ACCESS_INDIRECT_COMMAND_READ_BIT|VK_ACCESS_INDEX_READ_BIT|VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT|VK_ACCESS_UNIFORM_READ_BIT|VK_ACCESS_INPUT_ATTACHMENT_READ_BIT|VK_ACCESS_SHADER_READ_BIT|VK_ACCESS_SHADER_WRITE_BIT|VK_ACCESS_COLOR_ATTACHMENT_READ_BIT|VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT|VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT|VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT|VK_ACCESS_TRANSFER_READ_BIT|VK_ACCESS_TRANSFER_WRITE_BIT|VK_ACCESS_HOST_READ_BIT|VK_ACCESS_HOST_WRITE_BIT|VK_ACCESS_MEMORY_READ_BIT|VK_ACCESS_MEMORY_WRITE_BIT|VK_ACCESS_NONE|VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT|VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT|VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT|VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT|VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT|VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR|VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR|VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT|VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR|VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV|VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV; const VkImageAspectFlags AllVkImageAspectFlagBits = VK_IMAGE_ASPECT_COLOR_BIT|VK_IMAGE_ASPECT_DEPTH_BIT|VK_IMAGE_ASPECT_STENCIL_BIT|VK_IMAGE_ASPECT_METADATA_BIT|VK_IMAGE_ASPECT_PLANE_0_BIT|VK_IMAGE_ASPECT_PLANE_1_BIT|VK_IMAGE_ASPECT_PLANE_2_BIT|VK_IMAGE_ASPECT_NONE|VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT|VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT|VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT|VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT; const VkInstanceCreateFlags AllVkInstanceCreateFlagBits = VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR; diff --git a/layers/vulkan/generated/error_location_helper.cpp b/layers/vulkan/generated/error_location_helper.cpp index 601924f16f7..23ed2cc6255 100644 --- a/layers/vulkan/generated/error_location_helper.cpp +++ b/layers/vulkan/generated/error_location_helper.cpp @@ -1390,6 +1390,7 @@ const char* String(Struct structure) { {"VkPhysicalDevicePortabilitySubsetPropertiesKHR", 47}, {"VkPhysicalDevicePresentBarrierFeaturesNV", 41}, {"VkPhysicalDevicePresentIdFeaturesKHR", 37}, + {"VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT", 54}, {"VkPhysicalDevicePresentWaitFeaturesKHR", 39}, {"VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT", 56}, {"VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT", 52}, @@ -3803,6 +3804,7 @@ const char* String(Field field) { {"presentMask", 12}, {"presentMode", 12}, {"presentModeCount", 17}, + {"presentModeFifoLatestReady", 27}, {"presentStartTimeUs", 19}, {"presentWait", 12}, {"preserveAttachmentCount", 24}, @@ -4942,6 +4944,7 @@ const char* String(Extension extension) { {"VK_EXT_pipeline_protected_access", 33}, {"VK_EXT_pipeline_robustness", 27}, {"VK_EXT_post_depth_coverage", 27}, + {"VK_EXT_present_mode_fifo_latest_ready", 38}, {"VK_EXT_primitive_topology_list_restart", 39}, {"VK_EXT_primitives_generated_query", 34}, {"VK_EXT_private_data", 20}, diff --git a/layers/vulkan/generated/error_location_helper.h b/layers/vulkan/generated/error_location_helper.h index fec320fa822..c4e1ab48b5b 100644 --- a/layers/vulkan/generated/error_location_helper.h +++ b/layers/vulkan/generated/error_location_helper.h @@ -1386,6 +1386,7 @@ enum class Struct { VkPhysicalDevicePortabilitySubsetPropertiesKHR, VkPhysicalDevicePresentBarrierFeaturesNV, VkPhysicalDevicePresentIdFeaturesKHR, + VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT, VkPhysicalDevicePresentWaitFeaturesKHR, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, @@ -3796,6 +3797,7 @@ enum class Field { presentMask, presentMode, presentModeCount, + presentModeFifoLatestReady, presentStartTimeUs, presentWait, preserveAttachmentCount, @@ -4926,6 +4928,7 @@ enum class Extension { _VK_EXT_pipeline_protected_access, _VK_EXT_pipeline_robustness, _VK_EXT_post_depth_coverage, + _VK_EXT_present_mode_fifo_latest_ready, _VK_EXT_primitive_topology_list_restart, _VK_EXT_primitives_generated_query, _VK_EXT_private_data, diff --git a/layers/vulkan/generated/feature_requirements_helper.cpp b/layers/vulkan/generated/feature_requirements_helper.cpp index 5d392b3820a..05a028ae1ef 100644 --- a/layers/vulkan/generated/feature_requirements_helper.cpp +++ b/layers/vulkan/generated/feature_requirements_helper.cpp @@ -4148,6 +4148,21 @@ FeatureAndName AddFeature(APIVersion api_version, vkt::Feature feature, void **i } return {&vk_struct->presentId, "VkPhysicalDevicePresentIdFeaturesKHR::presentId"}; } + case Feature::presentModeFifoLatestReady: { + auto vk_struct = const_cast( + vku::FindStructInPNextChain(*inout_pnext_chain)); + if (!vk_struct) { + vk_struct = new VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT; + *vk_struct = vku::InitStructHelper(); + if (*inout_pnext_chain) { + vvl::PnextChainAdd(*inout_pnext_chain, vk_struct); + } else { + *inout_pnext_chain = vk_struct; + } + } + return {&vk_struct->presentModeFifoLatestReady, + "VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT::presentModeFifoLatestReady"}; + } case Feature::presentWait: { 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 8f46b7cd84e..f61cbe32ff0 100644 --- a/layers/vulkan/generated/feature_requirements_helper.h +++ b/layers/vulkan/generated/feature_requirements_helper.h @@ -616,6 +616,8 @@ enum class Feature { presentBarrier, // VkPhysicalDevicePresentIdFeaturesKHR presentId, + // VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT + presentModeFifoLatestReady, // VkPhysicalDevicePresentWaitFeaturesKHR presentWait, // VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT diff --git a/layers/vulkan/generated/pnext_chain_extraction.cpp b/layers/vulkan/generated/pnext_chain_extraction.cpp index c9fe8f1f40d..93c3f43b14a 100644 --- a/layers/vulkan/generated/pnext_chain_extraction.cpp +++ b/layers/vulkan/generated/pnext_chain_extraction.cpp @@ -2325,6 +2325,11 @@ void PnextChainFree(void *chain) { header->pNext = nullptr; delete reinterpret_cast(header); break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT: + PnextChainFree(header->pNext); + header->pNext = nullptr; + delete reinterpret_cast(header); + break; #ifdef VK_USE_PLATFORM_FUCHSIA case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA: PnextChainFree(header->pNext); diff --git a/layers/vulkan/generated/stateless_validation_helper.cpp b/layers/vulkan/generated/stateless_validation_helper.cpp index a9dcc81e39f..593751b3db2 100644 --- a/layers/vulkan/generated/stateless_validation_helper.cpp +++ b/layers/vulkan/generated/stateless_validation_helper.cpp @@ -2882,6 +2882,24 @@ bool StatelessValidation::ValidatePnextFeatureStructContents(const Location& loc } } break; + // Validation code for VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT structure members + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT: { // Covers + // VUID-VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT-sType-sType + if (is_const_param) { + [[maybe_unused]] const Location pNext_loc = + loc.pNext(Struct::VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT); + if (!IsExtEnabled(device_extensions.vk_ext_present_mode_fifo_latest_ready)) { + skip |= LogError(pnext_vuid, instance, pNext_loc, + "includes a pointer to a VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT, but when " + "creating VkDevice, the parent extension " + "(VK_EXT_present_mode_fifo_latest_ready) was not included in ppEnabledExtensionNames."); + } + VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT* structure = + (VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT*)header; + skip |= ValidateBool32(pNext_loc.dot(Field::presentModeFifoLatestReady), structure->presentModeFifoLatestReady); + } + } break; + // Validation code for VkPhysicalDeviceSubpassShadingFeaturesHUAWEI structure members case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI: { // Covers // VUID-VkPhysicalDeviceSubpassShadingFeaturesHUAWEI-sType-sType @@ -9977,6 +9995,7 @@ bool StatelessValidation::PreCallValidateCreateDevice(VkPhysicalDevice physicalD 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_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, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT, diff --git a/layers/vulkan/generated/test_icd_helper.h b/layers/vulkan/generated/test_icd_helper.h index 4565dea532a..1df682f6b91 100644 --- a/layers/vulkan/generated/test_icd_helper.h +++ b/layers/vulkan/generated/test_icd_helper.h @@ -388,6 +388,7 @@ static const std::unordered_map device_extension_map = { {VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME, VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION}, {VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION}, {VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME, VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION}, + {VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME, VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION}, #ifdef VK_USE_PLATFORM_FUCHSIA {VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME, VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION}, {VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME, VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION}, diff --git a/layers/vulkan/generated/valid_enum_values.cpp b/layers/vulkan/generated/valid_enum_values.cpp index d6598b682eb..95c9bd29baa 100644 --- a/layers/vulkan/generated/valid_enum_values.cpp +++ b/layers/vulkan/generated/valid_enum_values.cpp @@ -1155,6 +1155,9 @@ ValidValue StatelessValidation::IsValidEnumValue(VkPresentModeKHR value) const { case VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR: case VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR: return IsExtEnabled(device_extensions.vk_khr_shared_presentable_image) ? ValidValue::Valid : ValidValue::NoExtension; + case VK_PRESENT_MODE_FIFO_LATEST_READY_EXT: + return IsExtEnabled(device_extensions.vk_ext_present_mode_fifo_latest_ready) ? ValidValue::Valid + : ValidValue::NoExtension; default: return ValidValue::NotFound; }; @@ -2834,6 +2837,8 @@ vvl::Extensions StatelessValidation::GetEnumExtensions(VkPresentModeKHR value) c case VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR: case VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR: return {vvl::Extension::_VK_KHR_shared_presentable_image}; + case VK_PRESENT_MODE_FIFO_LATEST_READY_EXT: + return {vvl::Extension::_VK_EXT_present_mode_fifo_latest_ready}; default: return {}; }; diff --git a/layers/vulkan/generated/vk_extension_helper.cpp b/layers/vulkan/generated/vk_extension_helper.cpp index 1b191735c72..868389da014 100644 --- a/layers/vulkan/generated/vk_extension_helper.cpp +++ b/layers/vulkan/generated/vk_extension_helper.cpp @@ -322,6 +322,7 @@ vvl::Extension GetExtension(std::string extension) { {"VK_EXT_device_address_binding_report", vvl::Extension::_VK_EXT_device_address_binding_report}, {"VK_EXT_depth_clip_control", vvl::Extension::_VK_EXT_depth_clip_control}, {"VK_EXT_primitive_topology_list_restart", vvl::Extension::_VK_EXT_primitive_topology_list_restart}, + {"VK_EXT_present_mode_fifo_latest_ready", vvl::Extension::_VK_EXT_present_mode_fifo_latest_ready}, {"VK_FUCHSIA_external_memory", vvl::Extension::_VK_FUCHSIA_external_memory}, {"VK_FUCHSIA_external_semaphore", vvl::Extension::_VK_FUCHSIA_external_semaphore}, {"VK_FUCHSIA_buffer_collection", vvl::Extension::_VK_FUCHSIA_buffer_collection}, diff --git a/layers/vulkan/generated/vk_extension_helper.h b/layers/vulkan/generated/vk_extension_helper.h index f1d18aac0ac..6726d363e94 100644 --- a/layers/vulkan/generated/vk_extension_helper.h +++ b/layers/vulkan/generated/vk_extension_helper.h @@ -540,6 +540,7 @@ struct DeviceExtensions : public InstanceExtensions { ExtEnabled vk_ext_device_address_binding_report{kNotEnabled}; ExtEnabled vk_ext_depth_clip_control{kNotEnabled}; ExtEnabled vk_ext_primitive_topology_list_restart{kNotEnabled}; + ExtEnabled vk_ext_present_mode_fifo_latest_ready{kNotEnabled}; ExtEnabled vk_fuchsia_external_memory{kNotEnabled}; ExtEnabled vk_fuchsia_external_semaphore{kNotEnabled}; ExtEnabled vk_fuchsia_buffer_collection{kNotEnabled}; @@ -1413,6 +1414,9 @@ struct DeviceExtensions : public InstanceExtensions { Info(&DeviceExtensions::vk_ext_primitive_topology_list_restart, {{{&DeviceExtensions::vk_khr_get_physical_device_properties2, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME}}})}, + {vvl::Extension::_VK_EXT_present_mode_fifo_latest_ready, + Info(&DeviceExtensions::vk_ext_present_mode_fifo_latest_ready, + {{{&DeviceExtensions::vk_khr_swapchain, VK_KHR_SWAPCHAIN_EXTENSION_NAME}}})}, #ifdef VK_USE_PLATFORM_FUCHSIA {vvl::Extension::_VK_FUCHSIA_external_memory, Info(&DeviceExtensions::vk_fuchsia_external_memory, @@ -2027,6 +2031,7 @@ constexpr bool IsDeviceExtension(vvl::Extension extension) { case vvl::Extension::_VK_EXT_device_address_binding_report: case vvl::Extension::_VK_EXT_depth_clip_control: case vvl::Extension::_VK_EXT_primitive_topology_list_restart: + case vvl::Extension::_VK_EXT_present_mode_fifo_latest_ready: case vvl::Extension::_VK_FUCHSIA_external_memory: case vvl::Extension::_VK_FUCHSIA_external_semaphore: case vvl::Extension::_VK_FUCHSIA_buffer_collection: diff --git a/layers/vulkan/generated/vk_validation_error_messages.h b/layers/vulkan/generated/vk_validation_error_messages.h index 1ae4396ca6b..277d3285ad7 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.3.296 +// Based on Vulkan specification version: 1.3.297 /*************************************************************************** * @@ -411,8 +411,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-RuntimeSpirv-OpTraceRayMotionNV-06365", "For OpTraceRayMotionNV instructions, Acceleration Structure must be an acceleration structure built as a top-level acceleration structure with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags", "1.3-extensions"}, {"VUID-RuntimeSpirv-OpTraceRayMotionNV-06366", "For OpTraceRayMotionNV instructions the time operand must be between 0.0 and 1.0", "1.3-extensions"}, {"VUID-RuntimeSpirv-OpTraceRayMotionNV-06367", "For OpTraceRayMotionNV instructions the pipeline must have been created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV set", "1.3-extensions"}, - {"VUID-RuntimeSpirv-OpTypeCooperativeMatrixKHR-08974", "For OpTypeCooperativeMatrixKHR, the component type, scope, number of rows, and number of columns must match one of the matrices in any of the supported VkCooperativeMatrixPropertiesKHR.", "1.3-extensions"}, - {"VUID-RuntimeSpirv-OpTypeCooperativeMatrixMulAddNV-10059", "For OpTypeCooperativeMatrixMulAddNV, the operands must match a supported VkCooperativeMatrixPropertiesNV, such that: The type of A must have Rows match VkCooperativeMatrixPropertiesNV::MSize, Columns match VkCooperativeMatrixPropertiesNV::KSize, and ComponentType match VkCooperativeMatrixPropertiesNV::AType. The type of B must have Rows match VkCooperativeMatrixPropertiesNV::KSize, Columns match VkCooperativeMatrixPropertiesNV::NSize, and ComponentType match VkCooperativeMatrixPropertiesNV::BType. The type of C must have Rows match VkCooperativeMatrixPropertiesNV::MSize, Columns match VkCooperativeMatrixPropertiesNV::NSize, and ComponentType match VkCooperativeMatrixPropertiesNV::CType. The type of Result must have Rows match VkCooperativeMatrixPropertiesNV::MSize, Columns match VkCooperativeMatrixPropertiesNV::NSize, and ComponentType match VkCooperativeMatrixPropertiesNV::DType. The scope of all cooperative matrix operands must be VkScopeNV::VK_SCOPE_SUBGROUP_NV. If ComponentType of A, B, C, or Result is a signed integral type, the Signedness operand of the OpTypeInt must be 1. If ComponentType of A, B, C, or Result is an unsigned integral type, the Signedness operand of the OpTypeInt must be 0.", "1.3-extensions"}, + {"VUID-RuntimeSpirv-OpTypeCooperativeMatrixKHR-08974", "For OpTypeCooperativeMatrixKHR, the component type, scope, number of rows, and number of columns must match one of the matrices in any of the supported VkCooperativeMatrixPropertiesKHR", "1.3-extensions"}, + {"VUID-RuntimeSpirv-OpTypeCooperativeMatrixMulAddNV-10059", "For OpTypeCooperativeMatrixMulAddNV, the operands must match a supported VkCooperativeMatrixPropertiesNV, such that: The type of A must have Rows match VkCooperativeMatrixPropertiesNV::MSize, Columns match VkCooperativeMatrixPropertiesNV::KSize, and ComponentType match VkCooperativeMatrixPropertiesNV::AType. The type of B must have Rows match VkCooperativeMatrixPropertiesNV::KSize, Columns match VkCooperativeMatrixPropertiesNV::NSize, and ComponentType match VkCooperativeMatrixPropertiesNV::BType. The type of C must have Rows match VkCooperativeMatrixPropertiesNV::MSize, Columns match VkCooperativeMatrixPropertiesNV::NSize, and ComponentType match VkCooperativeMatrixPropertiesNV::CType. The type of Result must have Rows match VkCooperativeMatrixPropertiesNV::MSize, Columns match VkCooperativeMatrixPropertiesNV::NSize, and ComponentType match VkCooperativeMatrixPropertiesNV::DType. The scope of all cooperative matrix operands must be VkScopeNV::VK_SCOPE_SUBGROUP_NV. If ComponentType of A, B, C, or Result is a signed integral type, the Signedness operand of the OpTypeInt must be 1. If ComponentType of A, B, C, or Result is an unsigned integral type, the Signedness operand of the OpTypeInt must be 0", "1.3-extensions"}, {"VUID-RuntimeSpirv-OpTypeCooperativeMatrixNV-06316", "For OpTypeCooperativeMatrixNV, the component type, scope, number of rows, and number of columns must match one of the matrices in any of the supported VkCooperativeMatrixPropertiesNV", "1.3-extensions"}, {"VUID-RuntimeSpirv-OpTypeCooperativeMatrixNV-06322", "OpTypeCooperativeMatrixNV and OpCooperativeMatrix* instructions must not be used in shader stages not included in VkPhysicalDeviceCooperativeMatrixPropertiesNV::cooperativeMatrixSupportedStages", "1.3-extensions"}, {"VUID-RuntimeSpirv-OpTypeImage-09644", "Any variable declared as an OpTypeArray where the Element Type is an OpTypeImage with a \"Dim\" operand of SubpassData must be decorated with InputAttachmentIndex", "1.3-extensions"}, @@ -640,8 +640,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-StandaloneSpirv-OpEntryPoint-06674", "Each OpEntryPoint must not statically use more than one OpVariable in the PushConstant Storage Class", "1.3-extensions"}, {"VUID-StandaloneSpirv-OpEntryPoint-08721", "Each OpEntryPoint must not have more than one Input variable assigned the same Component word inside a Location slot, either explicitly or implicitly", "1.3-extensions"}, {"VUID-StandaloneSpirv-OpEntryPoint-08722", "Each OpEntryPoint must not have more than one Output variable assigned the same Component word inside a Location slot, either explicitly or implicitly", "1.3-extensions"}, - {"VUID-StandaloneSpirv-OpEntryPoint-09658", "For a given OpEntryPoint, any BuiltIn decoration must not be used more than once by the Input interface.", "1.3-extensions"}, - {"VUID-StandaloneSpirv-OpEntryPoint-09659", "For a given OpEntryPoint, any BuiltIn decoration must not be used more than once by the Output interface.", "1.3-extensions"}, + {"VUID-StandaloneSpirv-OpEntryPoint-09658", "For a given OpEntryPoint, any BuiltIn decoration must not be used more than once by the Input interface", "1.3-extensions"}, + {"VUID-StandaloneSpirv-OpEntryPoint-09659", "For a given OpEntryPoint, any BuiltIn decoration must not be used more than once by the Output interface", "1.3-extensions"}, {"VUID-StandaloneSpirv-OpGroupNonUniformBallotBitCount-04685", "If OpGroupNonUniformBallotBitCount is used, the group operation must be limited to Reduce, InclusiveScan, or ExclusiveScan", "1.3-extensions"}, {"VUID-StandaloneSpirv-OpImage-04777", "OpImage*Dref* instructions must not consume an image whose Dim is 3D", "1.3-extensions"}, {"VUID-StandaloneSpirv-OpImageGather-04664", "The \"Component\" operand of OpImageGather, and OpImageSparseGather must be the of a constant instruction", "1.3-extensions"}, @@ -679,7 +679,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-StandaloneSpirv-StorageTexelBufferArrayDynamicIndexing-10133", "If the StorageTexelBufferArrayDynamicIndexing capability is declared, and an instruction accesses memory through a storage texel buffer, the storage texel buffer through which that memory is accessed must be determined by constant integral expressions", "1.3-extensions"}, {"VUID-StandaloneSpirv-Stream-04694", "If any variables or block members in the output interface of the entry point being compiled are decorated with Stream, then all variables belonging to the same XfbBuffer must specify the same Stream value", "1.3-extensions"}, {"VUID-StandaloneSpirv-SubgroupVoteKHR-07951", "If none of the SubgroupVoteKHR, GroupNonUniform, or SubgroupBallotKHR capabilities are declared, Scope for memory must not be Subgroup", "1.3-extensions"}, - {"VUID-StandaloneSpirv-SubpassData-04660", "The (u,v) coordinates used for a SubpassData must be the of a constant vector (0,0).", "1.3-extensions"}, + {"VUID-StandaloneSpirv-SubpassData-04660", "The (u,v) coordinates used for a SubpassData must be the of a constant vector (0,0)", "1.3-extensions"}, {"VUID-StandaloneSpirv-TileImageEXT-08723", "The tile image variable declarations must obey the constraints on the TileImageEXT Storage Class and the Location decoration described in Fragment Tile Image Interface", "1.3-extensions"}, {"VUID-StandaloneSpirv-Uniform-06676", "Any variable in the Uniform Storage Class must be decorated as Block or BufferBlock", "1.3-extensions"}, {"VUID-StandaloneSpirv-Uniform-06807", "Any variable in the Uniform or StorageBuffer Storage Class must be typed as OpTypeStruct or an array of this type", "1.3-extensions"}, @@ -4343,7 +4343,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkIndirectCommandsStreamNV-buffer-02975", "If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"}, {"VUID-VkIndirectCommandsStreamNV-buffer-parameter", "buffer must be a valid VkBuffer handle", "1.3-extensions"}, {"VUID-VkIndirectCommandsStreamNV-offset-02943", "The offset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minIndirectCommandsBufferOffsetAlignment", "1.3-extensions"}, - {"VUID-VkIndirectCommandsVertexBufferTokenEXT-vertexBindingUnit-11134", "vertexBindingUnit must be less than the total number of vertex input bindings in use by the current graphics state.", "1.3-extensions"}, + {"VUID-VkIndirectCommandsVertexBufferTokenEXT-vertexBindingUnit-11134", "vertexBindingUnit must be less than the total number of vertex input bindings in use by the current graphics state", "1.3-extensions"}, {"VUID-VkIndirectExecutionSetCreateInfoEXT-maxIndirectShaderObjectCount-11014", "If VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::maxIndirectShaderObjectCount is zero or shaderObject is not enabled type must not be VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT", "1.3-extensions"}, {"VUID-VkIndirectExecutionSetCreateInfoEXT-pPipelineInfo-parameter", "If type is VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT, the pPipelineInfo member of info must be a valid pointer to a valid VkIndirectExecutionSetPipelineInfoEXT structure", "1.3-extensions"}, {"VUID-VkIndirectExecutionSetCreateInfoEXT-pShaderInfo-parameter", "If type is VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT, the pShaderInfo member of info must be a valid pointer to a valid VkIndirectExecutionSetShaderInfoEXT structure", "1.3-extensions"}, @@ -5051,6 +5051,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", "1.3-extensions"}, {"VUID-VkPhysicalDevicePresentBarrierFeaturesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV", "1.3-extensions"}, {"VUID-VkPhysicalDevicePresentIdFeaturesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR", "1.3-extensions"}, + {"VUID-VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT", "1.3-extensions"}, {"VUID-VkPhysicalDevicePresentWaitFeaturesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR", "1.3-extensions"}, {"VUID-VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT", "1.3-extensions"}, {"VUID-VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT", "1.3-extensions"}, @@ -5553,7 +5554,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-02072", "If sampleOrderType is not VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, customSamplerOrderCount must be 0", "1.3-extensions"}, {"VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-parameter", "sampleOrderType must be a valid VkCoarseSampleOrderTypeNV value", "1.3-extensions"}, {"VUID-VkPipelineViewportDepthClampControlCreateInfoEXT-depthClampMode-parameter", "depthClampMode must be a valid VkDepthClampModeEXT value", "1.3-extensions"}, - {"VUID-VkPipelineViewportDepthClampControlCreateInfoEXT-pDepthClampRange-09646", "If depthClampMode is set to VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT, and the pipeline is not created with VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT, then pDepthClampRange must be a valid pointer to a valid VkDepthClampRangeEXT structure.", "1.3-extensions"}, + {"VUID-VkPipelineViewportDepthClampControlCreateInfoEXT-pDepthClampRange-09646", "If depthClampMode is set to VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT, and the pipeline is not created with VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT, then pDepthClampRange must be a valid pointer to a valid VkDepthClampRangeEXT structure", "1.3-extensions"}, {"VUID-VkPipelineViewportDepthClampControlCreateInfoEXT-pDepthClampRange-parameter", "If pDepthClampRange is not NULL, pDepthClampRange must be a valid pointer to a valid VkDepthClampRangeEXT structure", "1.3-extensions"}, {"VUID-VkPipelineViewportDepthClampControlCreateInfoEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT", "1.3-extensions"}, {"VUID-VkPipelineViewportDepthClipControlCreateInfoEXT-negativeOneToOne-06470", "If depthClipControl is not enabled, negativeOneToOne must be VK_FALSE", "1.3-extensions"}, @@ -6899,9 +6900,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkSwapchainCreateInfoKHR-preTransform-01279", "preTransform must be one of the bits present in the supportedTransforms member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface", "1.3-extensions"}, {"VUID-VkSwapchainCreateInfoKHR-preTransform-parameter", "preTransform must be a valid VkSurfaceTransformFlagBitsKHR value", "1.3-extensions"}, {"VUID-VkSwapchainCreateInfoKHR-presentMode-01281", "presentMode must be one of the VkPresentModeKHR values returned by vkGetPhysicalDeviceSurfacePresentModesKHR for the surface", "1.3-extensions"}, - {"VUID-VkSwapchainCreateInfoKHR-presentMode-01427", "If presentMode is VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_FIFO_KHR or VK_PRESENT_MODE_FIFO_RELAXED_KHR, imageUsage must be a subset of the supported usage flags present in the supportedUsageFlags member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for surface", "1.3-extensions"}, - {"VUID-VkSwapchainCreateInfoKHR-presentMode-02839", "", "1.3-extensions"}, + {"VUID-VkSwapchainCreateInfoKHR-presentMode-01427", "If presentMode is VK_PRESENT_MODE_FIFO_LATEST_READY_EXT, VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_FIFO_KHR or VK_PRESENT_MODE_FIFO_RELAXED_KHR, imageUsage must be a subset of the supported usage flags present in the supportedUsageFlags member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for surface", "1.3-extensions"}, {"VUID-VkSwapchainCreateInfoKHR-presentMode-parameter", "presentMode must be a valid VkPresentModeKHR value", "1.3-extensions"}, + {"VUID-VkSwapchainCreateInfoKHR-presentModeFifoLatestReady-10161", "If the presentModeFifoLatestReady feature is not enabled, presentMode must not be VK_PRESENT_MODE_FIFO_LATEST_READY_EXT", "1.3-extensions"}, {"VUID-VkSwapchainCreateInfoKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR", "1.3-extensions"}, {"VUID-VkSwapchainCreateInfoKHR-sType-unique", "The sType value of each struct in the pNext chain must be unique", "1.3-extensions"}, {"VUID-VkSwapchainCreateInfoKHR-surface-01270", "surface must be a surface that is supported by the device as determined using vkGetPhysicalDeviceSurfaceSupportKHR", "1.3-extensions"}, @@ -6929,6 +6930,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkSwapchainPresentModesCreateInfoEXT-pPresentModes-parameter", "pPresentModes must be a valid pointer to an array of presentModeCount valid VkPresentModeKHR values", "1.3-extensions"}, {"VUID-VkSwapchainPresentModesCreateInfoEXT-presentMode-07764", "VkSwapchainCreateInfoKHR::presentMode must be included in pPresentModes", "1.3-extensions"}, {"VUID-VkSwapchainPresentModesCreateInfoEXT-presentModeCount-arraylength", "presentModeCount must be greater than 0", "1.3-extensions"}, + {"VUID-VkSwapchainPresentModesCreateInfoEXT-presentModeFifoLatestReady-10160", "If the presentModeFifoLatestReady feature is not enabled, pPresentModes must not contain VK_PRESENT_MODE_FIFO_LATEST_READY_EXT", "1.3-extensions"}, {"VUID-VkSwapchainPresentModesCreateInfoEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT", "1.3-extensions"}, {"VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07765", "If presentGravityX is 0, presentGravityY must be 0", "1.3-extensions"}, {"VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07766", "If presentGravityX is not 0, presentGravityY must not be 0", "1.3-extensions"}, @@ -10216,7 +10218,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawClusterHUAWEI-viewportCount-07492", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-viewportCount-07493", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"}, {"VUID-vkCmdDrawClusterHUAWEI-viewportCount-09421", "If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount", "1.3-extensions"}, - {"VUID-vkCmdDrawClusterIndirectHUAWEI-ClusterCullingHUAWEI-07824", "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the ClusterCullingHUAWEI Execution Model.", "1.3-extensions"}, + {"VUID-vkCmdDrawClusterIndirectHUAWEI-ClusterCullingHUAWEI-07824", "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the ClusterCullingHUAWEI Execution Model", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-InputAttachmentIndex-09597", "If an input attachment view accessed in a dynamic render pass via a shader object has an InputAttachmentIndex, the InputAttachmentIndex must match an index in VkRenderingInputAttachmentIndexInfoKHR", "1.3-extensions"}, {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"}, @@ -15499,7 +15501,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdExecuteGeneratedCommandsEXT-None-09643", "If the bound graphics pipeline was created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsEXT-None-09650", "If the depthClampControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of depthClampEnable is VK_TRUE, then vkCmdSetDepthClampRangeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsEXT-None-10068", "For each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command", "1.3-extensions"}, - {"VUID-vkCmdExecuteGeneratedCommandsEXT-None-11062", "If a rendering pass is currently active, the view mask must be 0.", "1.3-extensions"}, + {"VUID-vkCmdExecuteGeneratedCommandsEXT-None-11062", "If a rendering pass is currently active, the view mask must be 0", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsEXT-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsEXT-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsEXT-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"}, @@ -15578,9 +15580,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdExecuteGeneratedCommandsEXT-indirectCommandsLayout-11056", "If the indirectCommandsLayout member of pGeneratedCommandsInfo contains a draw token, then the active render pass must not have a specified fragment density map", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsEXT-indirectCommandsLayout-11141", "If the indirectCommandsLayout member of pGeneratedCommandsInfo was created with the VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT bit set, then isPreprocessed must be VK_TRUE", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsEXT-indirectExecutionSet-11058", "If transform feedback is active, VkGeneratedCommandsInfoEXT::indirectExecutionSet must be VK_NULL_HANDLE", "1.3-extensions"}, - {"VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11046", "If isPreprocessed is VK_TRUE and vkGetGeneratedCommandsMemoryRequirementsEXT did not return a required size of zero then vkCmdPreprocessGeneratedCommandsEXT must have already been executed on the device before this command executes, and the preprocessing command must have used the same pGeneratedCommandsInfo content as well as the content of the input buffers it references (all except VkGeneratedCommandsInfoEXT::preprocessBuffer).", "1.3-extensions"}, + {"VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11046", "If isPreprocessed is VK_TRUE and vkGetGeneratedCommandsMemoryRequirementsEXT did not return a required size of zero then vkCmdPreprocessGeneratedCommandsEXT must have already been executed on the device before this command executes, and the preprocessing command must have used the same pGeneratedCommandsInfo content as well as the content of the input buffers it references (all except VkGeneratedCommandsInfoEXT::preprocessBuffer)", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11047", "If isPreprocessed is VK_TRUE then the indirectCommandsLayout member of pGeneratedCommandsInfo must have been created with the VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT bit set", "1.3-extensions"}, - {"VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11048", "If isPreprocessed is VK_TRUE then the bound descriptor sets and push constants must match identically with those bound during recording of the corresponding call to vkCmdPreprocessGeneratedCommandsEXT.", "1.3-extensions"}, + {"VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11048", "If isPreprocessed is VK_TRUE then the bound descriptor sets and push constants must match identically with those bound during recording of the corresponding call to vkCmdPreprocessGeneratedCommandsEXT", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11049", "If isPreprocessed is VK_TRUE and the indirectCommandsLayout member of pGeneratedCommandsInfo contains a draw token, then the graphics state bound on commandBuffer must match identically with the graphics state bound on the stateCommandBuffer passed to vkCmdPreprocessGeneratedCommandsEXT", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11051", "If isPreprocessed is VK_TRUE and the indirectCommandsLayout member of pGeneratedCommandsInfo contains a dispatch token, then the compute state bound on commandBuffer must match identically with the compute state bound on the stateCommandBuffer passed to vkCmdPreprocessGeneratedCommandsEXT", "1.3-extensions"}, {"VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11052", "If isPreprocessed is VK_TRUE and the indirectCommandsLayout member of pGeneratedCommandsInfo contains a ray tracing token, then the ray tracing state bound on commandBuffer must match identically with the ray tracing state bound on the stateCommandBuffer passed to vkCmdPreprocessGeneratedCommandsEXT", "1.3-extensions"}, @@ -16024,7 +16026,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"}, {"VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"}, {"VUID-vkCmdInitializeGraphScratchMemoryAMDX-renderpass", "This command must only be called outside of a render pass instance", "1.3-extensions"}, - {"VUID-vkCmdInitializeGraphScratchMemoryAMDX-scratch-09143", "scratch must be the device address of an allocated memory range at least as large as the value of VkExecutionGraphPipelineScratchSizeAMDX::size returned by VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline.", "1.3-extensions"}, + {"VUID-vkCmdInitializeGraphScratchMemoryAMDX-scratch-09143", "scratch must be the device address of an allocated memory range at least as large as the value of VkExecutionGraphPipelineScratchSizeAMDX::size returned by VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline", "1.3-extensions"}, {"VUID-vkCmdInitializeGraphScratchMemoryAMDX-scratch-09144", "scratch must be a multiple of 64", "1.3-extensions"}, {"VUID-vkCmdInitializeGraphScratchMemoryAMDX-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"}, {"VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", "1.3-extensions"}, @@ -16493,7 +16495,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdSetDepthClampRangeEXT-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"}, {"VUID-vkCmdSetDepthClampRangeEXT-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"}, {"VUID-vkCmdSetDepthClampRangeEXT-depthClampMode-parameter", "depthClampMode must be a valid VkDepthClampModeEXT value", "1.3-extensions"}, - {"VUID-vkCmdSetDepthClampRangeEXT-pDepthClampRange-09647", "If depthClampMode is set to VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT, then pDepthClampRange must be a valid pointer to a valid VkDepthClampRangeEXT structure.", "1.3-extensions"}, + {"VUID-vkCmdSetDepthClampRangeEXT-pDepthClampRange-09647", "If depthClampMode is set to VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT, then pDepthClampRange must be a valid pointer to a valid VkDepthClampRangeEXT structure", "1.3-extensions"}, {"VUID-vkCmdSetDepthClampRangeEXT-pDepthClampRange-parameter", "If pDepthClampRange is not NULL, pDepthClampRange must be a valid pointer to a valid VkDepthClampRangeEXT structure", "1.3-extensions"}, {"VUID-vkCmdSetDepthClampRangeEXT-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"}, {"VUID-vkCmdSetDepthClipEnableEXT-None-09423", "At least one of the following must be true: The extendedDynamicState3DepthClipEnable feature is enabled The shaderObject feature is enabled", "1.3-extensions"}, @@ -18349,7 +18351,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkDestroyPipeline-pipeline-parent", "If pipeline is a valid handle, it must have been created, allocated, or retrieved from device", "1.3-extensions"}, {"VUID-vkDestroyPipelineBinaryKHR-device-parameter", "device must be a valid VkDevice handle", "1.3-extensions"}, {"VUID-vkDestroyPipelineBinaryKHR-pAllocator-parameter", "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", "1.3-extensions"}, - {"VUID-vkDestroyPipelineBinaryKHR-pipelineBinary-09614", "If VkAllocationCallbacks were provided when pipelineBinary was created, a compatible set of callbacks must be provided here.", "1.3-extensions"}, + {"VUID-vkDestroyPipelineBinaryKHR-pipelineBinary-09614", "If VkAllocationCallbacks were provided when pipelineBinary was created, a compatible set of callbacks must be provided here", "1.3-extensions"}, {"VUID-vkDestroyPipelineBinaryKHR-pipelineBinary-09615", "If no VkAllocationCallbacks were provided when pipelineBinary was created, pAllocator must be NULL", "1.3-extensions"}, {"VUID-vkDestroyPipelineBinaryKHR-pipelineBinary-parameter", "If pipelineBinary is not VK_NULL_HANDLE, pipelineBinary must be a valid VkPipelineBinaryKHR handle", "1.3-extensions"}, {"VUID-vkDestroyPipelineBinaryKHR-pipelineBinary-parent", "If pipelineBinary is a valid handle, it must have been created, allocated, or retrieved from device", "1.3-extensions"}, diff --git a/scripts/known_good.json b/scripts/known_good.json index 5d4559d2c24..143d0649ac6 100755 --- 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.3.296" + "commit": "v1.3.297" }, { "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.3.296", + "commit": "v1.3.297", "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.3.296", + "commit": "v1.3.297", "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.3.296", + "commit": "v1.3.297", "build_step": "skip", "optional": [ "tests" diff --git a/tests/layers/VkLayer_device_profile_api.json.in b/tests/layers/VkLayer_device_profile_api.json.in index 5503b03991e..515d22d25f9 100644 --- a/tests/layers/VkLayer_device_profile_api.json.in +++ b/tests/layers/VkLayer_device_profile_api.json.in @@ -4,7 +4,7 @@ "name": "VK_LAYER_LUNARG_device_profile_api", "type": "GLOBAL", "library_path": "@JSON_LIBRARY_PATH@", - "api_version": "1.3.296", + "api_version": "1.3.297", "implementation_version": "2", "description": "LunarG Device Profile Api Layer", "device_extensions": [